2.5D Game Combat Game

Asteroids C++

Summer 2023

I developed the iconic Asteroids game using C++ as a means to enhance my C++ skills and to grasp the Entity-Component-System (ECS) game design pattern, utilizing the EnTT library. Additionally, I employed SFML for rendering the 2D visuals. The game includes the classic Asteroids gameplay and features such as a pause menu, main menu and the ability to save high scores.

C++
Entt
SFML
Scene Management

Key Features

Challenges, solutions and lessons learnt

Scene management initially resulted in a lot of circular dependencies because scenes contained systems and I needed systems to trigger scene management events, such as loading a scene. To address this issue, I decoupled systems from scenes by storing only an ID and actually storing systems in a central system manager. When systems need to trigger scene events, I resolved this by using events through a central event manager.

Trello