Project Gunbritt

The third game of year 2 of the game programming at The Game Assembly

This was a ten week long half time project with the reference game as Prey. The requirements for this project was to make a first person game with a network feature. We chose to make a first person shooter were you can place post it notes on the walls for other players to see. We decided early on to implement physX into our project and get real physics into our game. Showcase Gunbritt

Main Contributions

Visual Script

Visual Script Nodes

During this project I worked a great deal with expanding our existing nodes to allow for more functionality and allow different kinds of callbacks, not only trigger generated but also audio.

Keycard Reader Node

This node allowes the user to link a door to a keycard and define which keycard number is required to use it. The id’s are collected from a specifc component called unique id, which gives a gameobject a presistent id. The node allows for a succesful use and a failed to enable the use of the play sound, spawn enemies or other interesting nodes.

Create Speaker Node

This node allows the usage of spatial sounds by giving the node the id of position in unity and a desired sound event to play.

Radio Nodes

I designed two nodes that would interact well with a radio component which could play a one time sound or a looping one. The Radio Play Sound node uses the one time sounds and is giving the option of pausing an ongoing looping. It also reports when it has finished playing which makes it an audio callback which you can tie other events to, if you need to wait for a specific sound to finish playing. The Radio Play Track changes the looping sound to another.

Pipeline

PhysX Multiple Shapes

During this project we managed to implement physX, but it came with a few challenges we needed to overcome. One of those was how to create dynamic and static objects. The actual construction of them was the main problem. We got in the functionality to add a shape of types, box, sphere and capsule into the game early on but how to combine them with our different models was not yet resolved. I took it upon myself to find a valid solution for this.

The result was a special scene in unity were the level designers and grafic designers could manually place the shapes onto a model. The component collision creation defines the material flag the model will be using in physX.

Gameplay

Destructable Objects

In our project their were two things that could get destroyed. The two things were a speaker which you could turn off by destroying it and the other was a screen monitor playing a screensaver shader. When it get’s destroyed you change the shader to a broken screen shader.

Keycard Reader & Doors

I developed our keycard system which involved a keycard manager which keeps track over which keycards the player has. Through a script a keycard reader gets connected to a door which allows it to send a message when the player tries to use the interact ability to it’s connected door if the player is in range. This results in the door opening for the player.

Keycard & Ammunition Pickups

I developed our pickup system which involved a basic distance calculate to allow the player to pick up keycards and ammunition. The keycard displays a hud element above it which indicates that the player can interact with it. The ammunition checks if the player has maximum ammunition for that weapon’s ammunition is for before getting collected by proximity. It tells the player about it’s usage through a sound effect and a change in the carried ammunition for that weapon in the hud.

Game Showcase and Trailer