top of page

Saturn X - PlayStation VR


This was one of my final year projects. It is a game that takes place in Space, where you are on board the first manned space craft that is sent to a new planet discovered within another new star system. In orbit, the ship was hit by asteroids orbiting the planet. You are the only survivor, and are to return to the ship after being sucked out of the ship.

This game was made in Unity, and has been made to support running on the PlayStation 4, together with Sony's VR headset, PlayStation VR.

Things I worked on:

Player movement - 3 Dimensional movement

TransformAnimator - Complex animation system that support multiple steps and transforms, working like keyframes in Adobe After Effects for example, used to animate everything.

InfinityRotation - Simple animator to infinitely rotate an object when triggered, which TransformAnimator cannot do possibly with how keyframes work.

MeshFader - Ability to edit a mesh’s material’s colour and emissive, to tint objects or change colours.

MeshBlinker - Using MeshFader code to blink objects from colour to colour with variable speed, for aesthetic purposes.

AVR Interaction System - AVR Controller - AVR Receiver, awakes and call / triggers other scripts when looked at by controller

- AVR Interactable, after receiving interaction to receiver, it can trigger animations and other interactions, used for things like switches

- AVR Grabbable, object that can be picked up by the controller and interacted with

AKS (KeySystem) - Ability to support multiple different keys by comparing with IDs - Locks AVR Receivers to prevent interaction unless key is inserted. - Uses MeshFader to change colours of locks on lock/unlock.

InteractionHints - Hovers a cursor over any interactable object, when in range, so the player does not get stuck - Text support that can receive text from AVR Receiver to be displayed

CCTV - CCTV cameras that broadcast to screen in realtime - Using AVR Interactable buttons to switch between cameras, and trigger rotations using TransformAnimator

Space vacuum decompression(Air lock vacuum) - Sucks all GameObjects with Rigidbodies within a certain area - 2 Stages where it realistically sucks the object to the door first before going out of the ship, instead of a constant straight force. - Triggered by door open / close - Severely reduces ship oxygen supply when air is lost

Ship Systems - Handles global ship condition - Constant drainage of oxygen supply when generators down - When oxygen / electrical generators are down, can change ship colours using MeshFader and MeshBlinker

Screen effects - Ambient Occlusion, Bloom(Standard assets) adjustments Tonemapping that changes scene colours based on situations

Unity Setup - Positioning and setup of all objects (debris, asteroids, collision, animations, interactions, game flow etc) - Initial PSVR setup - Game lighting, reflections - Material settings - Implementation of own scripts - Bug testing and fixing

Other - ParentAndChildDestroyer, used to destroy parent and child gameobjects(used for optimisation) - RandomForceAtStart, used to apply a random force with rotation to and object on init, so objects are more dynamic and move at the start.

bottom of page