
Posted May 02, 2025 by Shivani
Following the recent progress on user authentication and character customisation, this weeks focus shifted to upgrading the lobby system. The goal is to change the basic 2D interface to a 3D lobby where players can see each other customised avatars.
In the 3D lobby, each player is represented by a playerItem prefab which displays their nickname, ready state and clan icon. To manage this, I created a SetUp() function that handles player data and ensures the lobby UI reflects each player's unique information.
Each player has a canvas with a text to show their nickname.

PlayerItem.cs

For the 3D lobby, each player had to be placed in the scene at a unique position. Instead of stacking players on top of each other, I used predefined spawn points to space them out. These are empty Transform objects placed in the Unity scene where each playerItem prefab is instantiated.

LobbyManager.cs

LobbyManager.cs
LobbyManager.cs
As a new addition, we added in clan stickers that the players can choose from when they join a room. Each player will have their own unique sticker, they can't choose the same. The clan sticker is used to identify the player during gameplay e.g. purchasing tiles, results. These icons are synced across the network using Photon custom properties, so all players can see each others clan stickers.
Created using ChatGPT
Players can customise their clan sticker using UI buttons in the 3D lobby. This function below handles switching to the previous available clan icon when the left arrow button is clicked, the same is done for the right arrow button:
PlayerItem.cs
So that all other players in the room see the updated clan sticker instantly.
PlayerItem.cs
PlayerItem.cs
Joining Room
Shows multiple players joining the same room
With the 3D lobby now bringing players together in a more dynamic environment, the next step is adding a sense of competition and achievement. To do this, I will implement a Ranking System using PlayFab's player statistics API. This system will track player wins and display global rankings, encouraging more competitive gameplay.
[1] Photonengine. Custom Properties (Version PUN 2). Available at:https://doc.photonengine.com/realtime/current/gameplay/custom-properties.