A 2D dungeon crawler game made with a simple custom 2D game engine. This game and the game engine is made using C++ and SDL2. This is made for educational purpose and I referenced different sources which are mentioned in the Attribute section.
-
Entites and Components are data-only elements and do not contain any logic. 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.
-
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
-
An event system that allows user to pass custom data (i.e: CollisionData, InputData, etc.)
-
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
-
A .map file with data about tile, transform, colliders is read to create the level layout
- AI System with different enemy types
- Completed map and level layout
- A* Pathfinding algo
- Combat System
- Collect Item System
- Inventory System
- UI System
- Map Culling
- Scripting with Lua
- Refinement: collision btw player/enemy
- (Optional) Different weapon types
- (Optional) Some other useful tools such as Level Editor, etc.
The game is currently only run in Mac & Linux. Download the project and type make run in the terminal to run the game.
The game engine with the ECS structure is made using references from Pikuma Game Engine Course course and from this Link.
