Dwarf Fortress (officially Slaves to Armok: God of Blood Chapter II: Dwarf Fortress, referred to as DF) is a part construction and management simulation, part roguelike, indie video game created by Tarn (Toady One) and Zach Adams (ThreeToe). Freeware and in development since 2002, its first alpha version was released in 2006 and it received attention for being a two-member project surviving solely on donations. The primary game mode is set in a procedurally generated fantasy world in which the player indirectly controls a group of dwarves, and attempts to construct a successful and wealthy fortress. Critics praised its complex, emergent gameplay but had mixed reactions to its difficulty. The game influenced Minecraft and was selected among other games to be featured in the Museum of Modern Art to show the history of video gaming in 2012.
The game has text-based graphics and is open-ended with no main objectives. Before being played, the player has to generate worlds with continents, oceans and histories documenting civilizations. The main game mode, Fortress Mode, consists of selecting a suitable site from the generated-world, establishing a successful colony or fortress, combating threats like goblin invasions, generating wealth and taking care of the dwarves. Each dwarf is modeled down to its individual personality, has likes or dislikes and specific trainable skills in various labors, alongside a lovelife system and distractions. The second game mode, Adventure mode, is a turn-based, open-ended roguelike where the player starts off as an adventurer in the world and is free to explore, complete quests, or even visit old abandoned fortresses. The combat system is anatomically detailed with combat logs describing organs getting pierced, fat getting bruised and limbs getting severed.
Prior to Dwarf Fortress, Tarn Adams was working on a project called Slaves to Armok: God of Blood which was a role-playing game. By 2004, Adams decided to shift from the original Armok to Dwarf Fortress after the former became difficult to maintain. Adams calls it his life's work and said in 2011, that version 1.0 will not be ready for at least another 20 years, and even after that he would continue to work on it. The game has a cult following and an active online community. As there is no way to win, every fortress, no matter how successful, is usually destroyed somehow. This prompts the unofficial community motto: "Losing is Fun!"
Overview and game modes
Dwarf Fortress has three primary game modes which take place in worlds created by the player, where most of the elements are randomly generated. Fortress Mode is a construction and management simulation of a colony of dwarves. There are no objectives, with the player being free to decide how to go about managing the colony and making them interact with the environment, thus making it an open-ended and sandbox-style game. Since there is no way to win, it only ends when the entire colony is defeated by the various possible threats. The visuals are text-based using code page 437 characters in various colors as graphics. Thus, it is fully of letters, numbers and symbols; dwarves are represented by different colored smiling faces, a cat and dog are a white "c" and brown "d", while a giant cave spider is a grey "S".
Adventure mode is a turn-based, open-ended roguelike where the player starts off as an adventurer. In Legends mode, players can view maps, histories of each civilization and any figure who has lived or died in the generated world. Any noticeable achievement made by the player in any of the two game modes is recorded in the Legends. An object testing arena is present, where players can simulate battles between selected units in various conditions.
The first step in Dwarf Fortress is generating a playable world; only one game can be played per world at a time. The player can adjust certain parameters governing size, savagery, mineral occurrences and the length of history. The map shows symbols representing roads, hills, towns and cities of the various civilizations, and it changes as the generation progresses. A midpoint displacement algorithm generates the world.
The process involves procedurally-generated basic elements like elevation, rainfall, mineral distribution, drainage and temperature, using fractals (which give it an overall natural look). For example, a high-rainfall and low-drainage area would make a swamp. Areas are thus categorized into biomes, which have two variables: savagery and alignment. They have their own specific type of plant and animal populations. The next phase is erosion—which the drainage tries to simulate. Rivers are created by tracing their paths from the mountains (which get eroded) to its end which is usually an ocean; some form into lakes. The salinity field defines oceans, mangroves or alluvial plains. Names are generated for the biomes and rivers. The names depend on the area's good/evil variable (the alignment) and though in English, they are originally in one of the four in-game languages of dwarves, elves, humans and goblins; these are the four main races in any generated world.
After a few minutes the world is populated and its history develops for the amount of in-game years selected in the history parameter. Civilizations, races and religions spread and wars occur, with the "population" and "deaths" counters increasing. The ticker stops at the designated "years" value, at which point the world can be saved for use in any game mode. Should the player choose to retire a fortress or gets defeated, this world will persist and will become available for further games.
When Fortress mode is selected, the player is given the option to choose the embark location in the world. The player must consider the environment, elevations, biome, soil types and mineral concentrations, which can pose significant challenges to the development or survival of the fortress.The colony's supplies, domestic animals, and skills can be customised, but each dwarf's mental and physical attributes are randomly generated,as are their mental abilities, individual preferences and desires. The game also describes in detail each dwarf's physical appearance, like hair and facial features.. Each dwarf's relationships with others and the deities they worship can be viewed.
The player embarks with the expedition team (seven dwarves, and their livestock and supplies by default), and does not have direct control over them. In order to construct and operate the fortress, the dwarves undertake labours as designated by the player. They can be assigned any labors, but their work still depends on their relative skill with it, which can increase. Some task categories are stone-working, woodworking, metalworking, farming-related and crafts-making; there are further combat-related skills. They are categorized further, such as leatherworking, butchery, clothesmaking, gem-related, glassmaking, and clay-related industries. Activities take place in workshops which need to be constructed; for example, stills for brewing alcohol. The metal industry has a very important role because it produces weapons and armor for the military, trap components for defense, and high-value furniture and decorations.
The player initially can see a top-down view of the surface-level of the fortress site; each layer of a z-axis level can be viewed when the player changes it. An entire underground level would be seen as its entire section of terrain while a mountain at the surface level would have only its section visible with the remaining surface landscape. Thus, for digging, the player can designate, for every z-level starting from the surface, staircases to be carved and at the final designated level, ending the staircase by making it dug into a room.
The geology in Dwarf Fortress is fairly accurate. Rocks like olivine or gabbro can be dug up, while the topmost layer usually consists of sand, clay or plain soil—this can be used for underground farming. Deeper levels are layers of rock; minerals appear in layers or clusters around the right depth, while gems like tourmalines appear in rare clusters. Water is simulated like falling sand, every space can contain up to seven levels of it. A tile having "one" level of water is the lowest while a tile with "seven" is full. There is a system for simulating temperature and heat. Fires can spread and burn dwarves and furniture. There are four basic seasons in an in-game year as in real life: spring, summer, autumn and winter.
Mineral ores can be mined just like normal stone and the raw ore can be smelted to produce their corresponding metal bars. Different ores or metal bars can be alloyed together for higher quality materials. For steel production, flux stones are used to make pig iron bars and smelt it with regular iron and coal (or charcoal). Specific metal items can be melted back to their respective bars. Without steel, the alloy bronze or regular iron are the next best suitable metals to use. Bronze requires two ores or bars of tin and copper. The metal adamantine, found deep below, is extremely light but very strong, making it excellent for sharp weapons and armor. Raw adamantine can be extracted into strands and can further be either woven in cloth or smelted into wafers.
Fortress management and growth
Underground farming has customized crops like "plump helmet" mushrooms, which can be brewed to make mushroom wine. As the fortress prospers, migrants come in larger numbers from the mountainhome (the colony's home civilization) and will need further accommodation. Trading caravans, which can be from the various neighboring civilizations including the home civilization, visit the fortress on a yearly basis and are useful for getting supplies not available in the player's fortress area. The role of record keeper, manager and broker can be assigned to any dwarf during early game. The record keeper maintains records of every item present in the fort, the manager auto-assigns jobs and the broker deals with trading caravans. The production of crafts from any material are useful for trading. The caravans come from civilizations of elves and humans but depending on the embark region and history, they may be absent or sometimes even hostile.
Dwarves need to be provided with food and drink (mostly in the form of alcohol). A dwarf will get negative thoughts for drinking plain water and even for drinking the same type of alcohol, making it necessary to grow different crops for producing different drinks. Things like not having a separate bedroom can upset a dwarf. They may make friends and sometimes marry; females give birth. Dwarves can get upset by sustaining injuries, having poor clothing, losing their pets, friends or relatives; interacting with or seeing their corpses can aggravate this. A frustrated dwarf may break furniture or attack others. Continuous stress will cause them to go berserk, becoming suicidal or going insane before their eventual deaths. Their quality of life can be improved by giving them luxurious personal bedrooms and a well-decorated dining room, medical care, and providing them with a variety of drinks and well-cooked meals. A chain reaction where a single dwarf's unhappiness causes the entire fortress's population to start throwing tantrums can begin when one dwarf throws a tantrum, attacks and kills another one with many friends, which drastically affects the happiness of many more.
As the fortress expands and develops, new noble positions become available. While regular dwarves will be happy with simple rooms provided to them, dwarves appointed or elected to noble positions will need more luxurious accommodation. Most nobles will even make demands and mandates, getting negative thoughts if they are not fulfilled. A justice system is present to punish criminals, for example, dwarves who injure or kill another dwarf or destroy furniture. Occasionally, a vampire dwarf, with a fake background history, may arrive with a migrant wave and start killing and feeding on the other citizens without being noticed.
Inspired or stressed dwarves will occasionally get into a "strange mood". They will take over a workshop and go searching for the required materials to begin construction of an artifact. If they cannot find the materials, the dwarf will wait at the workshop, demanding it till it is available. After a few in-game weeks, the work results in a legendary artifact, an item so masterfully crafted that it is usually worth more than a beginning fortress' total wealth put together. These artifacts will be added to the world's records and its exact description can be viewed. Through this entire period of being in a strange mood, a dwarf will not eat, drink or sleep and will eventually go insane if prolonged due to any reason.
Threats, defense and digging deeper
The first in-game year will usually consist of kobold thieves and goblin snatchers trying to infiltrate the fortress. Thieves try to steal valuables while snatchers try to kidnap dwarven children to raise them as future soldiers. Goblin and kobold civilizations near the fortress will always be hostile and a source of frequent attacks. Wildlife is usually harmless, but depending on the fortress's location, more fierce bears, unicorns, giant cave spiders and wolves may be a threat. Wealthier and more populated fortresses will get ambushes and sieges from neighboring goblin (or other enemy) civilizations. A thriving fortress will attract certain megabeasts like hydras, titans or dragons, and randomly-generated creatures called "Forgotten Beasts". These unique creatures have randomized physical qualities and abilities, thus making them have the potential to be very powerful. Undead attack mainly in evil biomes or if the player embarks with a Necromancer Tower being near the site. Undead are harder to kill, and often reanimate once they are defeated with their body parts being separate units to fight.
Military squads can be assigned to a barracks to train in and a uniform (armor and a weapon) can be chosen. Squads can be directly commanded to attack enemies. Crossbows can be made for ranged attacks and a range with targets can be constructed for training. Walls can be carved into fortifications and be used by ranged-units during attacks. Players can use traps and engineering in addition to training an army. Traps can be made by constructing mechanisms and using metal or wood to construct large weapons like spikes, ax blades or cages. More complex lever-operated and pressure plate-triggering trap components are available.
The combat system in Dwarf Fortress is anatomically detailed. Combat is displayed by viewing the log which describes each weapon striking a specific part of the character's body. Internal organs can get punctured, combatants can fall to the ground, vomit and lose body parts. Each dwarf has individually detailed limbs, each with damageable bone, fat, muscle and skin. Fat can be bruised without breaking bones and vice versa. Injuries sometimes can be permanent. There is a medical system where a hospital can be set up containing crutches for disabled dwarves, traction benches, plasters and cloth for casts and bandages, thread for suturing, and splints.
Digging deeper is usually done for finding magma, which as a fuel source, removes the player's dependence on coal or wood. Another reason to dig deeper is for searching for specific raw materials, ores or gems. Magma pools or even bigger magma seas are found while digging into warm rock. Near magma seas, raw adamantine strata can be found. They are shaped like columns, which pass down through the entire magma sea. These columns are hollow and can be broken, revealing an entire shaft leading deeper into the underworld. Underworld creatures are countless and can bring entire fortresses to ruin.
Adventure mode is a roguelike played in the generated world, and unlike Fortress mode, it is turn-based. In this mode, there is character creation similar to other role-playing games - players can choose a name, gender and spend points on specific combat and physical skills, where the amount depends on whether the player chooses a peasant, hero or demigod. The player's character starts off in a random town of their chosen civilisation, depending on their race, and can interact with the various non-player characters (NPCs). NPCs can give quests (usually to slay an outlaw or megabeast), speak about the surrounding areas, or offer to follow and help the player. Players can choose to explore any part of the generated world using quick-travel mode. A player can find the area of their previously-slain character, visit old abandoned fortresses, or seek out their treasures and wield previously-made artifacts. Instead of quitting, the character can be retired, and depending on the player's achievements, their life events will be documented in the Legends Mode among the other historical figures.
Early development (2002–2006)
One of Tarn and Zach Adams' early works was a text based adventure game called dragslay, written in the BASIC language and influenced by Dungeons and Dragons. This was the brothers' first fantasy project. In high school, Tarn Adams taught himself the C programming language and developed it further. dragslay would later have an important influence on Dwarf Fortress. Adams explained his interest in fantasy games, that he had grown up "surrounded by that sort of thing...along with generic sci-fi, generic fantasy is part of our heritage." Years later, before entering graduate school in mathematics, Adams began working on a project he called Slaves to Armok: God of Blood. It was named after a deity in dragslay, originally named for a variable "arm_ok"—which counted the limbs the player still had attached. This new project was a two-dimensional (would later have 3D graphics) isometric fantasy role-playing game in which the player encountered and fought goblins.
Tarn took some time off Armok to work on small side-projects, and another one which would inspire Dwarf Fortress was Mutant Miner. It was turn-based loosely inspired by a game called Miner VGA. Mutant Miner involved the player digging underneath buildings, searching for ores and fighting monsters, and carrying radioactive "goo" back to the surface for application in growing extra limbs and gaining other abilities. Adams was dissatisfied with only having a single miner, and the game began to lag because it was turn-based. Adams said:
instead of rewriting the game, I thought, well maybe it should be dwarves instead. And it should be real-time to combat the [lag] problem. Now, you'd be digging out minerals in a mountain, combating threats inside, and making little workshops. Then I thought, well, how should the high score list work? We really like to keep records of plays. Not just high score lists, but expansive logs. So we'll often try to think of ways to play with the idea. This time, the idea was to let your adventurer come into the fortress after you lose and find the goblets you've made, and journals it generates.
First release (2006)
Adams began working on Dwarf Fortress in October 2002, estimating that the project would take two months, but suspended development soon after, in order to finish his previous work, Armok. He explained that it began like the 1982 arcade game Dig Dug. The Adams brothers started the Bay 12 Games company, launching its website and releasing their games online. By 2004, Adams announced on his website that he would be switching his main project to Dwarf Fortress after he struggled to continue working on Armok, after all its added features became harder to maintain. Adams explained that it would be a dwarf simulation game but he kept Adventure mode as a surprise feature, which was revealed during its release. At that time, his fan base consisted of a few dozen people and more came in when he made this announcement. He put up a PayPal button after a request from a fan; similarly, a subscriber system was added later. In the next five months, they made around $300, which brought in only enough to cover the site's $20 hosting cost. He dubbed the game as Slaves to Armok, God of Blood II: Dwarf Fortress; Adams explained that it was a sequel because it continued to work on much of Armok's code but said its cumbersome name was mostly "for kicks."
Adams decided to focus on the game's development full-time during his first year of his math post-doctorate at Texas A&M in 2006. He quit it after a year and decided to use up his $15,000 savings. The university offered him $50,000 if he would stay another year. Adams agreed and commented on this, "I woke up the morning after I gave notice, like, I can actually make this work." Adams expected he would have to get a job in order to support himself and use his savings because the game had not been released yet. Development continued till 8 August 2006, when the first alpha version (version 0.21.93.19a) was released. Donations reached $800–$1000 in the following months, this average increased gradually till they were financially stable. He then decided to solely rely on donations.
Continued development (2007–2021)
Adams did not use the 3D graphics which Armok had since its development was hampered because of it. He cited the ease in development of features like fluid simulation, copyright issues with the art and more unhindered possibilities as further reasons for not using it. Being used to the text-based graphics in roguelikes, he did not want graphical tilesets. The story-generation originated first from Armok, although present to some extent in dragslay. Tarn and Zach would write different chapters of events they would like to see, mix it together and try to implement it. Most of this story writing is managed by Zach, who has a role in the game's development. He graduated in ancient history and books like The Twelve Caesars and the writings of Assyrian kings influenced the game.
Tarn Adams was influenced by roguelike games like 1985 Hack because of its randomly generated levels and detailed mechanics. The body part and wound system was inspired by 1990 role-playing game Cyberpunk 2020. Adams cited Ultima series as the inspiration for his generated worlds. He prefers modeling on individual elements, rather than entire systems, for better simulations with the outcomes being under his control. During world generation, he made an algorithm to simulate rain shadows which occur in areas at the side of mountain deserts. For the distinct personalities of each unit, he took it from NEO PI-R test of which he admitted knowing little about. The feature of carps eating dwarves was unexpected when the game was released. He had written them having the same size and carps were designed to be carnivorous. Adams composed the game's flamenco-inspired music.
A z-axis was introduced in the 2008 release because he felt the limitations with a single plane increasing; the feature of making various constructions like walls was also added at this time. In the earlier version, players could dig only into a mountainside and not underground because of having only one "z-level", thus it was considered "2D". This was significantly easier to maintain due to the limited playable area. Adams commented that this major change was further difficult to implement because of considering details like fluid mechanics and cave-ins. In 2012, more traps, abilities, syndromes, detailed cities and tombs were added in addition to vampiric and lycanthropic infections, necromancers and undead.
On his reliance on PayPal donations, Adams says he is content. since he feels that people really like his work or they would not pay. Ever since its release, donations kept increasing and remaining stable except having a sudden increase during a new version update. He got $50,000 in 2010 following a major update after a long gap. Their expenses being low, he has maintained that he is happy as long as the game is self-sustaining and will not charge for it. In 2011, Adams refused a job offer from an unspecified major game developer and a $300,000 deal to license the name Dwarf Fortress from another company. Adams felt that this amount would not equate to the long-term donations he would receive. Adams said that he prefers working on his own and not being part of the gaming industry. In 2013, his average income was $4000 a month and Adams said, "Barely in the black one month, a little in the red another month. ... It's a risk I'm willing to take, and really I couldn't have it any other way." He has spent no money on advertising and was happy when bloggers, reviewers like former game journalist Kieron Gillen from PC Gamer and Games for Windows, wrote about his game. In 2015, Bay 12 Games set up a Patreon account to help fund Dwarf Fortress.
As of 2016 February, the latest update was version 0.42.06, years in development despite being in alpha version. Adams says he has been able to maintain focus by shifting his attention to different aspects of the game, given its numerous varied features. While regular game development aims to perfect their work for release, he considers this a drawback since he continues exploring and learning while adding new features. Wired and Rock, Paper, Shotgun noted its sometimes funny but unintentional bug fixes, with PC Gamer saying it makes an entertaining RSS feed to subscribe to. Adams has two favorite bugs. One is about a farmer dwarf planting their own bed. The other involves a dwarven executioner, with broken arms, unable to use his hammer, delivering punishments by biting his victims and tearing off their limbs, keeping one in his mouth for years.
Tarn Adams considers Dwarf Fortress his life's work, and has stated in 2011 that he does not expect version 1.0 to be released for at least another twenty years, and even after that, he would still continue to update it. Adams calls his game an open-ended "story generator". The game's code base is proprietary, and Adams has stated he has no plans to release it into the open source domain, citing the risk of them going into financial trouble. He acknowledged the role of the community in supporting its development and has endorsed third-party tools, visualizers and interface code. He explained he would consider releasing its source if he could not maintain it anymore, seeing different game developers taking it up. He says that he does not mind any modifications as long as he is not put into risk.
Adams describes version 1.0 having an Adventure mode that would be a regular role-playing game, with changing plots and ordering subordinates to perform various tasks. Fortress mode would have a closer relationship with the outside generated world through war, trade and diplomacy. The world being bigger; he envisions the game to have many more features like magic, a tutorial, and a better interface. According to him, a tutorial is a burden because of the additional need of updating it. He said of version 1.0, "sitting down with a fresh DF world would be like sitting down to read a middling fantasy author you haven't read before, but with all the extras that being a video game provides, including the ability to write your own sequels." Modern in-game technologies and 3D graphics were fan requests Adams said he would never implement, yet showing ambivalence about the latter if the task was easy enough.
January 29, 2020 saw the last major release prior to the premium edition, partially adding villains and their plots, planned to be completed after the premium release.
Premium version (2020–Present)
In March of 2019, indie game studio Kitfox Games announced that they would be helping Bay 12 create a version of Dwarf Fortress for release on Steam and Itch.io with graphics, additional music, and a completely reworked UI. A sudden family health crisis, combined with the rising costs of healthcare and the instability of a Patreon-based income, made the Adamses reconsider their previous stances about remaining aloof from the games industry. Tanya X. Short, the co-founder of Kitfox, was a personal friend of Tarn and offered to help with the project. The classic version of the game will remain available for free and receive all of the same game play updates as the Premium version. Work on this update began in early 2020. On November 1, 2022, Kitfox announced that the Steam version would be released on December 6 of that same year.