1 min read

Yonai

A custom game engine for exploring & testing different‌‌ technologies such as scripting, virtual file systems, and rendering‌‌ techniques.
Yonai

A 2D and 3D multi-platform game engine

September 2022 - Ongoing

Technology Used

  • OpenGL
  • Assimp
  • GLFW
  • GLM
  • ImGUI
  • STB
  • glad
  • CMake
  • Mono

Summary

A custom game engine for exploring & testing different‌‌ technologies such as scripting, virtual file systems, and rendering‌‌ techniques.

Features

  • Custom hybrid entity component system
  • Scripting support for C# (w/ reloading)
  • GUI editor

Why

It's a great learning experience, provides great insight for how the larger engines may work internally, and can feel very rewarding (when it works).‌‌This is my playground for experimentation and implementing various techniques, such as different rendering pipelines or effects.

Yonai is by far the largest codebase I have worked on, and definitely makes me think more deeply when refactoring or implementing new features.

Difficulties

Scripting

The largest difficulty thus far was implementing mono for C# scripting.‌‌There isn't a lot of great documentation available, and for a long while I was unaware of how to track managed objects when garbage collection moved them in memory.

0:00
/
Script reloading

Entity Component System

With 90% of experience being in Unity, my mindset is very much geared towards logic and data mixed inside components.‌‌‌‌The approach I settled on was components that can have logic, but also implementing systems similar to a more pure ECS implementation; this allows me to transition logic from components in to systems, but also an opportunity to leave logic in components where it may make more sense.

Additional Media

0:00
/
Shader reloading
Yonai editor application