“Some people possess talent, others are possessed by it. When that happens, a talent becomes a curse.” – Rod Serling
Hotline Miami – on the surface this retro-slasher-shooter looks like another gory celebration of ultra-violence and recycled tropes of much higher-fidelity and significantly larger budget games. I am of the opinion that this was entirely intended, because only through actual experience playing do you really get the sense that the game is trying to tell you something. There is a message, buried beneath the bodies of countless Russian mobsters and their gore-drenched white suits. No spoilers, I’ll let you find it for yourself.
The game stuck with me for a number of reasons, one of the primary of which being the cleanliness and simplicity of the controls. The speed at which a player is expected to react seems almost unfair to the unseasoned gamer, but at the same time, failure is expected, and the transition between dying a horrible death and trying again is painless enough to prevent frustration. If anything, the frustration felt is pointed directly back at the player, as they know they could have gotten the stage right last time. Even more than the speed, the attention to details that we often take for granted stood out clear as day, many of which warrant mentioning.
The main character (“Jacket”, as he is know to fans”), has legs that move independently of his upper body. They track the direction that he is moving, while his torso is free to rotate at will for aiming a sword, golf club, shotgun or assault rifle. This gives a player near absolutely prevision control of attack directions, permitting you to switch targets or take cover in a single frame. The ‘aiming’ function also doubles as a turbo button, extending the range of your cursor and playfield view while speeding up Jacket significantly. After a bit of acclimation, one forgets that he even HAS a slower mode of movement, as it’s significantly more satisfying to zip around like a maniac. However, the slower controls remain for those times where stealth and caution are necessary.
Movement is handled (keyboard-wise) with WASD keys that move Jacket north, west, south and east respectively, without altering his facing which is controlled solely by the mouse cursor (a theme appropriate crosshair) which Jacket will rotate to look at regardless of movement direction. It is reminiscent of Smash TV and other top-down shooter games, but because of the way Jacket moves, his animations seem more distinctive, smoother, and more satisfying to watch in action.
I was and still am impressed by how beautifully this game was executed. So much, in fact, that I took it upon myself to replicate many facets of the controls in Unity3D. I will count the replication as a success, though I did not take the time to give enemies the capacity to attack. The key elements I wanted to pin down were as follows:
- Smooth rotation of the character while moving the mouse cursor around the screen
- An effectively rigged camera that follows the character around while moving without jarring the player’s experience
- Independent torso/lower body animation, relative to movement and facing rotation
- Inclusion of an attack sequence in order to establish proof-of-concept for movement, attacks, and other actions while keeping the character’s legs operating relative to movement/facing
This simulation will be vital to future endeavors, and is a tool I am happy to add to my growing belt of game mechanics that I can utilize for game development. It’s these little victories that keep me motivated, and validate my learning process. You are free to try it here:
- Mouse cursor determines character facing
- WASD will move the character ‘North, West, South and East’ on screen respectively
- Left-Click will launch a single attack while rapid clicking will send Lil’Nidas into a wide-cutting combo sequence
- Right-Click will raise Lil’ Nidas’s shield to block (though there are no attacks incoming)
- ‘R’ will restart the scenario, allowing the arena to be cleared again
- Holding ‘Shift’ will accelerate Lil’ Nidas’s animation and movement speed
- All of the actions possible can be taken while in motion, without interrupting the locomotion of his legs/feet
- Hit detection of enemies is TOO precise at the moment, as Lil’ Nidas’s sword must make direct contact with the enemy.
- The attack animations will hang at times, though Lil’ Nidas will be in the ‘attack state’, so his weapon, even at his side, will register hits if they collide with an enemy
Having solved the problem of pathfinding and obstacle navigation (via AStar), and more precise character controls akin to Hotline Miami (which I highly recommend picking up), my sights are set on artificial intelligence behaviors, and more complex decision making processes by automated agents.
Looking forward to sharing the results.