Hello Vernacular Faithful! Red Coat here with another look at the insides of our game. When we set out to make to make our first game, and settled on the idea of making a scrolling shooter, we wanted to do something unique in terms of what was being presented to the player content wise. This is why after looking into and ultimately pushing aside the idea of flying corncobs with popcorn blasters, we went with the more down to earth idea of a dude on a motorcycle riding down a highway to the Moon.
I.e. our protagonist Jacob Helaway.
Now this specific idea for a character brought up some interesting quandaries with regards to gameplay. Specifically when considering the shooting aspect. When one thinks of projectile combat on a motorcycle, one thinks of characters leaning about with their arms outstretched to aim at whatever target they’re looking to shoot.
The simple answer to this conundrum would’ve been to give the player 8 directional aiming with 9 animations, to account for the four cardinal directions (North South East and West) their four combinations and the neutral position. However, we wanted to give the player a bit more precision, because we knew they would already have to be accounting for the road while aiming at all of the incoming enemies. Making it so the player didn’t have to do positional micromanaging to get and keep a good bead on their targets was a big priority.
This in mind, we looked into methods of aiming that allowed for all the directional degrees in between the 8 different directions that come from the cardinals and their combinations. We came upon the idea of having the player be able to aim at the cursor, which was, programmatically an easy enough quandary to solve. A quandary made a bit more complicated by the fact that a good deal of players would probably play the game with a controller. To this end we implemented a toggle system that allowed the player to switch between pushing the control stick in a direction to aim and moving the mouse to aim.
But we still had one very big problem: Visually representing Jake’s aiming direction. Since cognitively, when the player is aiming at an enemy, they aim from the center of their avatar to the enemy target, Jake’s body and arm position would have to be moved to make it look like the bullets are actually coming out of Jake’s gun. This meant choosing a fulcrum point for Jake’s arm to rotate about that would allow him to match that aiming angle. With the procedural approach that we chose to use, this would lead to some very awkward moments where Jake would crane his gun over and through himself in inhuman ways to aim at his targets.
No matter what, if Jake only used his dominant hand to aim at his targets, he wouldn’t be able to cover all the angles without becoming some kind of robot or alien. Since we were kind of attached to Jake being human, we looked into methods of representing Jake as a sprite that would allow him to match any given aiming angle.
We then split Jake into six different sprites that changed their animations and orientation with respect to the angle Jake happened to be aiming in. Jake’s arms, torso, abdomen, bike and head were layered on top of each other so as to create a body that looked natural from above. The torso had multiple positions it could take, based on the player’s current aiming direction, being able to look like Jake had shifted his body to compensate for the new aiming angle he needed to take. To compensate for all of the aiming angles, Jake was made ambidextrous, with the ability to switch his gun between hands while firing so that he could aim with either his left or right arm depending on what angle he was using to aim. His head would also look in the direction he was aiming, once again based on the angle the player was using to aim at his targets.
To make testing the visual appeal of the different parts working together in engine a relatively simple process, Sientir went about the process of building a player character editor that allowed us to alter animations and animation triggers on multi-part player entities with very little overhead from a time perspective.
The hardest part was finding a posture that supported all of this functionality, for which, we have the Legend to thank, as he spent many many hours and design sessions with myself and Sientir envisioning implementing and testing the different animations, degree triggers and timings that worked best for in game play.
So yeah, that’s Jake’s player avatar in a nutshell. A whole lot more complicated than he looks, but then, that’s how a lot of things in video games are.
Until next time Vernacular Faithful!