Skip to content

A 2D dungeon crawler game made with my simple 2D game engine using SDL2 and C++, featuring ECS architecture and other systems

Notifications You must be signed in to change notification settings

ngol0/DungeonStuck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

125 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stuck In A Dungeon

Introduction

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.

Current technical features

  • ECS (Entity-Component-System) architecture:

    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.

  • 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

  • Event System:

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

  • 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

  • Data-driven level:

    A .map file with data about tile, transform, colliders is read to create the level layout

Future Plans

  • 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.

Build

The game is currently only run in Mac & Linux. Download the project and type make run in the terminal to run the game.

Attribute

The game engine with the ECS structure is made using references from Pikuma Game Engine Course course and from this Link.

About

A 2D dungeon crawler game made with my simple 2D game engine using SDL2 and C++, featuring ECS architecture and other systems

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published