← All case studies

Case Study

Starfighter Alliance

1st place Best Individual Project

Endless flying game as a solo project: the full software engineering lifecycle from UML specification and risk analysis to the finished game - 1st place Best Individual Project.

Period
October 2024 - December 2024
Role
Solo developer
Stack
Godot · GDScript · GitLab · LaTeX

Context

Starfighter Alliance is an endless flying game - and deliberately more than that: the assignment was to run the complete software engineering lifecycle alone, from a formal specification document to working software. Ulm University awarded it 1st place as Best Individual Project (sponsored by Liebherr).

The problem

Solo projects usually skip the process: no spec, no diagrams, straight to code. The exercise inverted that. Before implementation, the full design had to exist on paper - UML class diagram, state machines for every dynamic element, risk analysis, requirements - written in LaTeX and precise enough that the implementation could be checked against it.

How I built it

  • Specification first. The class structure, the screen flow and the behavior of ship, obstacles and projectiles were modeled as UML class and state diagrams (see gallery) before development started.
  • Risk analysis as part of the spec: what could break the schedule (scope, engine unknowns, art assets), with mitigations per risk.
  • Godot + GDScript for the implementation, version-controlled on GitLab with a clean commit history against the specified milestones.
  • Ship selection, endless gameplay, highscores - the feature set was fixed in the spec and shipped as specified.

Outcome

A finished, playable game that matches its own specification document - which is exactly what the jury graded. The diagrams weren’t documentation after the fact; they were the plan, and the code followed them.

What I took away

Writing the state machines first changed how I think about gameplay code: transitions become explicit, edge cases surface before they’re bugs. This is the same modeling discipline I now use for digital-twin scene logic - the domain changed, the method didn’t.

Material

← All case studies