< Go Back

Stranded (2024)

A multiplayer sci-fi game where you must work together to control your spaceship, navigate through a dense asteroid belt, and try to survive long enough for help to arrive.

Project Info

Team Size: 3

Role: Director/Designer/Engineer

Project Length: 4 months

Networked multiplayer

Stranded was a semester-long project for an advanced computer science class, which gave us the time to shoot for a few ambitious features. I designed and pitched the original idea, and two of the reasons I believe it was selected were the cohesive vision and the innovative use of multiplayer collaboration. In the game, players simultaneously control different stations on the same spaceship, and rapdily swap between them to keep all the systems running. For example, one player might detemine how fast the spaceship's engines thrust while the other player controls its steering, then that same player might swap to the shield station to block an incoming asteroid. Implementing this multiplayer functionality, however, proved to be a much more intensive task than simply describing it.

I used Unity's Netcode framework to designate one player as the server and enable client connection from other players on the same network. In order to synchronize the game state, I wrote a number of functions to track the state of the ship and pass it across the network, including the dynamic physics of the Steering and Thrusters stations. However, this was made more complex by the fact that, unlike a traditional multiplayer game, both players share the same character. To solve this problem, I wrote custom logic to shift control of position and rotation reporting between the host and client as players moved between different stations, efficiently allowing the game to stay in sync after any configuration of player actions.