Case study · Final year project
Cyber Station
Best Games Programming & Development Artefact · ExpoTees 2026
A neon station management game about building a transport hub that can take the pressure: placement, passenger flow, ratings and progression all pulling against each other. I built it solo as the artefact for my final-year project at Teesside University, where it scored 90.
- RoleSolo developer
- EngineUnity 3D · C#
- Grade90 / 100
- AwardExpoTees 2026 winner
Overview
One station, four systems in tension
In Cyber Station you design and operate a growing neon transport hub: lay out the concourse, keep crowds of passengers moving, and keep your star rating high enough to unlock the next tier. The game is built around four systems that constantly push against each other: placement, passenger flow, station ratings and progression. Every layout decision changes how passengers path through the space, which changes the ratings, which gates what you can build next.
Around that core sit the supporting systems that make it a complete game: train scheduling, staff coordination, an economy to balance, and saving and loading so a station survives between sessions.
Building
Placement & construction
Everything in the station is placed by the player. The build menu offers a catalogue of infrastructure and decoration, from ticket machines, barriers, platforms and trains to staff and cosmetic items, each with a cost and a stat effect on the station. Items can be rotated with a live preview before committing, so tight layouts stay readable.
Decorations aren't just cosmetic: each carries a decoration strength value that feeds directly into the station's Decoration rating, turning beautification into an economic decision like everything else.
Passengers
Passenger flow & AI navigation
Passengers are autonomous agents. They enter the station, navigate to ticket machines, queue, pass barriers and reach their platform in time for the next train, hundreds of them at once. Their routing reacts to the layout the player builds: a badly placed barrier or an undersized bank of ticket machines shows up immediately as bunching crowds and growing queues.
Rather than every passenger running its own per-frame update, the whole crowd is driven from a single manager on a fixed 10 Hz logic tick. Each passenger runs a small hierarchical state machine, and when it needs a facility it does not simply walk to the nearest one. It picks the option with the lowest total cost, weighing the real NavMesh path length against the queue it would have to wait in, and re-targets if something better is built nearby.
Because the station is rebuilt every time you place or demolish something, the navigation mesh is baked at runtime. The tricky part is that the passengers and litter already in the world would otherwise be baked in as obstacles, so their colliders are temporarily hidden during each bake and restored afterwards, leaving a clean mesh for everyone to path on.
Ratings
The station-rating system
The whole station is graded live. An overall star rating is derived from six separate ratings (Cleanliness, Crowdedness, Queue Lengths, Service, Decoration and Choice) alongside a passenger throughput percentage. Each one watches a different behaviour: Crowdedness, for example, measures how tightly packed passengers get, so a station can be profitable and still bleed stars because people are bunching at a pinch point.
This is the system that ties the game together, and it closes a loop: the six ratings are smoothed and rolled into an overall score, and that score feeds back into how many passengers spawn. A better station pulls in bigger crowds, which puts more pressure on the very layout that earned the rating in the first place.
Progression
Progression & expansion
Income and ratings feed a tier system that paces the game. Higher tiers unlock station expansions, extra platforms, new train lines and staff, each one raising passenger volume and putting fresh pressure back on the layout you've built.
Staff AI
Staff that dispatch themselves
Janitors and security drones do not each hunt for work independently, which would leave two janitors racing to the same piece of litter. Instead, each type has a coordinator. The workers ask it for a job, and the coordinator hands out the nearest unclaimed task and locks it, so nothing is ever double-assigned.
It keeps the behaviour clean and extensible: the coordinator owns the "who does what" decision while each worker just runs its own small state machine. Security even prioritises chasing down fare evaders over routine patrols, all through the same dispatch model.