Dangool The Game
8bit 2D platformer game written in C++ using SFML
I coded this game in C++ using the SFML library. It took me almost a week but in the end all that work was worth it.
The source code of the game can be found in this repository. I also tried to create a Doodle Jump clone as a warm-up which you can find in this link.



Screenshots from the game.
This is a preview of the gameplay:
In this project, I worked on my ability to work on and design large-scale projects. I came up with a sensible design on my own and created a UML using mermaid:
classDiagram
MovingObj <|-- Player
MovingObj <|-- Enemy
MovingObj <|-- NPC
StableObj <|-- Spike
StableObj <|-- Button
MovingObj <|-- MovingBlock
Enemy <|-- Sheilded
Enemy <|-- Dummy
StableObj <|-- Reward
Reward <|-- Diamond
Reward <|-- Star
Terrain <|-- Ground
Terrain <|-- Wall
Entity <|-- MovingObj
Entity <|-- StableObj
Entity <|-- Terrain
StableObj <|-- Portal
Entity : # Position
Reward : # Value
MovingObj : # Motion
Entity : + HandleCollision()
Menu <|-- PauseMenu
Menu <|-- StartMenu
Menu <|-- LevelSelect
Menu <|-- Credits
Menu <|-- Settings
Menu <|-- DebugMenu
Menu <|-- ConfirmationPopUp
Sheilded : - bool is_sheilded
Dummy : - int HP
StableObj <|-- Mover
Mover <|-- Ladder
Mover <|-- Rope
Mover : - Position begin
Mover : - Position End
Player : - int HP
%%Player : - int Score
Level <..> Map
Level : - Mob[]
Level : - int Score
Level : + Start()
Entity : + Draw()
Map .. Entity
Map : - bool CheckCollision(Entity, Entity)
Entity : - Sprite
Menu : MenuItem[]
MenuItem .. Menu
MenuItem : - String Text
MenuItem : - Texture
MenuItem : - bool Clicked
Spike : - int Damage
Enemy : - int Damage
NPC : - bool IsRescued
Button : - bool IsUp
Button : - int Height
Menu <|-- LoadingScreen
Level : + Pause()
Level : + Exit()
Level : # int Gravity
NPC : - void FindPath()
Sheilded : - void Unsheild()
MovingObj : # void HandleGravity()
Enemy : # void Die()
Enemy : # void Recover()
LevelSelect -- Level
System <--> Menu
System : - int Volume
System : - Levels[]
System : - LevelSaves[]
System : - Volumes
System : void ChangeMenu()