Parzival: a VR Training for the knighthood

Diego de Palacio Ruiz Cabañas
6 min readJul 31, 2017

--

A VR scale room game prototype, for training the fast usage of a sword with precise hits.

This project was developed as a part of my VR Nanodegree program, for the Udacity Teamworks.

Unfortunately, although my teammates were agreed on the game project proposal, they couldn’t work with the project, and therefore I had to accomplish all the tasks by myself.

You can watch a complete of around one minute of gameplay experience with sound here: Parzival

A HTC Vive, the latest Unity beta (2017.1.0b2), TextMeshPro plugin, the Unity Technologies Viking Villange, a Sims 2 Training dummy, and some free sounds and music were used in the process.

The game was developed in around 20 hours.

Great results

The game is fun to play, and push the player to go around the dummy hitting with precision using a sword.

These are the highlights on which I focused to make this prototype remarkable:

  1. The game is reusing my previous trigger scripts from my Drums Simulator game prototype;
  2. Those scripts was extended to:
  • Get the amount of subscribed listeners to the “hittable” objects;
  • Be able to trigger only one specific delegate of the subscribed listeners;

3. The game is prepared to be easily modified, by:

  • Adding / changing the hit zones;
  • Changing all the configurable times: gameplay, color feedback on the hit zones, etc.
  • The materials and sounds can be easily switched, because their configuration is contained on an instance of a ScriptableObject

Story of the process

The theme of the Teamwork was the past, and the team names was predefined.

In our case our team name was Team Parzival. Parzival is a medieval German romance, about the Arthurian hero Parzival, and his knightly adventures, so we decided to create something related with knights.

Image source: https://en.wikipedia.org/wiki/File:Parzival.Lauber.jpg

I proposed something easy to develop: a game in where the player could train to use a sword with a training dummy.

The initial idea was to have some game in where at the beginning, the player could choose the difficulty, and the highlighted areas will have some time to be hit, depending on the difficulty.

I proposed to divide our work on manageable chunks:

Unfortunately after the “delivery date” passed, and my teammates told me that it was not possible for them to accomplish their tasks for not having enough time.

Because of this, I create the prototype by getting some already made environment, props and sounds.

User testing and iteration

In the process of the game creation, I realized that if the zones to be hit would be randomly chosen, the experience will not be very fun if suddenly the area to be hit, appears just in the opposite side of the dummy and then the player should round completely the dummy in order to hit such area.

For that reason, the final version is only choosing an area which should be on the boundaries of the previous vertical one, so the game has 6 different vertical zones: front right, front left, left side, back left, back right and right side. The head and base of the dummy are part of all of them.

The number of hittable areas is 16.

As additional aid for the player, the possible areas that will be taken on account to chose the next random area, are displayed with a transparent highlight, in that way the user can see where he need to hit, after hitting the current dummy area.

Another challenge was finding a way for the player to have the possibility to start the game a non intrusive way.

Having a sign near to the player was the initial plan, but this will be annoying for the player, because it could get in the way of the player while rounding the dummy or will push the player to go to a different area, just to be able to press the “play” button.

The way of solving this was to ask the player for a gesture in order to start the game. This gesture was simply holding the sword over his head, which seems appropriate, because this also can represents a gesture of victory.

The player can cancel the player start, moving the sword down before the countdown ends.

Breakdown of the final piece

The last step on the creation of the game was the creation of the menus and the main game states: how to play, gameplay and game over. From the game over state is possible to play again.

This three stages have different behaviour:

  • How to play: The rock in which the menu is located, is showing how to play and the instructions to start the game. The first paragraph is replaced by a 3 seconds count down if the player raises his sword over his head. The dummy can be hit with sound, but the different areas are not distinguishable;
  • Gameplay: The rock is showing the score and also the remaining training time. The dummy is showing the next area to be hit with a green highlight, with the surrounding areas with a transparent highlight. If the player hits on the right area, the score increases, the area changes to blue for half of a second and there is a good hit sound. In the contrary, if hits on another area, this last area is highlighted with red and a wrong hit sound is played.
  • Game over: After the time ends, the dummy hides all of the highlights, and the rock shows the final score and the instructions to start the training again.

Possible future improvements

The project was fun to create and play, the possible areas to improve are:

  1. Change the hittable areas to be actually parts of the mesh instead of additional cubes, cylinders and spheres on top of the dummy;
  2. Optimize the environment, removing all of the additional 3D objects and other assets and components that belongs to the original Viking Village scene, that are not improving in any way the user experience;
  3. Add additional gameplay modes, like taking on account the force of the sword when hitting the dummy in order to give more points if the hit is stronger;
  4. Add particles while hitting the dummy;
  5. Add dummy movement, caused by the impacts;
  6. Some parts of the dummy can be fall apart after some strong hits.

--

--