# 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
