Custom 2D Game Engine

I designed and created a custom Entity-Component-System (ECS) game engine for 2D game development using C++, raylib, and ImGUI. The engine uses modern C++20 as a foundation, raylib for graphics, sound, camera, and asset loading, and ImGUI for UI and debug UI.

As part of creating the engine, I also developed curricula for Wentworth Institute of Technology for students to learn game engine development. The course consists of 24 lectures, four homework assignments, and a final project.

The engine contains the following features:

  • 2D spritesheet animation
  • AI Vision using Raycasting
  • Custom AABB and Circle Collision Detection
  • Action System for User Input and Remappable Controls
  • Support for Multiple Game Scenes
  • Custom Camera Support
  • In-Game Map Editor Support
  • Sound and Music
  • Particle Systems
  • GLSL Shader Support
  • ImGUI or RayGUI for UI