A 2D engine written in C++/OpenGL to create and play retro-style games (Pang, Bomberman, etc.).
Includes a demo level, main menu, and credits.
Feel free to use this code and resources as a base for your own projects!
- ⚡ Engine: C++ with OpenGL
- 🌠 Sprites & Animations
Animated sprites for characters and objects (assets/images/). - 🗺️ Tilemap & Objects
TileMaploads level data and manages dynamic/static objects.
Includes breakable/unbreakable blocks. - 🌳 Quadtree Collisions
Fast collision detection with a quadtree (Quadtree.h). - 🔊 Audio
AudioManagerwith miniaudio for effects/music (assets/audio/). - 🖥️ Scenes System
Switch dynamically between Menu, Credits, and Level1 (add more easily). 🅰️ UI & Text
UIManagerrenders text using FreeType and arcade fonts (PixelifySans, PressStart2P, Silkscreen, VT323).- ⚙️ Central Config
Config.hfor window sizes, asset paths, constants.
/Engine
Engine.sln -> Visual Studio Solution
/Engine -> Engine source code and sample
/assets -> Images, fonts, audio, and shaders
/libs -> Dependencies (GLFW, GLEW, GLM, SOIL, miniaudio, FreeType)
- Visual Studio 2019 or newer (Windows only)
- All libraries included in
/Engine/libs
(No extra installation needed) - Win32 (32-bit) build configuration is recommended (matches provided libraries)
- Clone or download this repository
- Open
Engine/Engine.slnwith Visual Studio - Select build config: Debug or Release + platform Win32
- Build solution (
Build > Build Solution) - Find executable in
Engine/Debug/orEngine/Release/
- Run the generated binary (
Engine.exe) - The main menu will appear; start the game or view credits
- The sample level is ready to play or extend!
- Fonts:
Pixelify Sans, Press Start 2P, Silkscreen, VT323
→ Open Font License (OFL) - Libraries:
- GLFW, GLEW, GLM, SOIL — see their licenses in
libs/ - miniaudio — public domain or MIT-0 (
miniaudio.h) - FreeType — dual FTL / GPLv2
- GLFW, GLEW, GLM, SOIL — see their licenses in
- Audio:
template.mp3is an example.
Replace/verify its license before distribution.
Check each
/libs/subdirectory for more licensing info.
Héctor Núñez Carpio
This project is open source. See individual library folders for their terms.