top of page

Acerca de

henchman.png

Henchman for Hire
VR Moped Character Controller

About Henchman for Hire

Henchman for Hire is a VR game developed in the EAE Capstone program of 2019-2020.

In Henchman for Hire, you play as the henchman of the evil Dr. Bad, carrying out evil tasks on your state of the art moped. The main gameplay involves navigating the level on your moped while completing tasks assigned to you by Dr. Bad. The gameplay is comparable to a playable amusement park ride; somewhat similar to experiences provided by Disneyland, but with control given to the players to allow them to roam the environment.

The game was created in Unity, and supports both Oculus VR headsets, and any headset which supports Steams OpenVR standard.

While my primary role on the game was Lead Designer, due to my experience in VR, I was also in charge of implementing most programming that directly interacted with the interfaces provided by the VR headset such as the character controller and VR abstraction layer.

 

The Character Controller

The character controller for Henchman for Hire had two parts, the VR portion and the Moped portion. In the VR portion, the player was given the ability to grab objects with the VR hand controllers and move them around. In the Moped portion, the player used the handlebars of the virtual Moped in order to drive themselves around.

The various components were actively kept separate in order to allow for flexibility and assist in the ease of testing. As such the main code of the character controller was split across 5 files and classes, each with a unique function.

The included files are the main body of the character controller:

 

  • Grabber, Grabbable, and SnapGrabbable contain the code for the ability to grab objects with the VR controllers.

    • Grabber handles the ability of a hand to grab any object that inherits from Grabbable. It handles managing all code related to grabbing generic objects, but does not handle actually moving the grabbed object when the player moves their hand.

    • Grabbable is an abstract class which all grabbable objects should inherit from. It has an interface through which Grabber can interact with any Grabbable objects. All objects which inherit from Grabbable are responsible for handling the mechanism with which to move the grabbed object with the hand of the player.

    • SnapGrabbable inherits from Grabbable, and is a grabbable object which follows the player's hands directly when grabbed, but displays the player's digital hands in another location.

  • HandleBarController and ScooterMoveController contain the code for the Moped character controller.

    • ScooterMoveController is a scooter-like rigidbody physics character controller that operates completely independently of the input method. This means that it can be controlled via a VR control interface, or with a keyboard interface using WASD keys. During play, this is the primary method of locomotion for the player.

    • HandleBarController is the interface between the VR controls and ScooterMoveController. It has two grabbables, and averages the position of those two grabbables in order to determine the rotation of the handlebars and use that to control ScooterMoveController.

© 2022 — Joshua Butner.

bottom of page