Eternal2D is a 2D game engine written in C++ by myself, Trevor Day, and Alex Zilbersher for a school project at Northeastern University.

The engine is designed around Game Objects and Components, similar to Unity. The base engine includes components for cameras, buttons, physics simulations, sprites, text, and more that can be used out-of-the-box, but it also provides python bindings that can be used to create custom components.

Eternal2D ships with a basic graphical level editor that can be used to configure the Game Objects in a level and save them in the engine’s custom level format.

Under the hood, our engine uses Box2D as a physics engine and SDL2 for input and rendering.

Check out the source code and documentation with a tutorial video.