Cash Force is a high-octane arcade VR shooting game where you take the role of an undercover cop gone rouge fleeing the scene of a heist in a colorful 70’s crime film esque setting. Defend your stash of cash from pursuing thugs using an assortment of highly intractable weapons. Lock, load, and shoot your way through waves of pursuing enemies as you engage in combat out of the back of a moving heavily armored van, using the doors and other supplies as cover. Carefully plan your escape route before fleeing the scene of the crime, but remember, the higher the risk, the higher reward! Earn cash from performing skillful shots on enemies, allowing you to purchase upgrades and gadgets to improve your weapons and van. But be careful: the more damage the van receives, the more cash you lose, and its game over if you run outta’ cash!
Crazy Delays and Setbacks
Welcome to the wonderful world of game production, where sometimes everything just doesn’t want to go right!
Although not quite at the “valley of despair” level of setbacks that Sid Meir likes to talk about (fortunately the game is going well!), the past two sprints have seen the team get faced with some major setbacks that unfortunately are out of our control…
…and by out of our control, I mean this damn Coronavirus that’s spreading all over the world…
The beginning of the first sprint since my last post was all about one thing; getting a solid build for PAX East so we could show off the game at the Champlain booth. It was honestly really exciting; hundreds of people would play our little VR game and might get interested in either publishing it or coming to the school! So myself and the rest of the team focused mainly on getting a solid build of the game with as many new features as possible ready for PAX the week before the event, spending around 8 or 10 hours collectively on getting it ready…and then…
the two VR teams had to be pulled from PAX due to Coronavirus fears…
While this was a perfectly legitimate reason to not bring the VR games (health and safety is always priority numero uno), having all of that work turn out to be for literally nothing was a huge setback for all of us. Those hours spent on PAX could’ve gone into actually producing the game instead of tweaking old things to work for the way PAX is setup. It was a sad, disheartening, and ultimately less than ideal week, but we did manage to get some actual production done.
It was certainly an interesting challenge to plan our work around the PAX snafu, and I think that myself and the rest of the leads responded to it pretty well; we tried to make up for as much of the lost hours as we possibly could and each sub-team managed to get a good amount of the rest of the sprint’s tasks completed. There was still a lot of rollover, particularly for myself and Josh (we took the helm on the PAX stuff), so the next sprint was gonna be a hard one…
The next sprint was the soft-alpha due date; we were supposed to have as much of the final features implemented into the game as possible. Since we had just gotten out of Greenlight and subsequently just started working on the game full time again (which was a giant setback in and of itself), there were a lot of tasks to complete and not enough time to do them all. So, as leads, we decided to compromise; lets see how much we can get in this week and then have the following three weeks until Beta be one long sprint to get all our mechanics implemented. While everyone on the design and programming side of things had to work a little extra hard this week (not quite crunch-time level), we managed to get a solid amount of work done for our soft-alpha!
On my end, I got a ton of really cool work done, so instead of tell you all about it in excessive detail, I’ll mostly be showing off what I did this week and giving brief descriptions of the implementations behind it all!
Recoil Overhaul
One of our biggest design problems coming into the new semester was that the two guns we had didn’t feel different from one another; they were both full auto, shot quickly, and could be fired one handed with literally zero recoil (although this was mainly cause the old recoil was bugged thanks to Event Tick). Now that we were adding even more guns to the game, this was going to become an even bigger problem: how do we make each gun have its own role and feel different in terms of feel and ease of use? While having different fire modes, damage outputs, and magazine sizes can change the way a gun functions, if guns like the gigantic Light Machine Gun can be one handed like a Glock, they’re all going to feel the same.
The answer, dear reader, is recoil.
Recoil is perhaps the most important aspect of gunplay feel for any game; besides the loud noises they produce when you pull the trigger, recoil is the most prevalent piece of feedback the user receives from a gun, and that stays true in the virtual world. The way a gun recoils determines how powerful it feels; a 9mm pistol has little recoil because it fires a relatively tiny round; a 12 gauge shotgun kicks like a mule because its firing hundreds of tiny pellets out of a shell two times the size of a 9mm round. If the Pistol and Shotgun of Cash Force had the same recoil feeling, then the sense of power the shotgun should have (or vice versa) would be lost.
With this in mind, I designed a new recoil system that takes advantage of the wonderful input virtual reality provides. Instead of using complicated math for recoil that I used last semester, there are now three values: Recoil X (backwards towards the player), Recoil Y (pitch recoil; the gun goes up), and Recoil Z (yaw recoil; the gun moves left and right). When a weapon is held with one hand in the game, these values are at their maximum: this is where the feeling of power is bestowed. Now if a player one hands the Tommy Gun rifle, it will kick all over the place and make it impossible to hit the broadside of a building….
…which is where the reduction modifiers come in.
To emulate a real life shooting scenario, recoil must be reduced in order to actually hit targets; no one in their right mind would shoot a large caliber rifle with one hand on full auto. Instead, they would grab it with two hands to reduce how much recoil is felt between shots, helping to stabilize the weapon. But this alone is not enough for some weapons. Rifles, machine guns, and other long weapons need to be shouldered to get the gun fully stabilized; if you hold a rifle out in front of you with two hands, its still gonna kick all over the place.
My new recoil design is based on this exact principle! Holding the gun with two hands will apply a reduction modifier to the three recoil variables that makes the gun significantly easier to control between shots. On top of this, holding the gun up to the player’s body area (its very generous) will add another reduction modified for shouldering. These two values can be applied alone or stack to get the full amount of recoil reduction. Now two handed long guns actually need to be shouldered and held with two hands to be effecitve and the smaller guns like the SMG and Pistol can be one handed effectively, even dual wielded! This makes the long guns focused on accuracy while the small guns are focused on rounds down range. Effectively, the new recoil system has totally changed how the game will be played; using the different guns is going to feel a lot more different now!
(did I say I was going to show, not tell? Well, I suppose I should write a blog series on FPS gunplay sometime cause I get really excited talking about it; perhaps over the summer *hint hint*)
Finishing the New Grabbing System
At long last, the new grabbing system has been fully implemented on top of the old gunplay architecture! The new system leverages some great new changes to the way guns operate and feel. Let’s get right into them so I don’t go off on a tangent!
The biggest change is to our “weapon action” system, which is one of our core mechanics. After loading a magazine, the player has to first cock the weapon’s action (either a slide, charging handle, bolt, or pump) before they can shoot. Originally, this mechanic simply played a procedural animation of the gun cocking once the player moved their hand back far enough. The remake is much smoother; before the “cocking” point of the action is reached, the action follows the player’s hand one to one, giving it a much smoother and realistic feeling while still feeling arcadey and easy to use. Josh and I worked alot on this, and the final result is really awesome!
Apart from that, the rest of the grabbing changes look pretty much the same as the old system when viewed, but the feeling in game is substantially improved. The hands never get stuck! Here’s all the currently implemented guns in the game working with the new grabbing system!
Upcoming Sprint Plan
The completion of this two week period has us into our Alpha~Beta deadline period. From now on, everything that myself and the rest of the team is doing will be related to getting all of our features into the game in as bug free of a state as possible. On my end, I’ll be working on getting the animations for our snazzy new VR hands implemented, finishing the implementation for the rest of our guns (which is incredibly easy now since the base architecture is finally set up!), and programming any other features once my time with the guns ends.
It’s gonna be a hell of a lot of fun. I seriously love working on this game!
See you next time,
-Karl