Sinister Soups Serving Musings On Game Development and Play


Mousing in Diablo 2: An Analysis

Having played some Diablo 2 again a bit ago (as evidenced by my last post, wherein I describe the process I had to go through to get the game running), I started thinking carefully about the design in that game with regard to targeting and attacking.

Since it's a 10-year-old game, I was reminded of some of the many issues I have with the way the interface works in general, and some of the highly questionable decisions they made, in my opinion, just to try to make sure that the game was vaguely playable with nothing more than a two-button mouse, even though every computer has a keyboard.

Still, this post isn't really about that, and rather than complain about questionable UI, I'm going to quickly discuss the way the two mouse buttons target enemies, and activate the skills mapped to them, because I think there are some interesting decisions there.

The left and right mouse buttons are the only method of activating abilities in Diablo 2, and the appropriate LMB or RMB hotkeys must be changed to the skill you want to use, before clicking that button to cast it.

The left mouse button is limited to melee and ranged projectile skills, and passive abilities or abilities that target a specific location or area of the screen are not allowed.

The left mouse button is also intended as the primary method of navigating the world, and clicking on empty space with the LMB results in the player character moving in the direction of the cursor. The character continues to move as long as the button is held, and will navigate around objects or enemies in its way without interacting with them.

It's important to note that this is the functionality of the LMB regardless of the skill that has been bound to that button, and even if a projectile skill (such as Ice Bolt) is bound to the left button, it will not be fired if the player clicks on empty space. In order to actually use a skill bound to the LMB, the player must click directly on an enemy, at which point he may hold the button down to stay locked onto that target and repeatedly use the LMB-bound skill on it.

The other way to use the skill bound to the LMB is by holding the Shift key, which forces the character to stand in place and attack. In the case of a projectile attack, holding shift causes the character to shoot projectiles in the direction of the cursor without moving; while in the case of a melee attack, the character will swing its weapon in place without moving, and will lock onto any target that moves within range of that attack, but will not pursue the enemy if it moves away as long as Shift is held.

The right mouse button is both more complicated and more interesting. For one thing, it is the only way to cast passive spells on the player character, such as buffs or auras, and it's the only way to cast spells onto specific areas of the screen, such as Fire Wall, or even Teleport.

Furthermore, since the right mouse button is not intended to be the primary method of moving around, it treats projectile skills as though Shift were held down. In other words, projectile skills bound to the RMB will cause the character to stand still and cast whenever the RMB is clicked, even if Shift is not being held.

Melee skills have an even more interesting functionality when bound to the RMB.

If an enemy is clicked directly with a melee skill bound to RMB, it becomes a locked target as long as the button is held, and the character chases it around, performing the melee move repeatedly until the target is dead, which is identical to the LMB in functionality. If, however, a melee attack is bound to th RMB but the player clicks and holds in empty space, rather than directly on an enemy, the character will navigate in the direction of the cursor, just like with the LMB, but instead of avoiding enemies, it will lock on to the first one it runs into, and perform the bound melee attack onto this new target until it is dead.

The variable ways in which these two mouse clicks are treated is interesting, especially because at first glance the two buttons seen interchangeable if one has not played Diablo 2 before. These subtleties of design reveal that the left mouse button is meant to be treated more as the "moving around" button, while the right mouse button becomes the "utility and attack" button.

The design also makes clear that Diablo 2 has a concrete implementation of a player's current target, at least as long as the mouse button is held down, which is what make it possible for the "move and lock on" functionality of melee skills on the RMB to work, and for players to simply hold the mouse button down to keep attacking, rather than having to click for every attack on the same enemy.

I think the way the game utilizes the right mouse button in particular is quite clever, especially because I think the "move and lock on" functionality could be adapted quite well to a console controller. Basically, different face buttons would be bound to different skills, and if one of these buttons was held while the player moved with the left stick, the character would lock on to any nearby enemy and start repeating the bound skill.

Action RPGs, and indeed, action games in general tend to emphasize button mashing on the console. However, even a game as old as Diablo figured out that having to constantly click while fighting off waves of enemies is annoying, and instead made it so that mouse inputs were held, and clicks were merely used to select new targets. I could see going this route for a console action RPG, trying to draw the focus of gameplay to strategic skill use, instead of making the player spam a button just to accomplish anything.

Filed under: Game Design No Comments