Uh Oh Mum's Home
- zm02stor
- May 7, 2023
- 2 min read
A cooperative multiplayer game made using Photon Pun in Unity. The idea draws inspiration from similar games such as Overcooked and Human Falls Flat. The primary aim of the game is to complete all the chores before the timer runs out. This includes laundry, defrosting chicken, hoovering, and putting toys away.
This game was made together in a team, we divided our efforts between implementing different mechanics and the design: Models, UI elements, Level Design, Player synchronisation, Mechanics, Customisation, Chat, and Sounds.
My main role was in programming in the mechanics, multiplayer support and modelling the characters. I also aided in the customisation aspect of the game.
The game includes basic matchmaking and displays other players avatars. Before a player joins the waiting room, they enter their names and are able to customise their character by adding different hats, accessories and choosing a colour. Their nickname is also visible to other players above their heads.
The players are then admitted to a wating room (lobby) while other players join. There is a maximum of 4 players that can be admitted to a room. If a room has reached the limit, and a new player joins they are admitted to a different lobby. Inside the waiting room the players can communicate to each-other via the chat system, this enables them to have a form of contact with each other. The messages sent are synced using an RPC and uses AllTargetsBuffered so that any new player can also see the chat. The option to play the game will not be presented until all 4 players are in the room (only the host can start the game), once the button is pressed all players within that lobby are loaded into the main game.
Mechanics and Gameplay
The game is centralised around collaboration as opposed to containing competitive features. Players must work together to complete chores on time. It is impossible to complete them otherwise within the time limit. Players use items in the scene to complete these tasks:

Customisation Interface:

Player clicks on the buttons to cycle through the accessories. The name displayed is the one inside the InputField to make sure it does not load in the previous name saved inside PlayerPrefs. This way if the player leaves the customisation panel then returns after changing their name it will update!
Lobby:

The players are able to communicate to other characters via a chat based system - it synchronises the text sent across all players through the host.

[Lobby with 4 players]

[Player racing to defrost the chicken]
Issues during development:
There were a lot of issues with correctly syncing the customisation across all players – since the playerprefs would set the other players' outfits to display what their character looks like.
Each player would see the players who entered before them as the colour that they chose (e.g. player 2 would see both themselves and player 1 as blue) but the new players as the correct colour. When the Game scene would load, either player 3’s view or player 4’s view would be adopted.

[Issues with synchronising customisation]
These issues were fixed by using a seperate script to check if the item chosen belongs to the player, and if not then sync the remainder of players through the host. Since the host is the only player who sees the customised characters correctly.
Gameplay Video:


Comments