12 ms·
How Dwarf Fortress is built
- Gigachad 5y agoAwesome interview. DF is certainly a fascinating project. But I always felt like it is held back by it’s poor accessibility. A newer game Rimworld takes most of the core ideas from dwarf fortress but packages it up in a nice gui with help text so you can learn to play in the game rather than with a wiki.
- capableweb 5y agoHelp is coming! Look how pretty it'll be: https://store.steampowered.com/app/975370/Dwarf_Fortress/ https://store.steampowered.com/app/975370/Dwarf_Fortress/
- AQuantized 5y agoTo be fair this is basically just a texture pack, which is already something you can use. The real problem is the highly consistent UI design, differing in things as simple as if you have to use a keyboard or mouse to navigate a list. Toady is understandably disinterested in putting time into that element of the game, and I think he had a bad experience the last time he 'outsourced' it.
- paavohtl 5y agoIt's not just a texture pack in any way - just read the dev blog. They are also overhauling all of the UIs, adding mouse support to everything and so on.
- genocidicbunny 5y agoLuckily DF is getting a ux overhaul for the upcoming Steam release.
- libraryatnight 5y agoI'm super hype on this. I've managed to play DF a bit successfully thanks to Dwarf Therapist, but I'm really excited to come back and play again with the UX overhaul.
- NikolaeVarius 5y agoRimworld is NOWHERE near the amazingness of Dwarf Fortress.
- eru 5y agoRimworld is nowhere near as deep as dwarf fortress, but it's a game many more people actually manage to play. They are both interesting.
- OnlineGladiator 5y agoAs someone who has played neither game, can you please explain why?
- beaconstudios 5y agoBoth are driven by systems so they're both effectively simulations, but dwarf fortress is much, much more in depth. It's basically a "real life" simulator but set in a fantasy universe, where you control a colony of dwarves. The interplay between systems is unheard of in any other game*, the closest you get is some roguelikes. *except maybe space station 13
- ravi-delia 5y agoDF probably still comes out ahead, but SS13 exposes way more systems to the player. If you get a good group there is NO comparison.
- ajvs 5y agoAnd similarly to DF it's also getting a more accessible Steam version (Space Station 14 as well as Unitystation) to make it easier to start playing it. In my play experience SS13 wins out in terms of funny stories and variety, mainly because the speed of development is so much faster (especially on big servers like tg), it being multiplayer and there existing many spin-off forks from the usual space station gameplay.
- detaro 5y agoDwarf Fortress goes into depth to a truly magnificent, ridiculous degree. (I guess also in the non-ridiculous degree of having a 3D world instead of 2D ;)) It simulates a lot more, and thus more is possible in game and more weird and wonderful chain reactions can happen.
- floatingatoll 5y agoAccompanying podcast episode, for audio-types: https://stackoverflow.blog/2021/09/21/podcast-377-you-dont-need-a-math-phd-to-play-dwarf-fortress-just-to-code-it/ https://stackoverflow.blog/2021/09/21/podcast-377-you-dont-n...
- easton 5y agoThe first time this has happened, but (2021) should be in the title.
- Gigachad 5y agoI feel like we can let it pass for a less than 2 day old article.
- genocidicbunny 5y agoIt's actually a repost of the same article from earlier in the year as the editors note points out.
- LilBytes 5y agoEarlier in 2021?
- nnadams 5y agoYes the editor's note at the top says: "we are re-publishing our top ten posts for the year. This is our number one post of 2021!" Original discussion: https://news.ycombinator.com/item?id=27996684 https://news.ycombinator.com/item?id=27996684
- deleted 5y ago[deleted]
- umvi 5y agoA great example of not getting bogged down in analysis paralysis. Adams chose and continues to choose "sub-optimal" technologies for developing and running DF. Heck, last I checked he is still manually doing version control with folders and flash drives. As he states in the article, he is infinitely more interested in the design side than the technology side. The takeaway is that he is motivated to make his vision a reality and ships regardless of the tech choices. An imperfect project that ships is better than a perfect one that doesn't.
- krychu 5y agoinfinitely better*
- lfowles 5y agoOver the entire development of DF an afternoon or two to try out git or similar would have been a drop in the bucket. There's a lot of (useful!) ground between using flash drives and trying out a hot new version control workflow every week.
- p1necone 5y agoAbsolutely agree. The single master branch, commit when you feel like it workflow is very simple, and still miles better than just copying files in the file system.
- korijn 5y agoBut, who cares? If this worked for the developer, what's wrong?
- mey 5y agoPrevents collaboration with others, ability to rollback to a specific release to test a bug, partially developing multiple ideas. All of that is possible manually, but it is doing version control by hand. There are plenty of great tools out there to simplify that process. And if you start automating your manual custom process, you just end up at your own version control system that is something additional you have to mantain.
- yeetaccount4 5y agoLet’s see the source! Tarn teases it, but this game has a dedicated community already built in that could do wonders. A crowd fund to buy him out and FOSSify the code might work. Weird fact: DF doesn’t have version control, except for ‘mkdir’ and ‘cp’.
- james-skemp 5y agoI tried DF once and decided it wasn't for me, but based upon this article and the research I had done years ago, DF is his baby. I don't think he'd just sell it.
- password4321 5y agoThe source code to another Bay 12 Games game was partially released in 2004: https://www.bay12games.com/ww1medic https://www.bay12games.com/ww1medic
- bregma 5y agoLiberal Crime Squad was also released and has been floating around in various forks for a number of years.
- AndyKelley 5y agoI'm really looking forward to the steam version. When I tried the game back in college (admittedly this was 12 years ago), my conclusion was that the beauty and complexity of the simulation engine was effectively inaccessible from the user interface. Not the fact that it was text based, but that it was limited in its ability to expose the state of the system, and provide an interface to perform the mutations of the state that are an intended part of the game experience. Presumably, these are the main bits of polish that are going into the steam version. P.S. I say this as an [enthusiastic Nethack player](https://alt.org/nethack/player-stats.php?player=superjoe https://alt.org/nethack/player-stats.php?player=superjoe) :-)
- entangledqubit 5y agoWhat state are you looking to access/mutate? To me, a large part of the fun from the DF experience came from only being able to twiddle the high level knobs and watch the shenanigans emerge. I also got the impression that low level interventions may not be usefully realizable in the codebase.
- chongli 5y agoTo get the full benefit of Dwarf Fortress I found it was necessary to use 3rd party tools. One of the big ones is dwarf therapist [1]. This tool makes it far easier to toggle job preferences for all your dwarves according to their abilities. It presents a big table of your roster and lets you see all their skill levels and job assignments at a glance. It also has convenient features for grouping dwarves based on criteria such as migration wave which lets you tackle the mustering in one shot whenever migrants show up. [1] https://github.com/Dwarf-Therapist/Dwarf-Therapist https://github.com/Dwarf-Therapist/Dwarf-Therapist
- AndyKelley 5y agoThis is a third party mod. You shouldn't need a third party mod to get the main gameplay experience. Note that Dwarf Fortress is not open source.
- 5y ago
- SomeHacker44 5y agoLOL. I saw the title, saw that it was on a developer blog... and took it literally. I wanted to know the build tools, the testing tools, the whole DevOps of DF. But, no, the title is completely misleading. Oh well! Enjoyed the too brief article anyway.
- npteljes 5y agoI had the same expectations, and the article was weirdly light on technical details. Aside from the fact that there's nothing much going on tooling-wise.
- dopu 5y agoIt should be noted that Tarn would probably agree with a lot of the criticisms leveled here regarding the UI. The focus so far has been on getting the systems working (and there are many more to go and be further fleshed out: magic, the organic development of economies in the game, world history, warfare, etc). The Adams brothers essentially want to construct a general fantasy simulator capable of constructing rich worlds all on its own. Wouldn’t make much sense to pour tons of energy into making and refining the UI over and over again when the game isn’t even halfway done yet.
- tluyben2 5y agoIf that is the goal, they should make it trivial to make UIs for it by others. I know there are many UIs for it, is it easy to make those or is it reverse engineering and if the latter, why? I don't know; I personally don't mind the UI.
- saeranv 5y agoAre there any articles/posts/resources that delve into technical overview of how DF achieves it's simulation complexity? For example, something like: how does the game constrain it's randomness or sampling process for new procedural generation, how is this woven into the story development? I realise this is somewhat of a vague question. I've never played DF (or any video/pc games) but I find descriptions of it's development fascinating, and would like to learn more about how the creator actually designed and evolved this game.
- tempest_ 5y agoYou may find this NoClip interview interesting, though it doesn't delve too much into technical things and is more high level/ game design focused. https://www.youtube.com/watch?v=VAhHkJQ3KgY https://www.youtube.com/watch?v=VAhHkJQ3KgY
- saeranv 5y agoStill interesting to watch, thank you.
- deepinthewoods 5y agohttps://www.gamasutra.com/view/feature/3549/interview_the_making_of_dwarf_.php?print=1 https://www.gamasutra.com/view/feature/3549/interview_the_ma... https://www.gamedeveloper.com/design/q-a-dissecting-the-development-of-i-dwarf-fortress-i-with-creator-tarn-adams https://www.gamedeveloper.com/design/q-a-dissecting-the-deve...
- saeranv 5y agoThis is exactly what I was looking for, thanks!
- Shadonototra 5y agoOOP was a mistake, it's nice to hear from such a large project Hopefully more people will stop that trend of OOP everything, and learn a little more about what we really want to do with our data
- kamac 5y agoThe point in the article was to prefer composition over inheritance, which is sort of like using OOP “the right way”. It didn’t discourage OOP as a whole, nor do I think it should - making a game without objects would be a nightmare.
- wheelerof4te 5y agoPlenty of games were made using plain C and even Assembler. What is really needed are not objects in a OOP sense, but a way to make a mutable, composite data type. Else you would have to pass tens of arguments to even simplest of functions.
- Toutouxc 5y ago"Making the item system polymorphic was ultimately a mistake" is so far from "OOP was a mistake" that it's not even funny.
- wolfgang42 5y agoPreviously on HN (5 months ago, 388 comments): https://news.ycombinator.com/item?id=27996684 https://news.ycombinator.com/item?id=27996684
- v-erne 5y agoBit off topic, but whats going on with there being pronouns next to names in the video chat recording ? Is this some new standard ? Should I start adding he/him just in case I offend someone by not being explicite with something that is rather obvious in 99% of cases?
- jackbrookes 5y agoIt's not about offending someone, it's about allowing people from marginalised groups feel comfortable.
- v-erne 5y ago
- KronisLV 5y agoSome people's preferred pronouns might not necessarily match what others might pick to refer to them with on their own. For example, in my social circle a few AFAB friends prefer the "he/him" pronouns which might not be immediately obvious to others. Normalizing putting our pronouns next to our names seems like a good way to approach this, without needing to explicitly ask others, or make them correct you, which seems nice, as it is pretty much effortless to do. I wouldn't call it weird, just something that takes getting a bit of used to, but addresses shortcomings in the language. Much like how the Mrs. and Ms. thing is not obvious by looking at someone and therefore needs to be pointed out.
- v-erne 5y agoFor the few people out of thousands that this really matters - sure, they can use this to help address them property. But I think what we seeing here goes a bit too far. What's that saying ... You can't see the forest for the trees - yeah that's the one. Dr Clifton is using (he/him) when he has no reason for doing this. Of course You can try to explain this as solidarity but for me it threads dangerously close to some kind of strange conformity to woke culture (I still don't understand why this is the minority that was granted this kind of political power - there are lots of other minorities that could also use this kind of recognition).
- ajvs 5y agoDF has always been an interesting game to me, but I find it such a shame that such a deeply complex game remains closed-source. I've fortunately since found a number of open-source games that scratch the same itch - Cataclysm: Dark Days Ahead, Space Station 13, Space Station 14, KeeperRL. I hope the dev one day does free his code to be examined and fully modified.
- chayleaf 5y agoHis will says the code shall be open-sourced, unless he gets murdered
- jokoon 5y agoI wish I had the patience to play such game. Factorio can already entertain me for hundreds of hours, but even factorio can become a bit boring once you built a large base. I'm really looking forward the UI revamp that will be sold on steam.
- wheelerof4te 5y agoI wonder how Dwarf Fortress would look like if it were programmed in Haskell.
- capableweb 5y agoIt'd probably look something like this:
- wheelerof4te 5y agoSuch elegance! And with not a single byte of state, either!
- mapmap 5y agoWhere could one learn more about the Entity Component system as described in the article? Is it as simple as an object contains an array of components?
- kovek 5y agoECS or "Entity, Component, System". You have Entities (like a soccer ball or a player, or any object in the game) which are objects, that contain a list of Components (like phenomenons on the entity, like physics, sound tracks, health bar, etc) and a game loop that calls out a list of Systems (like Physics System, Sound System, HealthBar System), which are "static" objects that hold a reference to all Components and which update them to move the game forward (eg. Physics systems moves position down by vt + a/2 t^2)