Deep Space
Final-year project: a 2D explore-and-survive space game in C++17 and SFML, with SQLite accounts and leaderboards, Catch2-style unit tests, and GNU Make builds on Linux and Windows.
Deep Space
Purpose
Deep Space is a 2D space exploration and combat game that I created in C++17 with SFML as part of my final-year project. I aimed to develop something beyond a basic arcade-style game. I created this as a more expansive playable experience with elements including exploration, combat, progression, and persistent player data.
What It Provides
The game is set in an expansive space environment where players can traverse the map, battle alien vessels, collect rewards, and progressively enhance their assets and upgrades.
What I Built
Technically, I constructed the client with distinct separation between gameplay systems and interface systems, encompassing UI screens and reusable interface components, and dedicated modules for systems such as the spaceship, enemies, weapons, and minimap. Organising the project in this way helped it feel like a proper software project as opposed to a one-off prototype.
My Role
I managed the entire project from beginning to end. My initial step involved diving into various aspects of game development and familiarizing myself with the primary game engine concepts related to the development of a 2D game. I designed the project end to end. I was also responsible for writing project documentation, developing a project plan, and creating pixel art for the user interface. Design isn’t my strongest skill, so I started by drawing my ideas on squared paper. That made the pixel-style designs easier.
How I Contributed
This project represented both a game development challenge and a software engineering challenge. It allowed me to put some of the skills I had acquired at university into practice, especially in the fields of database design, software architecture, and algorithms, while challenging myself to pick up new tools and skills along the way.
Future Enhancements
In terms of future development on the project, I intend to add multiplayer functionality. I also intend to deploy the static web pages to a proper hosted environment so that the game has a stable public presence and will eventually support account usage across different devices, instead of linking progression to one specific machine.
Tech used
- C++
- GNU Make
- Linux
- SFML
- SQLite
- Windows
