← Retour aux projets
2018 — present
Lily Engine
Moteur de jeu model-driven sur Vulkan
Le Défi
Construire un moteur de jeu capable d'appliquer le Model Engineering à un domaine aussi contraint que Vulkan : trouver une abstraction assez basse pour rester fidèle aux ressources GPU et au modèle mémoire, sans exposer toute cette complexité au code jeu.
L'Approche
L'architecture a été pensée comme un socle modulaire, pas comme une simple couche de wrapping :
- un data model central comme pivot de tous les développements
- deux couches distinctes : Lily-core pour la partie applicative, Lily-Vulkan pour la spécialisation jeu et rendu
- une abstraction volontairement proche de Vulkan, avec des objets comme Shader, DescriptorSet, Descriptor ou Buffer
- un travail spécifique sur la modélisation des buffers et des zones mémoire, partie la plus délicate de l’API
- un système d’extension et d’injection via annotations Java pour réduire le boilerplate dans les projets construits sur le moteur
Le Résultat
Le moteur a servi de base à plusieurs projets réels : VSand, Children of Earth et Story. Surtout, il démontre qu'une approche model-driven peut structurer un moteur Vulkan complet sans rester théorique : LMF en est la colonne vertébrale, et VSand en donne une preuve concrète de bout en bout.
Stack technique
JavaVulkanGLSLLWJGLModel EngineeringLMF