Controlling a MOBA on a console controller

Preface (3/24/2015): I wrote this four years ago, when I was still working in QA. I had never worked on a MOBA , or played one on a console. Or done any sort of in-depth dive into polishing a control scheme, for that matter. But I was real proud of this write-up at the time!

This is a concept document examining the design challenges of creating League of Legends or a clone of League of Legends on a console.

Control Scheme Goals:

Speed

Players must be able to execute actions quickly. They must not feel delayed by menus, slow targeting methods, or any other aspect of the interface.

Precision

Players must be able to execute actions with precision. If it involves aiming, the control scheme should allow players to aim at exactly the point they want to aim at. There should never be any ambiguity, and, if the player misses or otherwise fails to perform the action, it should be because of player error, not a failure of interface or controls.

Promote Competitive Play

The control scheme must promote competitive play. Player skill should be a factor in controlling the character, and in aiming or timing actions. The use of auto-aim, lock-on, homing etc., and the impact on competitive play, should be carefully considered.

Fast Learning Curve

The control scheme should be easy to pick up. It should feel natural, intuitive, and fit the gameplay like a glove.

Consistency

The control scheme must be consistent. Example: The way you aim an AOE attack and the way you aim a single-target attack should be as similar as possible. The controls for characters A and B should be the same.

League of Legends PC Controls

Movement

Movement takes place on the x and y axis of a 2D plane. The player uses the right-mouse button to place a waypoint on the ground or a unit, which the avatar moves toward. New waypoints override existing ones. Targeting or using certain abilities will interrupt movement. An important aspect of this control scheme is that it supports careful, direct micromanagement of unit movement, while allowing simultaneous use of the mouse for other tasks.

Twitch-based dodging is not consistently possible; there is a slight time cost to moving the mouse to a new location to place a waypoint, especially if it was recently used for aiming an ability. There is an additional time cost when you are targeting actions behind you while directing movement ahead of you, because the mouse must be moved across a wider distance. These time costs, and the inability to dodge at an instant’s notice, elevate the importance of predicting enemy movement and actions.

Camera Movement

The viewpoint can be controlled by clicking on the minimap to instantly move the camera to that location, or moving the mouse to the edge of the screen to rapidly push the camera to a new position.

An important note is that the space bar – the largest key on the keyboard – is dedicated to centering the camera back on the avatar.

Activating Abilities

Abilities are triggered with the press of a hotkey, with a hand that is dedicated to that task. Depending on the ability, pressing the button may be enough to activate it immediately; other abilities may need to have a target selected with the mouse.

Targeting Abilities

There are six ability target types in League of Legends. Two of those, once triggered, require no other action from the player: no target needs to be selected.  The remaining four require the player to click on a target before the ability will activate, and the type of target differs for each.

  • Not targeted
    • Self – Abilities that automatically target, or center on your own hero.
      • Ashe’s Frost Arrows, Nunu’s ultimate.
    • Everyone – Abilities that automatically target every eligible target in the game.
      • Karthus’ Ultimate
  • Targeted
    • Spot – Abilities that target a spot on the ground.
      • Karthus’ Lay Waste, Anivia’s Wall of Ice
    • Unit/Hero – Abilities that target a specific unit on the field.
      • Basic attacks, Zilean’s Time Bomb
    • Direction – Abilities that are fired in a direction. The direction is determined by a mouse click, relative to your hero.
      • Ashe’s ultimate, Annie’s cone of fire
    • Map – Abilities that can be aimed by clicking on the minimap.
      • Teleport, Pantheon’s ultimate, Clairvoyance

Control Scheme Success

The control scheme goals, listed at the beginning of the document, were:

  • Speed
  • Precision
  • Promote Competitive Play
  • Fast Learning Curve
  • Consistency

League of Legends succeeds handily in all five areas. It is easy to fall into the trap of designing a control scheme where speed and precision are inversely proportional, and that is exactly the problem that console FPSs struggle with. In League of Legends’ case, the combination of left-hand hotkeys and right-hand mouse is both fast enough to keep up with the gameplay, and precise enough to leave room for player skill as the only major factor in controlling movement and action.

Consistency is easy: Every action is performed with a context-sensitive mouse, a single hotkey press, or a hotkey press followed by a mouse click to designate the target.

Competitive play is promoted by the fact that micromanagement of your avatar is possible, and lack of precision and time costs are not an important factor in play.

The learning curve for the controls is short and easy, for two reasons. First, the controls are simple. Second, many gamers are already familiar with them because they are directly taken from the RTS genre, minus most of the complexities that arise from controlling multiple units. The caveat is that this is demographic dependent, and certain types of players, even amongst a hardcore audience, may have a more difficult time learning them.

Console Controls Discussion

Re-creating League of Legends’ controls on a console poses a number of problems. A mouse allows for lightning-fast precision control, easily supports unambiguous context-sensitivity, and allows an interactive GUI to be placed anywhere on the screen. A keyboard allows for large numbers of re-mappable, quickly accessible hotkeys.

Movement

On the PC, both movement and targeting are done via the mouse. The mouse cursor moves around in both dimensions on a 2D plane. Movement is accomplished by specifying spots on that 2D plane, which the avatar then moves towards. This cannot be emulated with a control stick without sacrificing either speed or precision. A control stick is great for controlling direction of movement, relative to a fixed spot – usually the camera or the avatar.

Conclusion #1: Instead of controlling the character via waypoints that are placed on a 2D plane, control the character movement directly, by specifying direction, relative to the avatar’s current position. If the player presses up, the avatar moves up. Left, the avatar moves left. Etc. This preserves precision and speed in movement, and, in fact, allows for more consistently immediate movement than League of Legends ever did on the PC. Twitch-based dodging is now possible. Projectile speed can become a bigger factor in play. Players feel more directly involved in the action, especially if this direct control is emphasized with feedback in the right places and a sense of weight and physicality.

Targeting

The most daunting challenge of creating League of Legends on the console is the targeting of abilities. On the PC, the mouse is supreme: players can quickly and easily specify direction or location, or single out specific targets in a crowded field.

A control stick has some severe limitations. It can specify direction relative to the avatar just fine, so any ability that simply involves firing off an attack in a direction – an attack that only requires 1-dimensional targeting, where anything along a line will be hit – will function perfectly. But the majority of targeted abilities in League of Legends are more specific: they target specific points or units on a 2-dimensional plane. A control stick can be lined up with a target, but the control stick alone cannot pinpoint a spot along that line.

Targeting and moving with the same control stick

An easy targeting solution seems to be, at first glance, to simply shoot abilities in the direction that the avatar is facing. This even keeps the second control stick free for the camera!

This has some severe problems. Most of them are covered in the next heading, but one thing is very clear: in League of Legends, it is extremely important that movement and attack are controlled separately. It allows players to aim abilities at pursuers without turning around or changing course. It allows pursuers to use abilities on fleeing enemies that have turned corners. In short, it allows for a much greater degree of flexibility when it comes to aiming attacks and defensive abilities. This in turn supports competitive play: it allows the designers more freedom when designing or balancing abilities, and gives another subtle facet of gameplay for competitive players to pay attention to and master.  On the other hand, it also adds a slight barrier for new players: it is more complex to control targeting and movement separately.

Conclusion #2:Targeting of abilities must remain separate from movement. Players must be able to do one independently of the other.

Targeting a cursor with the control stick

One possible solution is to disconnect the targeting from the avatar. Instead of targeting in a direction relative to the avatar, move around a cursor that can be used to pinpoint a location on the playing field, just like the mouse does. This is analogous to mapping an FPS’ targeting reticule (cursor) to control stick input. The problem is that this solution requires that either speed or precision be sacrificed. Make the cursor move around fast, and you don’t have precise control over where it ends up. Allow the player to aim it with precision, and it will generally be too slow, especially in the midst of fast-paced gameplay.

The reason for this is simple: A mouse provides 2-dimensional control of the cursor in a 2-dimensional environment. A single quick movement of the mouse can place the cursor at a new point, with a new X and a new Y value.

A control stick can only fake this 2-dimensional control: you only have one dimension of input (angle relative to a point). You cannot specify both the direction and the stopping point at once, no more than you can define a new x and y coordinate at once. Instead, you have to give the game a direction relative to the cursor location, wait for the cursor to reach the new desired spot, and then stop giving the game a direction.

Locking on to targets

Another possible solution is to have some sort of target lock, which you can move from one enemy target to another with button presses. Whatever target is selected is where the ability will be aimed at. This has some severe problems:

  • It is either not fast enough, or not precise. In order to aim at the desired target with this scheme (precision), the player must scroll the selection through all possible targets, which is a significant time-cost. A time-cost that scales depending on how crowded the field is.
  • This lock-on method cannot be used to target the ground: it can only be used to target units on the battlefield. Which means that either A: you sacrifice the ability to target spots on the ground, or B: you aim abilities that target spots differently, which sacrifices consistency.

A variation on this is to automatically lock-on to the target in front of or closest to the player at a button press. This runs into the same problems as trying to target a cursor with the control stick: you only have control over direction, and cannot specify distance (or vice versa, if you’re auto-targeting the enemy closest to you). You cannot target opponents behind the one in front of you, or target opponents to the side.

Use Directional-Targeting only

One solution is to embrace the fact that the control stick can only specify direction, and have all abilities targeted that way. You use the right control stick to aim, and all abilities simply fire in that direction when triggered. This creates an interesting cover dynamic, too.

Although this is an acceptable solution that could create compelling gameplay, it also limits the variety of moves that can be designed into the game, and dramatically alters the carefully constructed gameplay dynamics of League of Legends.  It also severely impacts the balance of melee vs ranged heroes.

Camera

The need to control the camera should be minimized, if not out-right eliminated. With the left control stick dedicated to movement, and the right to aiming, controlling the camera becomes problematic. The simplest solution is to map it to the right-control stick, but only while a button is held down to override the targeting. The right control stick is the correct choice here for two reasons: First, it is standard practice in most games to map camera controls to the right, so it’s a shallower learning curve. Second, players may want to continue moving their avatar while the camera is being panned.

If long-range abilities are introduced to the game, and players have the option to fire abilities at targets that are normally outside of their vision, then some form of “sticky panning” could be implemented: players hold down a button to control the camera with the right stick, and when they release it, the camera stays off-set from the avatar’s position. Another press of the camera button would re-center it on the player.

Ultimately, if the need to control the camera can be avoided, it should be. It presents an extra layer of controls to deal with and cram onto a very limited supply of control sticks, and raises the barrier of entry. It also slows down the action: if camera control is relevant in fast-paced situations, it adds an additional time-cost, especially if using it locks up the possibility of targeting.

Control Proposal

The core problem:

  1. A control stick can only be used to input a direction from a point. It cannot be used to input distance, or pinpoint a spot on a 2D plane.
  2. We need to be able to target specific points on a 2D plane, as opposed to just aiming in the direction of those points.
  3. We only have one control stick to work with, because the other is dedicated to movement.

The solution is going to have to involve the faking it on some level: we use the one control stick to aim in a direction, and we somehow interpret the player’s input, or bring one of the buttons into play. The challenge is to do so while minimizing the loss of precision or speed. Using the control stick to target a cursor sacrifices one or both. Using a lock-on method, again, sacrifices one or both, as well as consistency in control.

Proposal: Timing Bar

Golf games often feature a mechanic called a “Swing Meter”: the player starts holding down a button, and, as they do so, the meter fills up. The strength of the swing changes based on when the button is released.

Gears of War features a similar mechanic when reloading. The reload button is pressed, which activates the “Active Reload” bar. The bar quickly fills, but if the player can tap the reload button again at the correct time, as indicated by a white line, the reload action will finish early.

Such a mechanic could be used for aiming in a console version of League of Legends:

  • The player moves with the left control stick, while aiming some sort of targeting line or arrow with the right control stick.
  • Pressing an ability button turns that targeting line into a Timing Bar, similar to the Swing Meter or Active Reload bar described above. The bar’s length is the range of the ability, and a targeting reticule rapidly travels back and forth on the bar. The player can continue to move and aim while this is occurring.
  • Pressing the ability button again will activate the ability, targeted where the reticule was located at button press.

An alternative would be to have the player hold down the ability button, and release to fire it. This has fewer button presses and feels more direct, but leaves the right thumb occupied and prevents further aiming of the ability.

Discussion

Speed and Precision:

The biggest pitfall in such a control scheme is the speed at which the Timing Bar fills and empties. It would need thorough playtesting at different speeds, with and without acceleration, with and without sticky targeting, etc.

If the right balance could be found, then this control scheme should offer a high level of both precision and speed. Experienced players would be able to quickly snap their aiming line to point towards the desired point, press the ability button to activate the ability, and then press it again an instant later to fire the ability. The entire process could take a fraction of a second, approaching (but not quite reaching!) the speed and precision of mouse-control.

Competitive Play and Learning Curve:

Such a control scheme also promotes competitive play. Learning the timing of the bar would be a crucial skill, and one that players could get better at with time.

The flip side is that it would increase the learning curve, and it would make life a little more difficult for returning-but-rusty players. Luckily, it would be a skill-based thing: new players would likely grasp it and its controls quickly, they simply wouldn’t have the technical skills to pull it off as effectively.

There is also opportunity for player-adjusted difficulty here: much like players set their mice to higher speeds as they grow more competitive at FPSs, we could allow players to increase the speed of the timing bar in their options, thus accommodating both extremes.

Gameplay and Balance:

This system throws several wrenches into League of Legends’ established balance.

First, the further away a target is, the more difficult precise aiming becomes. Aiming is partially based on the angle of the targeting line. A difference of one degree, for instance, would be almost nothing when aiming at close-range targets, whereas it might actually be noticeable at long range. It means that there is more granularity when aiming at distant targets than there is when aiming at close targets.

Second, this turns the act of aiming into a skill-based one. On the PC, unless it was a directional attack that required the player to anticipate the target’s movement, there was very little chance of failing to aim at your target. You just clicked on it. With this scheme, poor aim becomes a possibility. This is an opportunity to introduce glancing blows and near-miss effects into certain abilities.

Third, the combination of…

  1. Direct movement control via the left thumbstick (as opposed to waypoint-based movement)
  2. Skill-based aiming
  3. More precise aiming at short-range

…make anticipation, dodging, and quick reflexes an even more important part of the game. The overall effect is to shift a little bit away from tactical thinking, and a little bit towards speed and motor skills. Handled carefully, this could be a very subtle change that adds an interesting dimension to the game.

Leave a Reply

Your email address will not be published. Required fields are marked *

Post Navigation