Dungeon Stuck

Overview

A 2D dungeon crawler game made with my simple custom 2D game engine. The game engine is made using C++ and SDL2, featuring ECS architecture.

Engine features that I implemented

1. ECS (Entity-Component-System) architecture

- Component: consist of only data (i.e: SpriteComponent has data such as texture, width, height)

- Entity: consist of an id number

- System: Systems are responsible for the logic processing of certain components. For example: RenderSystem is responsible to implement logic on any Entities that have the Sprite and Transform component. All systems have the Init, Update and Render methods that are automatically called once a system is created.

2. Input Binding Tool

A tool created using DearImGui to help player rebind the input by choosing from the Drop down menu and click Save. User cannot choose the input that is already in use for other actions

3. Event System: An event system that allows user to pass custom data (i.e: CollisionData, InputData, etc.)

4. Collision System: Collision system with OnCollisionEnter, OnCollisionStay and OnCollisionExit. This is used to prevent player from going through wall or to allow hitbox - and to trigger certain events when player touches a checkpoint

Future plans

- AI System and Pathfinding (In Progress)
- Combat System (In Progress)
- Interation System (with things/people)
- Dialogue System
- Shop System
- Inventory System
- Some other useful tools such as Level Editor, etc.
- UI System
- Scripting with Lua