Dwarf Fortress is a game where a small band of explorers try to make their way in a procedurally-generated world, facing dangers both external (monsters, lava) and internal (political strife, food shortages). Even a basic playthrough can quickly grow to immense complexity, as scores of dwarves toil for the betterment of the camp. In a game where, as chaos theorists would say, there is a “sensitive dependence on initial conditions” (i.e. the butterfly effect), making even a small change can have drastic and far-reaching consequences down the line.
Though this story is focused on one particular game, it shows what kinds of stories, both good and bad, can come from the most innocuous of changes, features, or patches, and how the player experience can change wildly when unintended consequences weave themselves into the fabric of a setting.
Unlike most other fish in Dwarf Fortress, carp had the unique ability to attack fishermen who waded into streams and lakes. Originally they couldn’t do much, just flail themselves against the more confused than hurt hunters, until the developers thought to make a very small change that would become infamous in gaming legacy. What if the carp could deal real damage to unwary fisherdwarves?
The game’s combat system is predicated on appendages—if someone’s arm doesn’t work, they aren’t able to swing a sword as effectively, even if they still have it equipped. What this means is that most animals have a phantom “hand” or two in the code which holds a weapon. An elephant is coded to have two “hands” which hold its tusks, for instance. Without hands it couldn’t “swing” its weapons, and as such wouldn’t be a threat to its foes.
This early game-design decision meant that making carp more dangerous was a seemingly straightforward task: give the carp a phantom “hand” and have it hold a small knife, to represent the damage of its bite. A developer made the change, presumably summoned a carp to verify that it did indeed deal damage, and went about their life.
Here’s where we get to the “unintended consequences” part of our tale. As a simple overview, combat damage is calculated using two values: the lethality of the weapon and the strength with which the weapon is wielded. Elephants are dangerous not only because their tusks are huge but also because they have the strength to wield them with bone-crushing accuracy. Carp had a 1-damage bite attack, and a minimal strength score. They were going to be a nuisance, but nothing to worry about.
Entities in Dwarf Fortress raise their Strength score by doing particular activities such as climbing, hauling rocks, and … swimming. Carp, being a fish, never sleep, and never stop swimming. Without any additional checks in the code, this meant that their strength rating soon reached astronomical levels, effectively working out every second of every day.
At least, until a dwarf waded into the river to gather fish. Being an aggressive species, the carp would launch an attack.
1.1 (Weapon Damage) x 1.1 (Carp strength) = Damage rating of 1.21
1.1 (Weapon Damage) x 700267258 (Carp Strength) = Damage rating of 770,293,984
As most dwarves have bodies softer than adamantium, this kind of damage would instantly destroy, in spectacular fashion, anything it was applied against. A player would notice that the person they sent out fishing had died, and logically assume that some wild animal had caught them. Sending out a small hunting party wouldn’t find anything, and so another fisher would be sent out, with the same result.
Only when looking through the logs did the real problem become evident—the carp were the strongest monsters in the game, and boy did they hate dwarves.
As if to compound the problem, there is a condition that can be applied to creatures in Dwarf Fortress called “undead.” While most of us are familiar with the idea of ghosts, skeletons, vampires, and the like, one of the large mechanical changes that the undead condition applies to entities in this game is the inability to drown. Undead zombies can walk through rivers, and even across oceans, without needing to breathe.
Carp and all other fish suffocate when they aren’t in water. I’m sure you see where this is going.
A single undead carp, having spent its life endlessly improving its strength score, was no longer limited to the rivers and lakes of its birth, and could freely roam the countryside, looking for tasty dwarf flesh. Remember, carp were flagged as hostile and aggressive in order to make them a minor threat when fishing.
Some games resulted in neigh-endless swarms of undead carp ravaging the map, when even one carp would be enough to take out an entire dwarven encampment. Hilarity ensued in the developer forums as they tried to trace back how this problem started, all from simple and logical decisions made days, months, or even years before.
The very definition of “emergent gameplay,” where one little change can make a world of difference in the end.