Dillon Drummond

Game Developer & Software Engineer

Western Shooter


Overview


  Western Shooter is a demo for a VR shooter focused on satisfying gunplay with a mix between arcadey and realistic interactions. This is accomplished using a series of animations and effects to make weapons appear realistic, but functionally they are meant to be very simple and forgiving.

This was a solo project built over the course of 4 weeks with the Quest 2 in Unity with C#.

The models and textures (aside from smaller things like ammunition) are from the Western Pack by Synty Studios here.

The music is by QubeSounds and can be found here.

The splash animation sheet for bottles breaking was made by Kuzey Can can be found here.

All enemy animations (aside from inverse kinematics grabbing the revolver) were done using mixamo.

Features

(Click to see more)


Revolver

Lever Action Rifle

Shotgun

Settings

Bottles & Liquid Shader

Revolver

  I wanted to solve some of the problems with making fun interactions with revolvers in other VR shooters. Often revolvers require single bullet loading which is slow and clunky in a firefight often making pistols with magazines and faster reloading the better option. My solution was to use speed loaders to streamline the reloading process. This makes them functionally more similar to a standard pistol, but it allows the player to still feel the power fantasy of holding a revolver and has the realistic animations to back of the interaction.

Lever Action Rifle

  Another problem I wanted to tackle was that of lever action rifles in VR shooters. Other interactions like loading an M4 or a pump-action shotgun are fairly well tested at this point and few titles deviate from the norm but lever action rifles do not have that testing behind them. I decided to allow the player to grab the lever with trigger on the controllers and grab the actual gun with grip. This way the player can interact with the rifle's action whenever they want. Overall, that system works very well and achieves what I was hoping to. While the interaction can sometimes be slightly odd with having to swap between pressing trigger and pressing grip, I plan to revisit it in the future and make some quality of life improvements like making the lever more forgiving when you let go of it for example.

  This was also the stage where I created a two-handed grab interactable. For simplicity (and time contraints) I broke it down into two grab points on each rifle with the trigger grip as the main grab point.

Shotgun

  I've been tossing around the idea that immersion was a huge goal for this project, but the concept of interactive controls was the root of this goal. I took inspiration for the idea from Rumble because I love the idea of diegetic UI and just changing settings and hopping into matches was fun with interactive buttons and levers. I wanted to try that out in a different context. The first interactive object I made was the button. This one went through the most iteration. Originally, it was highly interactive, able to be pushed down little by little until it reached a threshold, but using rigidbodies caused all sorts of problems with resolving collisions with the hand and fingers as well as having the button rigidbodies as a child underneath the ship's rigidbody. Childing rigidbodies is very unstable in Unity. I tried calculating the position of the pressed part of the button based on collisions with fingers, but this again had issues with incorrect collisions and other unforeseen issues. Ultimately, I settled for a simple trigger that would 'press' the button when a finger came into contact with it.

Settings

  The enemies were a key part of gameplay, but not key to the actual demo. The first thing to be done were the firearms since I wanted to focus on satisfying guns. In the last week of development, I blocked out a simple character that follows the player but only starts chasing them if they move outside of a certain range or if the player breaks line of sight. This gives the enemies a more realistic response to players moving small amounts towards or away from the enemies.

  Additionally, I decoupled the gun from the enemy object to make the aiming systems simpler. Rather than dealing with calculations for placing the arms and hands in certain locations such that the gun aims in the correct direction, I opted to have the gun float in space in front of the enemy and use IK to place the enemy hands on the revolver. This allowed me to use the same classes for enemies as I did players just with the grab interactable logic stripped out since players did not need to grab enemy weapons. It also meant that implementing recoil used the exact same system that the players did. As a finishing touch, I added a look-at IK for the enemy head and they really came alive.

Bottles & Liquid Shader

  Originally, it was unclear if there would be time for enemies. If I didn't get to them, I still wanted there to be something for the player to shoot at. As soon as I saw the bottles in the asset pack I used, I knew immediately that I wanted to make a liquid shader. If I had more time, I would have made the effect more complex, probably with bubbles, translucent warping effects, and more but the flat colors I used both fit the art style and took up minimal time allowing me to focus on the more important parts of gameplay. I often found myself testing a certain feature during development and shooting all of the bottles before I would move on. That interaction alone was very fun which was how I knew I was going in the right direction with the gunplay.

Tools


Unity

C#

Quest 2

Maya

Audacity

Reflection


  This project was a lot of fun to work on. It works well for demonstrating the concept. I definitely want to test it and continue production in the future. The name of the game with VR is user experience so I focused on that a lot with the weapons. I wanted to make them realistic, but first and foremost I wanted them to be fun to use.

  There were a lot of things that I didn't get to do. In the future, I would like to add more style-based interactions with the weapons like spin-reloading the lever action rifle and adding a one-handed reload to the revolvers that involves rolling the cylinder across a bandolier.