Advertisement

Controls for intense "beat-em-up" mobile game

Started by February 02, 2013 11:01 AM
1 comment, last by lmbarns 11 years, 11 months ago

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:

1) Movement

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:

Call-of-Mini-Double-Shot.jpg



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.

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…

Typically the accelerometer/gyroscope can give you angle changes in any direction. What you could have, is a small circle in a corner, with an easy to notice color change, that shows the angle of the phone. It you tap it, it will center the phone. The circle is a boundary. If you tilt the phone, nothing will happen until it tilts outside the circle. Giving you a certain forgiveness for shakes and subtle tilts, while still easily perceiving when the tilt will make the character move.

What other ways there could be to control characters movement? Here is some thoughts on this matter:

You could consider a literal drag and drop setup. It could be the character, but I think it would be easier, that you are moving the level, while your character stays centered on the screen. For instance, your character could be automatically fighting anything they pass, and you have to be careful not to smash them into walls, or drop them in holes, etc... Swiping/dragging will move the character, while tapping will change their direction, and give quick bursts to their attacks. then on the outer rim of the screen, you have additional controls for switching weapons or what ever else you need.

“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.

I tend to hate this in games, or at least the way it is commonly done. your thumb covers up the controls and at a certain point, it slips off the tracked boundary of the control, and your character just stops moving. Your correction is to try to get the thumb back in the right place, but since there is no groves or dents to track like on a controller, your thumb/finger usually moves past where you want, and you have a moment of control wobble while correcting.

An alternative to still use this general method, is once the character touches their thumb down in the general spot of the control, the game considers that the center of movement, or no movement yet. Then, as long as you don't let go, where ever your finger goes on the screen, is compared to the original point for the direction you are travelling. Could also affect speed. You could do the same for attack intensity with a second thumb control point. which way your character is facing, and the farther from the center, the more intense the fighting.

Moltar - "Do you even know how to use that?"

Space Ghost - “Moltar, I have a giant brain that is able to reduce any complex machine into a simple yes or no answer."

Dan - "Best Description of AI ever."

Advertisement

I would probably do tap to move/rotate towards the tapped location. Then tap an enemy to face it and if it's in range, attack.

So you'd have 2 fingers on the screen, one moving you away from the enemy, the other tapping the enemy that's behind you so you'd pivot to face the enemy for a split second while you do your attack then spin back to the movement direction.

This topic is closed to new replies.

Advertisement