Skip to content
degenerated1123 edited this page Dec 7, 2016 · 9 revisions

Current Project status

Huge list of everything

Daedalus-VM (Scripting)

Code execution
  • Working
    • Interpreting all of the daedalus-instructions
    • Calling functions, stack, etc
    • Calling externals
    • Initializing instances
  • TODO:
    • Classes are described in Daedalus::registerGothicEngineClasses, which can be done automatically. The Daedalus-Symbols of the classes are actually in order, so we can just map everything using that, instead of making use of an evil makro.
    • Symbols have unused variables and are very heavy, which could be improved
    • Externals.cpp is currently containing everything and should be split up.
    • Creating an NPC is pretty messy, as there are externals defined inside some classes in the Daedalus-namespace, triggering callbacks to REGoth-code, pre- and post-versions... That can be improved.

World loading

.zen
  • Works
    • Extracting the world-mesh
    • Putting vobs
    • Initializing the world using script-functions (inserting items/npcs)
  • TODO
    • Not all vobs implemented (particle-systems, decals)
    • Loader is crammed into the WorldInstance-class, which can be improved greatly.
    • Preprocessing of the worldmesh and collisionmesh takes ages. Can be cached or speed up.
    • Could be loaded in parallel
.json (Savegame)
  • Works
    • All vob-types supported by the .zen-loader, except mobs!
    • Inserting NPCs/Items from json-file instead of startup-script
    • Export/Import of all major controllers
  • TODO
    • Read mobs (Some work is done for that already!)
    • Compress on the fly, maybe do some simple encryption
    • Loader is crammed into WorldInstance as well, which can be improved.

File formats

.zen (World)
  • Works
    • Opening ASCII- and BinSafe-Files.
    • Reading WorldMesh-data
    • Reading VobTree
      • zCVob
      • oCMOB
      • oCMobInter
      • oCMobContainer
    • Reading Waynet
  • TODO:
    • Vobs
      • Particle-Effects
      • Other types of Mobs
      • Decals
      • Triggers
      • Ambient-Sounds
      • Movers
      • more?
.TEX (Textures)
  • Done
.MSH (zCMesh)
  • TODO
    • Remove internal data copy
.MDM, MDH, MDL (zCMeshLib, zCMeshSoftSkin)
  • TODO
    • Remove internal data copy
.MDS (zCModelPrototype)
  • Works
    • Reading some of the contents of the text-version in Gothic 1
  • TODO
    • Most features. Parser is pretty bare as well.
    • Binary files used by G2 (G1 uses text) not supported at all
.MAN (zCModelAni)
  • TODO
    • Remove internal data copy
zCMaterial
  • Done
.FNT (zCFont)
  • Wrote some code, but never tested it. Should be working, I guess.
  • TODO
    • Remove internal data copy
OU.bin/dat (zCCSLib)
  • Everything needed by the game works. Format is very verbose.
.DAT (DATFile)
  • TODO
    • Use a union in the opcodes to make them smaller! (PARStackOpCode)
Clone this wiki locally