François Hautier

Gameplay Programmer

Phobia

Phobia is my end-of-studies project developed through 1 year. It’s a narrative horror game which uses the HTC Vive.

The player controls Abbigail, accompanied by her loyal dog Echo. To find her friend Elijah disappeared in an abandoned swimming pool, Abbigail must escape from the materialisation of her ‘Phobia’: the fear of drowning.

We were 5 working on this project, from October 2016 to September 2017. I worked as main developer. I especially worked on the artificial intelligence (AI) of Echo, the integration of the HTC Vive, and of the story in the gameplay.

Phobia is briefly shown in this documentary from the TV channel France 3 Hauts-de-France.

Synopsis

In the Phobia universe, the phobias are born from the fear of people and manifest in many ways. The player controls Abbigail, a young student. Since her childhood, she has the aquaphobia: she fears to die drowned or suffocated. From her fear is born Aquaphobia, a slimy creature. To survive, this being must feed itself from the fear of its host.

One day, Abbigail is attacked by her phobia. She is narrowly saved by Elijah, a police inspector of 56 years old. Became hypersensitive to the light after her aggression, Elijah decides then to train for her a dog of the police station named Echo to help her in her daily life. Abbigail continues to rub shoulders with Elijah for many years, becoming close friends and keeping training of the Belgian shepherd.

During his investigation about the attacker of Abbigail, Elijah finds an interesting lead which guides him to some disused buildings in the southern area of the city. One day, he disappears without leaving any trace. After a few days of doubt, Abbigail decides to find her friend alone and goes in the last places of the detective’s investigation. She quickly arrives at an abandoned swimming pool where Echo seems to sniff a track. The game story starts at that moment.

The player controls Abbigail and is accompanied by Echo all game long. At specific moments of the story, the player also takes control of the dog, for example to look for keys in a place where Abbigail can’t go.

To use the virtual reality gave us the opportunity to create a very immersive gaming experience. Through the HTC Vive controllers, the player can really interact with the environment. He can also interact with Echo, like by throwing to him a ball or stroking him!

Phobia has required a lot of work and it would be too long to describe all aspects of its development. To discover the game in the best way, I invite you to watch its walkthrough. Throughout this article, you can discover the main subjects which I worked on.

Echo, loyal Belgian shepherd

Echo likes to play with a ball!

Even if Echo isn’t the main character of the story, he remains the most important of the game. He is always present in the field of vision of the player and brings life to the environment. His AI had to be credible to keep an immersive gaming experience.

To use the virtual reality gave us the opportunity to create very interesting game mechanics with Echo. Loyal Belgian shepherd, he is always close to his mistress. Through the HTC Vive controllers, it’s possible to stroke him, ask him to sit down, call him to come or throw to him a ball.

Like many AI, Echo is based on a state machine system. One of them (named ‘walk around’) allows him to explore the room where the player is currently, to sniff or scratch some places in the environment, stare a door, and so on. You just have to call him and he comes back to heel.

The player controls Echo at some moments.

Our aim was to guide the player through Echo’s behaviour. At specific moments in the story, Echo’s AI can be disabled in order to manage the dog only by the narration. For example, at the beginning of the game, Abbigail finds Elijah’s wallet. So she must ask her dog to sniff the object in order to find the detective track.

In order to get a credible behaviour for Echo, I had to resolve some technical problems. For example, we needed that Echo could look where we wanted (towards the player or an element in the environment). So I had to develop an inverse kinematics system to orient his head, because it was impossible at that time to do this with Unity for a dog.

Also, in the aim to have a realist movement for Echo, I created a system which handles a lot of situations. According to the path calculated by the path finding algorithm and the nearby obstacles, Echo is able to move forward and adjust his speed between the walk, the trot or the run, his animation being determined by his movement speed.

HTC Vive integration

The changing rooms of this swimming pool are not welcoming.

The HTC Vive offered us the opportunity to create a lot of interactions between the player and the environment, making a very immersive game. With the basic integration in the project (initialisation of the controllers, management of their connection and disconnection), I also created a system which allows to use easily the features of the virtual reality.

The biggest part of this system is related to the objects management. The idea was to develop all redundant and generic behaviours like when the player touches an object, when he takes it in his hand and then release it (by throwing it or not). But also to create tools in order to, for example, define the objects position when the player takes them in his hand. In this way, it was easy for the team members to add new objects in the environment, with which the player can interact.

Fortunately, the lockers allow to hide!

Also, a big work has been done to be able to open the doors in a fun and practical way. To escape from the Phobia, the player can hide in lockers. After closing the door behind him, he can look through the locker’s slit to observe around. But if he gets too close, he will accidentally push the door with his head, so he needs to take care to don’t get himself noticed by the creature!

Furthermore, we had to choose how the player could move in the environment, by avoiding the problem of motion sickness but keeping a consistent gameplay. Moreover, the HTC Vive enables the player to move in the real world to move in the game. So we needed to take into account another problem: prevent him from crossing the walls inside the game.

Apart from the gameplay, we have included the HTC Vive in the creation process of the environment. It was necessary that the objects and the rooms of the swimming pool have right sizes, because with the virtual reality, we quickly notice that a door is too wide or a can is too small.

Story integration

On the left: the diagram, on the right, the list of elements.

Phobia being a narrative game, we had to find a way to integrate the story easily in the game. After its writing, it has been represented as a diagram. This one describes each step of the story and includes all the needed information, like Abbigail’s dialogues or also the actions that the player needs to do to move forward in the story.

Based on this diagram, my work has been to find a way to represent the story inside Unity, and to create a tool which allows to complete and edit it quickly. The solution was very simple: the story is represented by a list of elements, which are executed successively. These elements can be actions:

AbbigailDialog Plays a dialog.
ChangeCharacter Changes the playable character between Abbigail and Echo.
EchoAIStoryBarks Echo will bark.
TutorialShowAction Shows a tutorial.
MoveVRLock Locks (or unlocks) the player movement.
TeleportShowZone Shows a new teleportation area.

But they can also be events to wait:

Timer Waits for the asked duration.
PlayerReachesTrigger The player must enter in a trigger.
PlayerInteractsObject The player must interact with an object.
EchoAISmellObject The player must ask Echo to sniff an object.
DoorUnlock A door must be unlocked by the player.
AblutophobiaFindsAbbigail The Phobia must find Abbigail.

This video illustrates how it’s simple to create and edit the story of the game inside Unity:

It was a very interesting experience to create step by step this tool. I read in order the story diagram then I added the related elements in the list in Unity. If an element didn’t exist yet, I created it. In total, around 70 different elements have been created for the story. Gradually, the story was playable inside the game and each new narrative scene was exciting to play!

Credits

It would be necessary to write a longer article to explain in detail all the work done on Phobia. Although I don’t speak about it here, I have worked on a lot of other subjects of this project like the AI of Aquaphobia or the tutorials. By the way, we would have needed an additional year of development to create the game completely. We had to cut the game in the middle of the story to guarantee the best possible quality.

To develop Phobia was a very rewarding experience, technically as well as humanely: the harmony within the team was very convivial. Each team member made sure to make the work of each other easier, especially by creating tools to improve the productivity of everyone. To work with the HTC Vive was also a good opportunity for us to discover new ways to create a video game.

I was accompanied by 4 people on this project. Simon Hembert has written the game design document and the story of the game. He also took part to the production of the 3D elements for the environment, was in charge of the sound design and helped me on the programming and the prototyping of the game.

We have to thank Marianne Bal for the Phobia universe, the initial concept and the artistic direction of the game. With Substance Painter and Photoshop, she has given colours to the graphic elements in the game.

Guilherme Fernandes was in charge of the level design of the game. Such Numerobis, he has drawn the plans of the swimming pool before constructing it inside Unity by placing each element. He also took part to the texturing of the 3D elements with Substance Painter and Substance Designer.

Jeremy Lesage has created the different shaders and visual effects, the character riggings and a lot of tools. He has especially created a vertex painting system which has been very useful to bring more life to the environment. He also had the occasion to experiment a motion capture device, even if we haven’t integrated the animations, because the device broke down.

We must not forget to thank the several contributors who greatly helped us:

  • Marie Wastiaux who has lent her voice to Abbigail.
  • Alexandre Parent who has composed original tracks for the game.
  • Estelle Boittiaux who has created some animations for Echo.
  • Margaux Lestavel and Mélissande Rose who have accepted to wear the motion capture suit to play respectively Aquaphobia and Abbigail.
  • The Pole IIID team which gave us good production advice and without which we would not have the HTC Vive!