Nameless Engine is the third chapter in my journey to learn game engine development. With each engine I've built, I've pushed myself further, experimenting with engine architecture, design patterns and reusable gameplay systems.
This time, I wanted to tackle one of the biggest challenges in game development: physics. Sure, I could have used an existing physics library, but where's the fun in that? Instead, I built my own physics engine from the ground up. And what better way to put it to the test than by recreating the movement and feel of Super Mario Bros.?
Super Mario Bros. was built entirely from scratch using my custom C++ game engine. However, this project was never meant to be just a clone. It became a playground for testing and improving the engine's capabilities.
The engine now includes systems for rendering, input handling, collision detection, scene management, resource loading, component management, and much more. But the heart of the project is the custom physics engine, making Nameless Engine my most ambitious and technically challenging project so far.
Engine Architecture
The main focus of Nameless Engine was the physics system. To support this, the fixed update loop received a major upgrade, allowing the engine to handle physics calculations in a more reliable and consistent way.
Some Core Features
- Physics World Integration: The physics engine runs inside its own isolated physics world, making it modular and easy to integrate into other engines or projects.
- Collision Optimization: Implemented broad and narrow-phase collision detection, spatial partitioning, optimized collision algorithms, multithreading, and other techniques to improve performance.
- Collision Dispatcher: Automatically detects collisions and dispatches events to the relevant objects, keeping gameplay systems clean and flexible.
Building Nameless Engine taught me far more than just how to write a game. It gave me hands-on experience with C++, software architecture, design patterns and the fundamental systems that power modern game engines.
Instead of only learning how to use an engine, I learned how engines are built. Understanding systems like rendering, physics, input, object management, ECS etc.. allows me to approach any engine, whether it's Unity, Unreal Engine, Godot, or a custom in-house engine.
With a deeper understanding of what is happening behind the scenes. My knowledge can easily be transferred to any engine, making me a more versatile and effective gameplay programmer.
My engine as a lot more to offer than what I could reasonably present in here. So feel free to explore the code on GitHub!
Want to play the game?
Coming Soon to Web