Game Engine Final Project

We spent a lot of time doing research on physics engine and how to build it with C++ and SDL. As game design students with minimal programming knowledge and experience, we tried our best on achieving this physics engine.

The project altered its path when our work went deeper. At the beginning we were trying to achieve a drag-and-drop, tile-based platformer game maker. But later we found the drag-and-drop interface was too difficult for us. Soon we decided to turn to build a physics engine with gravity, collision detection, rotation, etc.

We started our project with complete structure and full potential of expandability. The structure assembles mainstream game engines which define all in-game objects GameObject, and can attach Components to them to expand their capabilities. It might seem shabby when submitted (we only implemented two types of Component), but it has huge potential to be stronger and is capable of adding more Components.

If we were given 8 more weeks, we would go back to our initial goal of making the game maker. We would look for Python in general for user interface and pybind for scripting. Also, we would make the physics engine smoother and more customizable, especially better collision detection and gravity system. Also the rotation of RigidBody2D given moment of inertia, angular speed, and angular acceleration.