Cabin Simulator
July 2018
A multiplayer sandbox game made with Unity.
Cabin Simulator is a multiplayer sandbox building game I made with the Unity game engine. The core gameplay loop is very simple – cut down trees to get wood, build something out of it, and repeat.
The multiplayer aspect also led to some interesting emergent social gameplay, since the game also featured weapons and vehicles – my friends and I would often play ‘factions,’ where two teams would each build a base and try to sneak into the other team’s base without being noticed. While the game was never released, I learned a lot about game development in the process of creating it, especially in the area of networked multiplayer.
Building

Procedural Terrain
While I wanted the terrain to be infinite, I never got around to implementing the chunking mechanism required for it. Instead, I tuned the generation parameters to create an ‘archipelago’ of islands in the center of the map, which naturally sunk into the surrounding ocean. This ocean boundary kept the playable space finite without a sharp edge the player could fall off of.
The level RNG seed was saved along with serialized structure and vehicle data, so the same terrain could be regenerated when the player loads their save file later, allowing them to pick up where they left off.
Vehicles
Vehicles were one of the most challenging mechanics to implement, mainly due to multiplayer. I wanted vehicles to be able to carry multiple players who could move between seats, which took some serious effort to get working correctly with Unity’s networking ownership system – I ended up having to make the vehicle a hierarchical child of its driver, so they would have authority to control the physics of the vehicle for all players. Passenger player movement was then locked as they followed the position of their respective seats. Vehicle physics were handled by Unity’s built-in physics engine, which had existing components to handle wheels and suspension.

I also added dynamic lights to the vehicles. Headlights turned on at night and illuminated the path ahead, while the tail lights turned on when the player pressed the brake or the vehicle was stopped.