# Personal Game Engine A modular, event driven 2D game engine, built from scratch to learn engine architecture and low-level graphics programming. Supports sprite-based animation, Lua scripting, XML-driven definitions and Tiled map creation. --- ## Features - Event-based animation and sound system - Animation and tile-sets supported by texture atlases - Map creation and collision map support in Tiled map editor - Component-based entity structure - Basic audio engine integration via OpenAL (XML definitions) - Basic physics system - Lua scripted enemy and weapon behavior --- ## Current Status **Work in Progress** - This project is still under active development, I am currently cleaning up my resource management system for better ease of use for future users of this engine. --- ## Dependencies - SDL2, SDL2_image - OpenGL 3.3 - sol2 (Lua binding) - TinyXML2 - OpenAL - Freetype - GLM - pkg-config - CMake ## Build Instructions 1. Clone the repo (git.wienermeister.net/snakert12345/yupplemayham.git) 2. Install list of dependencies. Ensure they're available via pkg-config 3. Build with CMake ```bash git clone https://git.wienermeister.net/snakert12345/yupplemayham.git cd yupplemayham mkdir build && cd build cmake .. make ``` --- ## Screenshot ![Screenshot](https://wienermeister.net/img/engine_screenshot.png) --- ## Roadmap - Save/Load system - Modular and scalable menu system - In-game dialog and conversation systems - Expanded combat system