Mall Cop¶

This is a multiplayer unfair competing game where one player chooses to play as a thief stealing certain items and another player play as a mall cop to stop the thief.
This was my first project at Abertay University. I was one of the three programmers who worked on the network part and contributes some UI related work.

Contribution¶

Early development screen
Synchronization¶
Each character and item has a unique global hash ID, which is used to find the same object in two different game instances and synchronize the state.
The data is synchronized using RPC technology. After the client sends a message to the server, the data is processed by the server and then distributed to all clients, thus spawning items or synchronizing the character's position, animations and other data.


Early development screen and final version
Connect to Lobby¶
When connecting to the server, each client gets the client ID returned by the server to distinguish whether the player in that instance is player1 or player2. When one of the players chooses to be a host it opens the connection and waits for another player to connect to that player. The operation of selecting a character is also calculated by the server to determine whether there are currently two players, otherwise the operation cannot be performed. When a player selects a character, it is also calculated by the server to determine whether the player can select the character and synchronize the result to another player. Only when both players have chosen their character, the game can start.
Other Contribution¶
All the art resources came from the artists of in the team.
UI Interaction¶
Players can slide or click the arrows in the turtorial page to switch the interface with smooth switching animation.

UI Animation & Splash Screen¶
When opening the game, the game logo will appear and gradually enlarge to attract players' eyes.
Other UI such as buttons also have animations of moving or Illuminating

CD and its animation of items¶
When a player uses an item, there is a cooldown time during which the player cannot use the item again, and the time is not shared between different items. The UI will have animations to indicate the left cooldown time.
