Infiltraitors


Web based, stealth hacker game. Player as a hacker sneaking into corporations to steal the data inside and discover all the secrets and twists that lie within.

 
 
  • Date: 02/10/2020

    Languages: C#, Python

    Keywords: Unity, Firebase, Web-GL, Group Project, Playwest, Project Management, JSON

 

Overview

Playwest game made for the University IT services. The purpose of the game is to demonstrate how hackers could steal data from a player’s computer. This is done by letting the player be the hacker and infiltrate building to steal data using a variety of techniques.

Initial Design

As I was one of the game’s leads on the project I helped come up with the initial design of the game. I came up with the stealth hacker game concept where the player can use a variety of hacks to damage electronic devices within a level. I also helped come up with the idea of a prep phase to the game where the player can look at a level with CCTV cameras and identify the vulnerabilities in the level.

CCTV/Prep Phase

This prep phase was the first bit of the game I implemented. Initially, it was planned for the player to select their hacker items such as USB sticks to use within the upcoming level. With this in mind, I made the prep phase have an old CRT monitor for the player to look at the CCTV camera footage through and a shelf containing the player’s current hacker items. However, the idea of having a shelf with the player’s hacker items was scrapped early in the game’s development. So I removed the shelf from the prep phase. Then when the assets came in from the artist I changed the monitor and the UI controls to the ones provided. I also set up a scanning system whereby a player pressing the spacebar would highlight the vulnerabilities currently being shown on the monitor, and a UI box would appear informing the player about them.

To show the CCTV camera’s footage on the monitor, I set up camera prefabs around the scene with their render textures used on the monitor’s screen. I also created a shader in shader graph that distorted the monitor’s screen to give it the appearance of an old CRT monitor. I then from playtest feedback, made a minimap to show which room the CCTV camera the player was currently looking through was in. I did this using two cameras, one that only rendered the floor and one that only rendered the walls. Then I took their render textures and combined them in a shader setting the walls to be one colour and the floor to be another.

Character Creator

Another early part of the game I made was the character creator. We wanted to allow players to make their own custom characters from the start, so a scene where they could do so was necessary. I made an initial character creator from temporary assets until I replaced them with the ones the artist made. The player’s character customisation is saved into a JSON file. I also made another shader in shadergraph; this one transformed the player’s model into a grid of green lines, an idea I took from Little Mac from the game Punch-Out. This version of the model was displayed whenever the player randomised their character’s design in the creator.

Level Select

The final visual aspect of the game I created was the level selection. Originally this was similar to the prep phase where the player would see one monitor and could change which camera they were looking at to change the level. However, once the artist's assets came in, it was decided this should be changed to be a bank of monitors within the van that the player begins the game in. Each unlocked level is shown on one of the monitor's screens via CCTV camera footage the same as it is shown in the prep phase. Locked level's monitors only show static. As a tiny bit of juice to the level select, I animated the smoke coming out of a cigarette in the level select using a shader.

Backend Systems

The other work I contributed to this game was all backend systems work. This included reworking the game's scene and state management system to be more streamlined and less all over the place. I also set up player data to be saved during the game to show to ITS. This data included information like time played, computers hacked, and USB sticks picked up. Towards the end of the project, one of the lead developers left, which led to me overseeing the game's Web-GL builds and collecting and organising the previously mentioned player data.

 

Gameplay Video

A video showing off the gameplay for the first few levels. Need to play the game to see the rest!

 
 
Previous
Previous

Softbody Simulation - Undergrad Dissertation

Next
Next

DirectX12 Mario Kart