Hello there, guys and gals!
I want to discuss a rather interesting issue that I troubled myself with recently.
Let’s say that we want to make a super intense top down "beat-em-up" game for touch devices "Hotline Miami" style, where every missed attack would be really costly for the player and his reflexes have to be top notch to succeed.
What control methods would you use for such a game?
Let’s think about it together:
We need an ability to move character around in all directions AND ability to rapidly change the vector of his movement in precise needed direction, to avoid attacks and evade from explosions/projectiles.
This problem was already “kind of” solved in multiple top down arcade shooters. Let’s look at “Call of Mini” for example:
Character movements controlled by the “joystick” circle – player “pulls” the dot across the circle to change vector of character’s movement. This gives rather swift and accurate control at character’s movement.
But it have its drawback - player’s finger covering part of the screen all the time, and if it’s not so crucial for tablets, on smartphones you basically black out corner of the screen, where enemy, power up or any other important visual information might hide. Plus it looks like trying to force “analog” controls inside touch devices.
What other ways there could be to control characters movement? Here is some thoughts on this matter:
Using accelerometer – While it is a relay responsive type of controls it can be really tricky to make them work right (especially if we have 3 dimensions). It might be hard to compensate for all possible angles of holding the device, so character won’t “stuck” running up or down all the time. But what if we add “walk” button and control direction in which character will move by tilting the device left and right? That might work…
Using tap controls – It’s a touch device right? So let’s just tap where we want to go to move around, right? While it is good for slow paced games, this approach might not work with “intense” approach we want to achieve. Path finding might get awkward and moving player not the way he intended to + it would be a lot of pain to code it the right way (with walls and obstacles in mind). Though I see a chance for this control type if we only move character “one step” in direction of the tap, but then the trivial task of walking to the other end of the room will lead to furious taping every time. Another option is to create tile based world to make tap path finding smoother, but that might simplify gameplay too much, decreasing the number of possible maneuvers for the player and enemies.
2) Rotation and Melee combat
This is the reason why I started to think about whole thing. How do we control player’s character rotation? Adding second rotation “joystick” like in example above, might work if we want our character to constantly attack the direction he is facing (like firing an automatic weapon or activating a chainsaw).
But what if we want to let player deliver accurate single hits? What if we want player to tap for his every hit? How do we achieve that “manual” melee combat feeling from PC and Consoles? To do that, we have to separate “rotation” and “attack” actions. We may rotate player character in the direction of movement, but how do we control attack action?
Here are options I could think of:
“Attack wheel” – Instead of joystick we use circle of 4 segments (“Up”,”Down”,”Left”,”Right”).
Taping on different parts of the circle will make player’s character to attack in corresponding direction. Minuses of this method, is that it decreases possible amount of attack angles to four and removes no brainer attack forward button. Though this type of attack controls proved them self in “Binding of Isaac” they still wouldn’t give that “Hotline Miami” accuracy we are trying to achieve. Of course we can use circle of 8 segments or more, but that will drastically complicate controls on small screen of the smartphone.
Swipe attacks – Why implement additional GUI elements, when we can literally “draw” direction of the attack with simple gestures? Swipe direction = attack direction sounds simple and easy (worked god for fruit ninja at least=) ), but let’s think of a case when we have to “bash” same spot multiple times. Swiping several times in one direction might be not as easy as taping out attack button, plus it wouldn’t work for ranged automatic weapons if we will add them to the pile.
If anyone have anything to add I would love to hear your thoughts and ideas on this issue.