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.
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.