Lambda Engine

September 2023 - January 2024

lambda


Overview

Roles Engine programmer
Duration8 weeks
PlatformWindows
EngineCustom-built
Team sizeSolo

Tools & Technologies

Languages & APIsC++, Lua
ToolsVisual studio
WorkflowGit/GitHub
LibrariesImGUI, 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

lambda