Přeskočit obsah

ZenKit

ZenKit Logo

ZenKit is a C++-library for loading and saving proprietary ZenGin files and is intended to be a successor to Andre Taulien's ZenLib. ZenKit wrappers for Java and C# are also available in the form of ZenKitCS and ZenKit4J which are also published to NuGet and Maven Central respectively.

ZenKit is used as the file loading and scripting backend for OpenGothic and has recently found adoption in GothicVR.

File Support

The following file types and operations are supported by ZenKit. Requests to support additional file types are welcome and can be submitted to the GitHub repository.

File Type Extension Load1 Save2 Comment
Model Animation .MAN ✓ Yes ✘ No
Model Hierarchy .MDH ✓ Yes ✓ Yes
Model Mesh .MDM ✓ Yes ✓ Yes Saving is only partially supported
Model .MDL ✓ Yes ✓ Yes Saving is only partially supported
Morph Mesh .MMB ✓ Yes ✘ No
Multi Resolution Mesh .MRM ✓ Yes ✓ Yes
Mesh .MSH ✓ Yes ✓ Yes Saving is only partially supported
Daedalus Script .DAT ✓ Yes ✘ No A VM implementation is available (see Daedalus VM)
Texture .TEX ✓ Yes ~ Yes There is currently no API to alter image data
Font .FNT ✓ Yes ✓ Yes
ZenGin Archive .ZEN ✓ Yes ✓ Yes
Text/Cutscenes .BIN, .CSL, .DAT, .LSC ✓ Yes ✓ Yes
Model Script .MDS, .MSB ✓ Yes ✘ No
Virtual File System .VDF ✓ Yes ✓ Yes Allows full integration with the host file system

Daedalus VM

Along facilities to read and write most resource files you might find in a typical Gothic installation, ZenKit also includes a virtual machine which can execute Daedalus scripts. An extensive API is available to inspect the files, add external handlers and bind Daedalus classes into C++-structs. Bindings for the original classes are available as an extension to ZenKit and available to the C# and Java wrappers natively.

Documentation

Additional documentation for ZenKit can be found at zk.gothickit.dev.


  1. ZenKit is able to fully load these files 

  2. ZenKit is able to save these files at least partially