I’ve been working on a game engine called ion
, which isn’t ready to open source yet - mostly because the game code is somewhat intertwined with the engine as both are being built together.
However, many of the utilties in the engine I feel are mature enough to publish. I’ve published them here:
relative
: Data structures that point to data that is relative to their own storage. Useful for creating memory-mappable variable length data structures.serialize
: Mappable and non-mappable binary serialization with versioning support.extra_data
: A similar concept to relative, but with all the trailing fields declared together, and a bit-packed lengths field.
Here are some real-world examples of it in use. The texture resource shows how the serialization / deserialization works, and the RenderBundle
example demonstrates ExtraData
: ion-extras usage examples · GitHub
Here’s a preview of the engine that this code is used in: