• Heist was an online multiplayer text based robbery simulation game that I created as my final year project at university.
  • The game was designed and coded by myself with the main server side engine using a combination of SQL, XML and Java.
  • The game used a branching system that provided the player with a different experience each time they attempted a heist.


Heist was created as part of my degrees final year individual project. The game simulates the planning that goes into the sort of heists that we see in Hollywood movies.

The online game was completely text-based, with the player hiring a crew of thieves, each with individual skills and abilities. Then the player assigns them tactics and equipment before sending them on a job. After a real time waiting period the player received the results of his masterplan. The actual heist section of the game was based around a Java engine I wrote from scratch, which used text files and a branching node system with skill checks to walk the crew through a set of actions. Each node had both a successs and a fail branch there was the potential for each heist to have a large array of different stories built up from each node.

The game required a server side engine that would process any actions the player had assigned to their crew. This could be simple surveillance actions before a job or the processing of a full heist. Surveillance actions were simple checks, adding a random score to the crewmans stats (retrieved from an SQL database) and then checking it versus a set target assigned to the specific heist. If the score beats the target then the player receives a set amount of information.

Heists were more complicated, utilising several crewmen and required the use of an XML file written for each heist type. The XML file represented the series of events that could occur during a job. At each node one of the crewmen needed to perfom a check. This works in the same way as surveillance, where a random number and stats are combined against a target score. If the crewman succeeded the crew proceed down a right branch, if not they proceed left. Each node also contained text that is added to a log, an amount of heat (in game value for police attention) and any rewards (money or Items). Eventually the crew reached an end node that symbolises the end of the heist. After this the engine updates the database with any changes, sends the player a news message with a log of the heist and finally resets the player so that they can begin a planning a new heist.

I really creating enjoyed heist, and even though the game was simple I received positive feedback. In hindsight, creating Heist gave me a great grounding for work I have undertaken later on in my career.