Designing Inputs and Feedback for Joust!

I’ll begin this by now mentioning the game now has a title “Joust!”, no more “Project Joust” as a working title.

Now onto the topic for discussion. Designing the controls for joust is something very new to me as this is the first VR  project I’ve ever done. Not only that,  I’ve barely had the chance to play  other VR games as I’ve never even owned a VR headset before working on this project. This led to spend quite some time purely doing research on VR controls, motion sickness and platform limitations before actually starting any development.

The Initial Plan

When starting the design process, I made the decision to develop for Samsung GearVR. This was chosen for a few reasons:

  • It needed to be VR for my intended gameplay experience to actually work
  • GearVR is much more affordable hardware for me, a student, to buy and work on from home.
  • Much more portable and common as GearVR headsets were given away for free to people that pre-ordered the Galaxy S8 or S8+ Smartphones, creating a larger market.

It started off as a great idea but only once I started developing test scenes in unity for it in my first week, a list of negatives became apparent along with others I already knew…

  • GearVR has no positional tracking (known and accounted for), this prevented me from a more realistic representation of the players arm in the game and removes the opportunity to physically jab your arm toward the enemy to create an advantageous attack (a wanted mechanic)
  • GearVR is difficult to debug and test for. This was the big one that really made me see how impossible it was to develop a game from scratch for the GearVR. When working with GearVR, you cannot have the phone connected to the PC you are working on whilst it’s in the headset as the USB port on your phone is currently occupied. Therefore forcing us to build an APK file, install the app, plug the phone into the headset, start the app, test it, unplug it all and reconnect the phone to the PC when done. This process happens every single time you want to test any sort of change you make in the editor. This led me to a conclusion, if you want to develop for the GearVR, make it for the Oculus Rift. After which, if you feel necessary port the game to GearVR. Even though I may not be doing that for my project at the moment, it now leaves that option open for me in the future.
  • GearVR means you also have to abide by all the rules that android development sets for you. Creating an android development environment sucks. Sure, it took me a long time to do so as this was also the first time I’ve attempted to set up an android dev environment but doing it now, I’ve learnt quite a lot by forcing myself to do this. Also now I’ve done it, I feel I could do it again in 10% of the time next time I really do want to work on an android app or game. So it has its positives.

So from this, plans change. They had to be changed  in order to complete the project.

The Revised Project

Once I worked out we had to change the platform, I had come to the conclusion that switching to the Oculus Rift (with touch controllers) would be the simplest transition we could make in terms of both platform similarity and input devices.

The touch controllers gave us much more freedom to control the main character.

  • 2 controllers gave the player the ability to control a shield as well as a lance.
  • Positional tracking of the controllers gives a more realistic feel for holding a lance.
  • Touch controllers can provide haptic feedback, this is especially helpful for when the lance shatters when hitting an opponent.

The Oculus platform also gives us the ability to have a better looking environment which is a very valuable for VR projects.


As of this post, features like haptic feedback are planned for the project to come but is not currently implemented. Hopefully this is done before the student showcase!

Another mechanic we want to add is the physical force of jabbing. Made only possible by the touch controllers, we wanted to add a value for velocity of your thrust on impact with your opponent. Where this value will determine whether or not your lance will shatter on your opponent, dealing more damage. This sadly also has not been added yet, and currently will shatter randomly depending on where you hit them and a chance factor. This is a temporary band-aid until the intended mechanic is finished.

We shall see how this turns out come the student exhibition where this project will be on display at Synergy, SAE Institute, Brisbane. Event Info Here.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at

Up ↑

%d bloggers like this: