
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.