Claws & Effect VR
Meet the Team
For Claws & Effect VR, the team behind development consisted of 7 people. Our lead producer and QA manager was Brendan Smith, our lead artist and environment artist Kathryn Komerska, our lead designer and level designer Jared Vitchkoski, lead programmer and physics programmer Mitko Ivanov, our character artist and product owner Spencer McKeown, our sound designer Michael O'Donnell, and myself as the AI programmer and VR programmer.
About the Game
Claws & Effect is a VR physics-puzzle game in which you take on the perspective of both a cat and a hitman. Your objective is to clear out a speakeasy of its pesky rodent inhabitants. However, you aren't one for doing things the conventional way, instead of taking the easy way out, you thrive on using the environment around you to "take care of" your targets.
My Work
My two main priorities while working on this project were setting up a fully functioning VR character with all the capabilities that we required for our game as well as developing the AI algorithms being used by our rodent targets. The VR character was probably the most meticulous piece of work I have ever had to put together. Unity gives a lot of strong foundation for developing in XR with its plugins, but there was still plenty of things that need to be worked around to get the features in that we desired. The AI for the rats was mainly focused on constructing a state machine to control the rats behavior, as Unity provides pretty solid pathfinding functions for our purposes.
The VR Character
Using Unity's VR Interaction Toolkit as a basis, I started with just getting in the basic features expected of VR games, locomotion and interaction. For the locomotion we started with teleportation, but moved to a mix of teleportation and smooth locomotion. The teleportation would be used to create a "jump" effect for the player. Smooth locomotion was used for general movement, but this made us a little nervous because of motion sickness. However, as a result of the relatively slow acceleration of the player character, we never received many complaints of motion sickness. One final piece of locomotion that was needed was climbing. The climbing feature was implemented through an inversion of the interaction mechanics. Usually, when the player grabs an object, the object moves where the player designates. To create the climbing effect, certain objects were made to move the player, rather than themselves, when they were interacted with. The interaction system itself was rather simple, objects could either be grabbed and thrown, or they could be interacted with and some effect would occur as a result of the interaction, such as the stage microphone falling over.
The Rats
The Rat AI was developed with the intention of giving the player somewhat of a challenge as they attempted to whack the rats. The player is not meant to ever be able to "catch" the rats in the traditional sense, but rather the player was meant to maneuver the rats into favorable positions for utilizing the environment to finish the job. For the most part, the state machine did a great job of accomplishing this. The rats were able to switch between a number of behaviors to fit the situation they found themselves in. The base state for the rats was to wander aimlessly around the speakeasy. As a note, they could not just go anywhere, as we used Unity's NavMesh to lock certain rats into certain areas. When a rat was not wandering, it was searching. The search state put the rat on the lookout for two things; cheese and the player. In the event the rat found cheese, it would enter the bait state, moving itself to the cheese and taking some bites out of it. The rat remained in this state until 3 bites of cheese were taken, then it would continue to wander. In the event that the rat found the player, it would enter the flee state. In the flee state, the rat had two possible objectives, escape the player or locate a rat hole. The rat will run for as long of the player chases it, but if it can find a rat hole, it will enter the hole, getting teleported to a set location across the map. With the rat being faster than the player, using some obstacle avoidance in addition to Unity's pathfinding, and being guided by the state machine, most players found it difficult to actually catch a rat.