ZenKit
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.