Hello! I’m Wahab, I’m a Software and Hardware Engineer, I work on all sorts of different projects, ranging from a Morse Code circuit translator, to developing In-House Engines for videogames.
Newtonian Dynamics
Newtonian Dynamics is a 2D game engine I built from the ground up using SDL2. It includes custom rendering, physics updates, and window handling. This engine provided me with a foundation for creating 2D games with efficient graphics and smooth gameplay, giving me control over every aspect of the game loop and visuals.
Level Editor
I had initially wanted to design a really small level and found having to manually program in positions for levels would get extremely tedious, so I designed a simple editor. Which has taught me invaluable lessons about file managing, writing to files, and loading files. Additional improvements would be
Implementing file encryption so that files map files couldn’t be edited accidentally.
Adding more options for editing.
Being able to test your level whilst editing simultaneously.
Prototyping
Prior to starting on ND, I wanted to know what features I needed to make an engine that was suited to all of my needs.
No Remorse
Base Gameplay
The base idea for the game loop was about destroying blocks, and creating more balls from those destroyed blocks based on given items. This helped me find a solid idea for everything I needed in a game engine. A core list of understandings would be
Proper physics updates and handling were essential.
I wanted to avoid coupling issues. I wanted to be able to completely remove a portion of my game without much hassle, or worry.
The engine should have a proper Entity Component System, where each and every object inherits from a base entity class, and builds upon itself.
Developed entirely using my custom-built game engine. This project taught me the value of keeping mechanics simple and intuitive, which is essential for maintaining smooth gameplay and cohesive design in larger projects. Working on No Remorse helped me refine my skills in physics simulations, rendering, and player input management while staying focused on the core experience.