
Overview
| Roles |
Engine programmer |
| Duration | 8 weeks |
| Platform | Windows |
| Engine | Custom-built |
| Team size | Solo |
Tools & Technologies
| Languages & APIs | C++, Lua |
| Tools | Visual studio |
| Workflow | Git/GitHub |
| Libraries | ImGUI, Entt, TinyGLTF, SolLua, Cereal, GLM |
Project Overview
Lambda engine is my first in-depth dive at the engine architecture world, where I tried to develop and understand how some of the most important features of an engine work under the hood. Following some design patterns from popular engines such as Unity, I also tried to leave my own touch on certain aspects.
Goals and motivations
- Understand the important features of an engine:
- How to use an ECS
- How to create a simple resource manager
- How to import gltf files
- How to handle complex hierarchies
- How to create a simple CPU based particle system
- How to implement a scripting language
- How to handle hot reloading
- Have fun with creating tools and UIs for all the systems
Biggest obstacles
- Handling scripting with Lua and play, pause and stop scripting logic
- Grasping resource manager concepts for the first time
- Getting a better understanding of the GLTF spec sheet
Highlights
- Full engine editor using ImGui
- Support for scripting with Lua
- Component based architecture, facilitating entt ECS
- Custom resource manager
- Scene serialization
- CPU based particle system
- Game start, stop, and pause
- Custom in engine console for logging errors, warnings and messages
