top of page

COCKTAIL CRIMES
Clean code for large projects
Cocktail Crimes: Projects

Cocktail Crimes a multiplayer free for all heist game where each player must blend in with the crowd while trying to steal a valuable diamond.
For the first impressions we wanted to immerse the player in a cocktail party set in the 20'.
All players have the same goal and receive the same clues, this creates tension around important areas in the level. We wanted players to raise questions; Is this character a player or a Npc? Am I being followed? Do other know who I am?


We tailored our gameplay loop to create an increasing sense of urgency and tension between all players.
At first everyone will be mingling with guests, trying to get clues from them.
Once they have locations of possible clues, all players will be looking for the same objects, so these clues become very valuable but also very dangerous.
Finally a single player will be first to crack the safe and must escape, but as soon as they do, everyone will be alerted that the gem is stolen!
My role in the team was the core systems programmer as well as helping out other members with things like the animator or the camera.
I also received a basic course in networking so I could keep up to date with the networked version of the game.


An important part of the character AI is their navigation. I divided the mansion into different rooms, each with a preferred amount of characters in them. The behavior tree used this information to send Npc's to locations where they are needed.
Each room also had information about important objects so that I could tailor what Npc's are doing in each room. This came in really handy when I had to reduce the amount of Npc's that stood in front of important objects, blocking the flow of the game.
A great exercise in keeping code and date accessible were the numbers and clues for the safe code.
At the start of the game a random code was generated. The code was split into smaller numbers and distributed over random clue objects like paintings or guest lists. The code, clue and corresponding data are all easily accessible to be used by for example, Npc's or for debugging purposes.


Working with behavior trees throughout the project was actually quite simple. I started by assigning basic behaviors that I coded previously to Npc's and went on the create a basic AI.
After that, Npc's didn't just take random actions but used information about the environment to decide their next action.
Finally the Npc's were also given awareness about other players, especially when they see them doing illegal actions.
I learned a great deal about handling bigger projects. The hardest part was making sure all mechanics could interact with each other without breaking. Ex. A character could start a conversation with another character that is already looking at something, while at the same time, that same character was getting stabbed. It was crucial that every system was watertight and that new systems could be added without problems arising from older systems.

bottom of page