top of page

The Null Engine - WIP

This is a 2D custom engine whose purpose is to provide me with a sandbox to learn new concepts.

Project Type:

Personal Project

Skills:

Engine Architecture | Entity Component System (ECS)
OpenGL | GLSL
Performance Optimization | Debugging & Profiling
Custom Editor Tooling | Technical Design

Date:

Jun 2024 - Aug 2024

Goals:

  • Learn more about graphics to create a graphics system that batched and rendered all my meshes at once.

  • Implement a better ECS architecture than I had in the Flinlock engine.

  • Create a Generic Engine that could develop any simple 2D game.

  • Create a sandbox environment where I can experiment and develop cool things.

Accomplishments and Lessons Learned:

  • After many attempts and countless visits to TheCherno's YouTube channel, I successfully batch-rendered my render calls.

  • Implemented Lua scripting to streamline the creation of entity behaviors without modifying the C++ code.

  • Integrated Box2D for physics and made it work seamlessly with ImGuizmo.

  • Added parenting to entities, while ensuring compatibility with Box2D.

  • Created an editor using ImGui.

Future Plans:

  • Add more functionality to the editor, such as Undo/Redo and Copy/Cut/Paste.

  • Improve the batch renderer so that it doesn’t batch by mesh types.

  • Create a particle system, ideally using compute shaders.

  • Add a sound system using FMOD, WWise or some other library.

  • Add text functionality and maybe some sort of canvas/overlay system for menus.

bottom of page