Skills Projects About Contact

Asteroid

A self-made asteroid game developed using C++ and the Simple and Fast Multimedia Library (SFML)

Github Repository
← All Projects

Role

Gameplay Programmer

Tech

SFML, OpenGL, spdlog, yaml-cpp

Genre

2D Arcade

01

The Goal

Asteroid is an arcade-style space shooter focused on responsive controls, scalable difficulty, and clean gameplay systems.

The goal was to build a game that feels simple on the surface, but is backed by modular, extensible systems that support iteration, balancing, and feature expansion.

My role focused on designing and implementing the core gameplay systems, tools, and runtime architecture that power the game.

02

Core Systems

01
Gameplay Loop
Player movement, shooting, asteroid spawning, and collision systems form the core loop.
02
Progression & Scaling
Difficulty increases dynamically through spawn rates, asteroid behavior, and scoring systems.
03
Game Systems Layer
Audio, UI, save/load, and achievements integrate into a unified gameplay framework.
03

Features

Core Gameplay Systems
Implemented player controls, shooting mechanics, collision handling, and asteroid behavior systems.
Modular Architecture
Designed systems to be loosely coupled and extensible, enabling rapid iteration and feature additions.
🔊
FMOD Audio Integration
Integrated FMOD for dynamic sound effects and event-driven audio playback.
🏆
Steam Achievements
Implemented achievement tracking and integration using Steamworks API.
💾
Save / Load System
Built a reliable system for persisting player progress and high scores.
🖥
Options Menu
Implemented resolution, framerate, and graphics settings with runtime updates.
Optimized Initialization
Improved game startup performance by restructuring initialization logic and asset loading.
🛠
Tooling & Pipelines
Developed tools for faster data entry and validation, improving iteration speed during development.
04

Why It Matters

Shipping a complete gameplay experience

Asteroid demonstrates the ability to take a game from concept to release, focusing on robust gameplay systems and production-ready code.

Beyond implementing features, the challenge was ensuring systems remained maintainable, scalable, and performant as the project evolved. This included optimizing initialization, integrating third-party systems like FMOD and Steamworks, and building tools to support rapid iteration.

The result is a complete, shipped product with a clean underlying architecture that supports future expansion.

05

Links

Role
Gameplay Programmer — core systems, tools, and integrations
Systems
Gameplay loop · Audio · UI · Save/Load · Achievements · Options
Stack
Unity3D · C# · FMOD · Steamworks · Editor scripting