How Minecraft Got Better Combat
And how it's improving next
This is The Mechanic, where Alex Wiltshire invites a developer to help him put their game up on blocks and take a wrench to hack out one its features, just to see how it works.
“I feel that combat got quite boring over the long term, it mainly felt like monsters were standing in your way.” For a long time, Minecraft's combat has been, well, not exactly premium. Clicky clicky clicky. Swords flailing at air, the basic principle behind combat being the player who clicks most wins most.
For its lead developer Jens Bergensten, it was time for change in the form of Minecraft 1.9, the Combat Update, which released on February 29. “The combat system wasn’t very interesting and we simply wanted to give it a little bit more variation,” he tells me. But how could he design something that would be accepted by Minecraft’s huge playerbase, work with Minecraft’s networking system, and be as playable on touchscreens as mouse and keyboard? The answer was...
THE MECHANIC: Timing
What came first, though – and this is really helpful in explaining where the timing concept came from – was an almost idle experiment in wondering, wouldn’t it be cool if Minecraft had shields. Bergensten and the team were already working on a dual-wielding system which would mean less switching between items during play, and shields simply made sense for Minecraft.
And in the way these things happen, from the shield prototype cascaded a problem. A big part of PVP play in 1.8 was constant parrying, which gave a 30% reduction to damage, then briefly releasing to attack before parrying again. With a shield, the same behaviour became even stronger, meaning that it’d be very hard for opponents to time their attacks. The solution was to instigate a short cooldown after you raise your shield before it actually activates, which equates to the time it takes for the animation of the shield to fully raise. “It’s long enough that if you spam attack and block you won’t get the benefit of having the shield, so it’s encouraging of planning, I guess,” Bergensten says. So timing was now a thing in the game.
Bergensten was also concerned by the common use of scripts on servers that allowed players to attack supernaturally quickly. It was time to stop combat being a matter of spam-clicking, and the timer concept seemed to the solution. He explored several ideas, including a charge attack, where you’d hold the button and release, and a combo-based rhythm one, but a simpler approach won out. After you attack, you must wait a short period before being able to strike effectively again. If you spam attacks, you do no damage.
Simplicity is often its own reward, but there was another factor. “Now we need to always consider how functions like this are going to work on touchscreens,” Bergensten says. Today, Minecraft is far bigger on iOS and Android than PC. “On touchscreens, holding wouldn’t be an option because it means something different, so with this system we knew it would act the same because you still just tap to attack.” The elegance of the design is that in practice, 1.9’s combat feels precise and immediate and not watered down by concession to other platforms.
The timer also introduces greater variation, and this gave new relevance to items like the axe and hoe. “I don’t want to say we planned it all along, because that wouldn’t be the truth,” Bergensten admits, but he was able to make the axe do the most damage on a single strike, but take the longest to recharge, while making the hoe recharge fast, but do low damage. The sword, meanwhile, does the highest overall DPS.
Still, it’s initially pretty tricky to pull off. By default there’s no UI gauge to tell you when the weapon is recharged; its status is instead communicated by the time it takes the weapon to raise back to its usual idle position. But it’s hard to notice in a melee. “I really want to avoid adding a heads-up display, I’m very strongly trying to avoid that,” says Bergensten. So to get a gauge either next to the hotbar or at the crosshair, you have to enable it in the video options. “And the feedback I got is that everyone tells all of their friends to go into options and enable it,” Bergensten says, laughing.
In fact, the overall system was a lot to get heads around. “A lot of people complained that axes do more initial damage than swords – if you time your attacks correctly, axes seem superior,” says Bergensten. “I designed it that way, but people – I’m talking mainly about the kids – they only look at the damage and feel the diamond sword isn’t worth it any more.” It’s probably just a matter of the concept bedding in, since the sword also benefits from combat-related enchantments, while the axe gets you woodcutting ones, and the sword has a special sweep attack.
The sword sweep was a response to a problem with the timer system where, if you were swarmed by mobs, you couldn’t effectively fight back because your hurried attacks wouldn’t do damage. So the sweep attack, which triggers when the timer is full, unleashes a horizontal swipe animation, hitting the targeted mob for full damage, and knocking back all other mobs in range for one point of damage. It works really well, encouraging careful, deliberate play.
The combat changes were, after all, balanced for mobs, not PVP. To hardcore PVPers, 1.9 is probably a bust, because for them 1.7 is the hallmark. “Because it’s the version that has the most mods, I think,” says Bergensten, philosophically. “These changes, I would say, are almost universally hated by the PVP community. If you look at them, they’re super-skilled at playing this really weird, wonky game, which is a lot about strafing around your opponent so they can’t hit you as well, and also they use a lot of fishing poles to hit you back, and flint and steel to put them on fire, and so on. It’s a very skilful game, but that’s not what we look at when we design new features.”
Bergensten seems sad but resigned to the splintered nature of a community stretched across versions. But he remembers how he felt when people started to move from Quake to Quake II. “Competitive players don’t like change. On one hand I always want to improve the game and move forward, but on this it feels like I’m one of those bad developers who don’t speak to the community. There will be people who feel that this is too big a difference to what it was before, so they will never move on, stay on 1.7 and play with their friends and in their clans, and then there will be those who will play the most recent version, and these two groups will not cross.”
But it’s not like 1.9’s changes are cemented into place. 1.9.1 is on the way, and it addresses two specific problems that have arisen from the main update. The first, and rather controversial, change is to ignore attacks when they won’t do damage. This allows the weapon to recharge, despite the button being spammed, and when the gauge will grant a 75% damage attack or more, it’ll perform the attack.
“People were very upset about it, but I wanted to penalise you less if you play the game as you did before,” says Bergensten. “It’s very tough to know sometimes, because the base is so large, if people complain about something if you’re actually doing the right thing. I try to just shield out the world and think, what do I want?” He laughs. “I feel this is a necessary nerf – which I shouldn’t call it. Adjustment!”
The second change in 1.9.1 concerns armour. Previously, diamond armour reduced damage by 80% and mob balancing had to take this into account. But if a mob dealt 20 points of damage, a diamond armour wearer would only take four points while someone without any would be instantly killed. Bergensten’s response was the Wither effect, which bypasses armour by dealing constant damage to all, but that’s a trick you can only pull once. Simultaneously, fully enchanted armour added a further 80% reduction on remaining damage, which was hardly worth the considerable expense when applied to full diamond armour.
1.9’s solution was to reduce armour effectiveness by adding the concept of armour penetration: strong attacks would ignore armour. But when released, players complained that armour had become worse. “My response was that, yeah, that was the idea. So I didn’t really understand the feedback. But then someone pointed out that the real problem was that the difference between iron and diamond wasn’t big enough any more.” The trouble of finding diamonds wasn’t worth the smaller increase in effectiveness of diamond armour.
So 1.9.1 adds armour toughness. Stronger armour will reduce penetration less. Bergensten laughs. “I feel I’m making the system more and more complicated but I’m hoping that people will figure it out.”
Much of what defines the design of the combat update – and Minecraft in general – is really about networking, however. When you attack, your client sends the mob or player’s ID to the server, and then the server calculates the combat mechanics. This means that there is no physical sword-swing in the world, unlike in the likes of Skyrim. The reason for this network design is that, rather than the server, your client has a lot of authority over your actions, because loading the world from the server is very resource-heavy. Minecraft would feel less than fluid, especially for those with bad connections, if the client had to wait for the server to perform every action. “Of course, a block can disappear or reappear, there can be lag, but most of the time it feels very fluid.”
It also means that Minecraft’s design requires a degree of simplicity, as well as exposing it to various hacks which detect when an enemy comes into range of the player and attacks it, regardless of where the player’s looking. “So that’s a bit annoying but it’s very tricky to fix,” says Bergensten. “But you have to consider what Minecraft is for. Are we trying to make a battlefield, or are we trying to make an open-world building game?”
Bergensten says that despite all these complications and considerations, 1.9 wasn’t an exceptionally complex update. But it highlights the subtle intelligence in balancing all the interplays between technical necessities and design goals, open adaptiveness in understanding and adjusting to how people play, and quiet fortitude in holding by decisions. Such things are necessary in continuing to build and improve such a vast and established game. Bergensten always sees problems and things that could be better – from its animation to its balancing. Hopefully he can cherish all that is great about the game, too.