Design and The Core Experience

This week I have focused on the design of the game. I asked questions such as; “what do I want to achieve with this project?“, “how can I make the player experience what I want them to?” and “how do the mechanics help or hinder this experience?”

I thought about what is the core of the game. The core emotions I wish to instil in the player is a feeling of tension and horror as well as some level of immersive exploration. The main mechanic; the ball throw, must aid the core experience. As of now the ball throw makes exploring tense as to see you have to make noise and makes the player fearful as to what lies ahead. However, the bright colours currently in use take away from this feeling and make the game feel more like Splatoon VR. The placeholder sounds also detract from the core experience and should be changed.

The enemy as another core element of the game must add to the core experience I want to create. Currently, the enemy doesn’t feel scary, this is because the enemy simply follows the player and throwable objects. The AI has to be more complex, building tension before attacking the player. Stealth mechanics will aid this greatly, new ways to get around the enemy will also help. So I will be working to find new ways in which the player can avoid the enemy without combat.

Basic Enemy

I have implemented the basics of the enemy into the game. As of now, it can move towards the player if it sees them and moves when it hears a ball object being thrown.

The enemy as a FOV of 110 and cannot currently detect the player at all when they are behind it. This will be changed so that if the player is very close behind the enemy they are still detected. The hearing detects when a ball object hits the ground. Depending on how hard the ball collides with the ground the enemy will hear it from further away. Further steps will have to be made to make the enemy feel scary to the player.

Throw-able Objects Iteration 1

I have established a control scheme as seen in the image bellow and made a script to attach the ball objects to the controller when the trigger is pressed down and releases it when the trigger is released. The velocity is then set to be the same as the controller’s velocity to mimic throwing. When the object hits the ground it then starts the echolocation effect. The next step will be to improve on the effect to get a more dark sci-fi feel.

Basic movement has also been implemented by using both the direction the controller is pointing and the trackpad to move . I do not get any motion sickness from this perhaps due to much of the screen being mostly black, though dynamic FOV reduction could further aid anyone who does feel sick.

I also added a ring to the edge of the echolocation effect to make it feel more like an echolocation effect as opposed to throwing paint.

A sound effect was also created to test that functionality. The effect will be changed in the future as it does not fit with the themes of the game.

Controller Throw, Movement and New Effect Video:

In the video linked below, I show all features listed above. Each hand spawns a different ball object with different bounciness values in order to test what feels better for the game. In the future, I will also test what is the optimal radius the circles should be depending on the strength of the throw.

https://www.youtube.com/watch?v=COchRHfGXXI

Controls
GDD, Controls

Echolocation Implementation 1

In order to create the echolocation effect, I looked at other similar effects created by others. I soon realised that shaders are programmed quite differently from regular C# scripts. I looked at a few different ways of creating the echolocation effect such as changing the material of an object based on the distance to a point (tutorial here) but found that it would not work well on a throwable object as the effect would start before it had hit the environment. I also looked at another echolocation effect but found it had similar issues (here).

In the end, I decided to use a sonar effect created by (Drew Okenfuss) and adapt it to work as an echolocation effect. Though this effect is not exactly what I required, the functionality of having objects collide with the environment to create a ripple can be changed to try and create a compelling echolocation effect.

So far I have changed this shader to allow me to create a circle on the environment at the point where it detects a collision. The shader takes the velocity of the collision to determine the radius of the circle. This added functionality should make throwing ball objects more satisfying as it reacts to how hard you throw the ball.

Going forward I am working to have the ball object be throwable with the VR controllers.

First Test of Echolocation Effect:

https://www.youtube.com/watch?time_continue=5&v=42lh-wiQnAM

 

Initial Design

I have done some researched similar games and solutions to problems I will encounter with VR. This research has allowed me to make a series of design decisions based on my research. I have decided on the setting, locomotion solution, how to create the echolocation effect and what kind of enemy I will use. I then went forward and created an initial design and prioritised the requirements for the game making me ready to start development of the first iteration.

The first priority is to get a first implementation of the “ball throw” and echolocation effect working in-engine. The echolocation effect will be done using shaders as decals will be distorted on the corners of the environment. I have never worked with shaders before and so will need to do further research to learn how to make the effect I want (see VR Echolocation Idea for details of how this will function).

Priotity
GDD screen shot depicting prioritised required elements

Planning and Research

This week I have started work on the game design document (GDD) in order to document the planning, design and production process. I plan to make the GDD as readable as possible to make it easy for me to go back and see what needs to be done. In order to create to stay on track, I have decided to work in (mostly ) two-week sprints and create a timeline in order to properly plan out the project. At the end of each sprint, I will evaluate the progress made and adapt the plan accordingly.

My Current Plan is as follows;

Week 1

Aim: Find out what expected for me in this module and begin thinking of ideas

Week 2-4

Aim: Have a well defined initial concept with research in order to work towards

Week 5 – 6

Aim: Have the main mechanic (ball throw) functioning in engine and evaluate the game play.

Week 7 – 8

Aim: Create a new version in order to fix/ improve the initial prototype, if done early start implementation of additional mechanics (e.g. alien, control panels)

Week 8 – 10

Aim: The core ball throw mechanic should be functional and will continue to be improved upon whilst developing additional mechanics.

Week 10 – 12

Aim: Evaluate all gameplay and make appropriate changes

Week 13

Aim: To conclude the prototype and documentation and create a postmortem evaluating the gameplay of the prototype.

Week 14

Aim: I am leaving this week empty in order to use this time to polish the project or use this time if I have fallen behind.

I have also defined a minimum viable product for the project in which to work towards. The requirements I aim to meet are the following;

  • A working echolocation system based on throwing objects
  • A working movement solution
  • Some kind of basic AI
  • A level exit

Untitled-2.png

VR Echolocation Idea

This week I have decided to create a VR game centred around echolocation. The player will only be able to see their immediate surroundings and will need to throw objects to see the world around them. This could be used in a stealth game where a monster would creep around looking for you. The player would need to try to be as silent as possible whilst still making enough noise to see around them. I believe seeing the footsteps of the monster approaching causing the player to stand perfectly still to avoid detection could be a terrifying example of how this could be used.

Since last week I have also got unity 2018.1.6f1 installed and have got the VRTK and Steam VR plugins enabled and setup giving me the basic starting blocks to a VR game. This has allowed me to see my HTC Vive controllers in the game and allows the outline of my play space to become visible. These plugins have saved me a lot of time on getting VR working allowing me to focus on my main mechanics for the prototype.

The main mechanic in the game will be the ability to throw objects that will then reveal the environment. I have started planning a possible implementation (see notes below). Currently, it will function by having the player press down the trigger on the controller then move it in a throwing motion, releasing the trigger at the end of the throw. The object will then fly through the air and when it collides with an environmental object such as a floor or wall it will create a circular area allowing the player to see the wall/floor.

echolocation_01

Initial Ideas

download
As my first post, I thought it would be a good idea to note down some thoughts and initial ideas for what I want to create for the module.
I think creating a virtual reality (VR) project on the HTC Vive. This could bring some interesting challenges and as a new medium has more space for innovation.
The following is some notes for potential ideas;
Fast Paced VR Shooter
One idea iv had is to create a VR shooter designed to be as fast-paced as possible, giving the player a power rush. Similar to games like SuperHot VR (2016) or Gorn (2017). The player could move by killing an enemy which then teleports them to the enemies position making the player have to think about the enemies they kill and in what order in order to move through the level.
Horror Action Game
Another idea I had is a VR game where you must travel through an environment reaching objectives whilst avoiding a monster (possibly controlled by another player (not in VR)). Similar to games like Alien Isolation(2014). This game would have to be slow paced and atmospheric to get the desired effect.
Physics Based
A game centred around manipulating the environment through telekinesis. Perhaps used in conjunction with the Fast Paced VR Shooter idea

RGB Light Puzzle Game 

A game where the player is equipped with a torch that casts red, green or blue light. All objects in the world are either red green or blue but by casting the relevant light onto the object causes it to disappear. This would be used to create interesting puzzles

gornsuperhot
Gorn (2017) & SuperHot VR (2016)