← Back to projects
2018 — present
Lily Engine
Model-driven game engine on Vulkan
The Challenge
Building a game engine that applies Model Engineering to a domain as constrained as Vulkan: finding an abstraction low enough to stay faithful to GPU resources and memory layout, without pushing all of that complexity into game code.
The Approach
The architecture was designed as a modular foundation, not just a thin wrapping layer:
- a central data model as the pivot for all development
- two distinct layers: Lily-core for the application framework and Lily-Vulkan for game and rendering specialization
- an intentionally low-level abstraction with objects such as Shader, DescriptorSet, Descriptor, and Buffer
- specific modeling work around buffers and memory regions, which are among the trickiest parts of Vulkan
- an extension and dependency-injection system based on Java annotations to reduce boilerplate in projects built on top of the engine
The Result
The engine has served as the foundation for multiple real projects: VSand, Children of Earth, and Story. More importantly, it demonstrates that a model-driven approach can structure a full Vulkan engine without staying theoretical: LMF is the backbone, and VSand is the end-to-end proof that the architecture holds.
Tech Stack
JavaVulkanGLSLLWJGLModel EngineeringLMF