Tarn Adams

is an American computer game programmer, best known as the co-creator of the computer game Dwarf Fortress in 2002 along with his older brother, Zach.

Hosted AMAs

Highest Rated Comments

TarnAdams388 karma

  • He he he, that's right. First of all, it hurt initially. Snorting things is not fun. Then that immediately went away and it was an ever-amplifying rush until I couldn't stop talking. But I'd fixate on things and also start crying, and back and forth. The people I was with took me out to a restaurant after that, just to cause trouble I think, but I managed to keep it together... I think. Then I couldn't sleep for a few days and the urge to keep swallowing (it drips down your throat). I was like "hey, that was fun!", but then I was like "hmm, that's probably what an addict thinks," and never thought about doing it again.

  • Yeah, not quite as much as when I started, but I still play almost every day... I only remember a few flamenco songs though, and I can't play them well. I mostly just improvise stuff. That was what I set out to do when I started, and now I can do it somewhat, but I don't think I'm growing much now that I'm not learning songs and new styles.

  • I go to the zoo, watch bad TV shows, the guitar... writing other computer games, he he he. I like to go hiking, but I don't get out much.

TarnAdams315 karma

Zach says, "No! No! Do it now!"

edit: Thanks, by the way, he he he.

TarnAdams297 karma

Linear algebra is always important, and simple things like knowing how the dot product relates to angles can speed up bits and pieces here and there. n-dimensional flat chains in Banach spaces have not come up at all, unfortunately. I might have approximated the solution to a differential equation once, but that was all brute force, and for a different game. Overall, doing the degree probably helped with my visualization and made it easier for me to manage the project, but the specifics don't come up that much.

For the topography it's not that much at all -- if you do something really basic like midpoint displacement, you can probably get a biome map in less than 50 lines. Adding rivers and other effects like rain shadows can put you up another 1000 or so depending on what you do. But if map generation includes stuff like the histories going forward and all that, then all the creature and civilization code comes up, and we're probably up around 30k for the parts used, as a very very rough estimate.

TarnAdams271 karma

I'm glad you're enjoying the game!

It's hard to pick one favorite, but the games that influenced me in making Dwarf Fortress are probably the older ones that I'd consider my favorites in some sense (even if they aren't necessarily as playable now). Starflight 1 (especially the randomized lifeforms which not many other people seem to care about, he he he, but it opened our eyes regarding procedural generation beyond what roguelikes did with maps), Ultima 3-7, Seven Cities of Gold for the expedition stuff, Hack/Rogue and the other roguelikes... many others. In more recent decades, things that spring to mind as games I enjoyed, not related to DF, are Demon/Dark Souls, Shadow of the Colossus, Red Faction: Guerilla for exploding buildings... mostly stuff on the consoles like that, oddly enough, though perhaps I'm just having a brain freeze. I was never great at choosing favorites.

I don't get a chance to play DF for long periods for fun. Some bug or improvement always comes up, and it's back to coding. Sort of sad in a way, since our main impetus for getting into game development was to write the games we wanted to play, but it's okay!

TarnAdams241 karma

  • I started on BASIC and then moved over to C with a bit of C++ (not in any proper standardized way), but I don't really have enough experience with other languages to have a favorite. Solving problems is fun, until I get really stuck... I've been with the same language so long I can't really say I chose it in any informed way. It was just what I was used to.

  • Yeah, all the time! I even found a comment once that said "//what the hell is this doing here?" that I didn't even remember writing. It's funny when I leave little tips for myself and then come upon them years later. I think my current code is still closet-worthy, but the older stuff is even worse. I started DF with a lot of programming experience (I started BASIC when I was like 6 or something), but not any official experience -- I have a feeling that somebody who has been working in a proper job environment for six months would learn a zillion useful things that I'll never know.

  • Reputation is becoming more important, but we're not yet at the point where NPCs are thinking about NPCs that deeply. Once I've got some non-player adventurers and mercenaries running around, things more like that could start happen naturally, but we'll see.

TarnAdams224 karma

Bravemule is a triumph. I watched all the videos, although I haven't had time to read all the entries.

TarnAdams199 karma

Yeah, I'd never defend the UI, and it hasn't been the focus. It's hard to look ahead that far though. I definitely don't want to hamstring myself with graphics (see Armok 1), and I think the utilities like StoneSense have made a lot of progress there -- if you can't stand the text-based graphics of DF, I'd recommend checking out StoneSense and also the tilesets people have worked on. I'd probably end up doing in-game tutorials sooner than that, since not everybody will immediately go off to the wiki or the Youtube tutorials or the book, and they'd probably be easier to maintain than graphics.

Then there are the menus... military, labor selection and that sort of thing, which are just bad. I've done random small updates there, and some steps backward. People have made me aware of all sorts of problems, and there are lots of suggestions for improvement. I've been adopting certain of them piecemeal, but in order for DF to be a completed game, there'd need to be a significant, cohesive and well-thought-out overhaul. I haven't scheduled it though, or thought about it very deeply. I feel like I'm still working on basic features, and whenever I gut a portion of the interface, I'm glad I didn't spend much time on that previous incarnation of it. It's the sort of thing that can go on forever though, so I'd always been thinking that when I get through my list of version 1.0 features, I'd also have taken a real stab at fixing the presentation and usability. It's hard to say. The process changes all the time.

TarnAdams163 karma

Hi! I'm glad you were able to work out your issues and keep your neighborhood safe!

  • There are enough exciting things coming up that the few dry patches are very easy to take, and they are never so long that I despair. Working through annoying bugs and being tenacious about it is part of programming... it's almost fun now. I do read through the development pages sometimes to get my head screwed back on properly. Imagining the completed game in that way is very motivating.

  • Yeah, a few days sometimes, unless I'm sick (swine flu, for example. It sucked). We went to the high desert in Oregon for a few days, which was fun, and we were off in New York for a week when we got stuck in the not-as-bad hurricane before Sandy (Irene, I think?). So there will be stuff. I used to clump my weekend days together and work on side projects at the end of the month, but that stopped a while ago.

  • Nope. Zach says, "where would we be walking to?" He he he. I can't think of anything else I'd rather do.

  • Probably adding the Z coordinate? That was a lengthy mess, and I couldn't compile the game for a long time to test things out. There's the larger overall issues of accessibility and lag and so on as well.

TarnAdams159 karma

We filled those black-and-white-mottled-cover notebooks with drawings of Starflight lifeforms for hours and hours growing up. Forgotten Beasts in DF were inspired by SF1.

TarnAdams151 karma

Hi! Was that one of the games there that got a short promo video? I remember watching something like that.

I don't know the names of anything programming-wise. The dwarves currently just have a branching checklist of things they look through, probably the silliest way you can do it. The next release is a little better, so that they can reverse their initial decision if they find something better instead of being sucked away by the first thing that catches them, which should allow long-awaited features like job priorities and so on, but I have a feeling I'm still 20 years behind the action.

They prioritize survival threats because they check them first -- it's pretty simple. They are allowed to cancel jobs when they hit certain hunger thresholds and so on, but they'll stick out a job a bit if they think they can. It's still all sequential checks though.

Their preferences and site history play a role, but not their thought history. Their thought history has an effect on their happiness, but that's it. That entire system is pretty well toasted for next time though. They now have emotional states created by these events that have more directions aside from happy and sad.

I'm no good with picking favorites... hopefully that was the question you cared least about, he he he.