Home
Team: 2 programmers, 2 artists, 1 Flex.
Project period: 2018, for a 4 week period
My role: Gameplay Programmer
My contribution:
  • ProgressionSystem & AudioSystem
  • Cockpit/Worldspace Menu & Options
  • FreeMovement restrictions
  • Overall VR testing

Preface


On this page I'll explain how the following Systems work:

The Game


Apex is supposed to be a linear Virtual Reality escape room. The idea of the assignment was to make a Virtual Reality escape room with Professor Layton difficulty puzzles. We decided to make it a Space theme where you play as a test monkey on a space ship and you needed to get to an escape pod. Because of distractions making the game, testing puzzle ideas and vr related things we put less time in the escape room feeling. The game ended up being more of a puzzle room than an escape room. Other requirements that we had to put in for the assignment was that the player could not die or lose to a timer. We did decide to add a count up timer to keep track of how long the player was playing for. In the end the game became a pretty fun Virtual Reality puzzle room experience in a decent looking Space setting.

WorldspaceUI & Options

Gif missing


All worldspace UI in the scene uses a shader. I edited some values of the shader to make it have a oldTech feeling like in alien isolation. The UI I made shows the settings of the game. These settings are: Sound, Graphics and movement type. Besides this there is also a reset button, switch hands button and a hints screen. The options are controlled by buttons for the reset, switch hand and movement type options, A handle for the Quality options and a slider for the Sound. The movement switch switches between teleportation and free movement. The reset button resets the scene in case the player want to start over. The Quality handel rotates between a minimum and maximum distance and uses a vector3.distance to check how far along it is. From there it checks what quality setting it should be on. The Sound slider does pretty much the same thing as the Quality handel, accept that it uses its local position with the distance to calculate the sound value. All sound and quality settings give their values to the SettingsManager, which then changes the actual values to those given by the individual sliders and handels.

FreeMovement Restrictions

Gif missing


The Free Movement Restrictions use the VR movement system made before the project by our lead developer. It restricts The free movement stopping the player from moving into a big object like a table. It does this by shooting a raycast towards the ground from the next position of your VR goggles. If it hits one of the colliders setup in the walls and static big objects in the scene, the player wont move. When this is not detected the player will move towards the direction. If a otherwise static object moves because of an animation, the collider instead of being put in the main group of colliders is placed on the object. This is done so that it moves with the object and properly stops movement on its new position.


Click Here to go to the Github