Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

An anonymous reader writes Dwarf Fortress, the epic, ASCII text-based, roguelike citybuilding game, just released its biggest update in years. The game is notable for its incredible depth, and the new release only extends it. Here are the release notes — they won't make much sense if you don't play the game, but they'll give you a sense of how massively complex Dwarf Fortress is. It's also worth noting the a team of modders has recently released a new version Stonesense utility, which renders the game in 3-D from an isometric point of view. "[T]he utility relies on DFHack, a community-made library that reads the game's memory and can be parsed, thus allowing for additional utilities to render things while bypassing the initial ASCII output." If you're unfamiliar with the game, here's an illustrated depiction of an amazing story generated by the game.

Where else can you build a fake submarine cave filled with cages to trap mermaids and merfolks and eventually partially drain the cave to allow your dwarves to go pick up the baby mermaids to be sold as meat and baby-mermaid-bone trinkets.

If you even have a passing interest in playing dwarf fortress... make sure you get PeridexisErrant's DF Starter Pack. In this pack you'll find useful tools such as "Dwarf Therapist", which make the game so much easier to play. Other addons also give amazing atmospheric music and sound effects! (Currently a lot of this only works the the previous version, but that will be fixed soon)

Also, if you've never played DF, it is probably best to either wait a couple months until the worst bugs are fixed and the wiki etc are updated, or just grab the previous versions. This new version will still be quite rough at the edges and some of the info on the wiki, youtube etc will be outdated.

I'm pretty excited about the new release, I've been playing for a couple years and I hope that especially the AI behaviour has been improved although it is not listed in the change log as such...

I really like DF and have had quite a few memorable moments in both fortress and adventure mode. But the interface is outrageous. Using three (at least) different sets of keys to scroll through a selection, depending on context, is madenning, especially when starting out. I often wonder how Tarn can have so much talent to create a game like DF while at the same time failing so gloriously at implementing a decent interface.

"It's an incredibly exciting project that could end up in the same rarefied sphere as Dwarf Fortress - a complex simulation of ASCII worlds that have history, detail and depth. The current release is capable of generating a world and the basic history of the cultures that have evolved upon it, but there isn't a huge amount to do beyond the procedural riddle puzzles contained in scattered ziggurats. A typical early feature of many games, eh?

As for the rest, it's all detailed in the development plan and a new announcement suggests it'll be on the road to completion sooner than expected. Developer Mark Johnson will be working on the game full-time for a year from September. And there isn't a Kickstarter in sight."

Last time I heard about it, it basically only used one thread and the UI code was a mess that also used the same thread. This all meant that it starts to seriously slow down when fortress grows even on relatively strong hardware.

Yes, I know the objects in the game react to each others in many subtle ways which causes lots of syncing challenges but really.

Yes... From what I gather, the developer ("Toady") is an autodidact that doesn't use any sort of version control and no multithreading. Although the simulation might be difficult to run in multiple threads, I think the path finding is one of the biggest CPU drains and that should be embarrassingly parallel. Also, he is really giving the community a tough time by having a monolithic game engine + GUI instead of some sort of modular system, which would allow the many programming-savvy fans to build tools much more easily (tools such as dfhack and therapist now use direct memory hacking, which is annoying (therapist needs root access, dfhack encapsulates df itself) but also unstable.

For one unit, sure. The CPU problem in DF (as far as I understand) is that there are 200 dwarves, 100 goblins and 400 kittens all trying to pathfind at the same time. Unless I miss something, each of these units van pathfind in parallel since they don't "know" about the other's paths.

embarrassingly parallel has a specific meaning, namely that the task is composed of a (relatively large) number of sub tasks that can each be performed completely independent of each of the other sub tasks. So, any sane attempt to pathfind (say an A* search) is not embarrassingly parallel since whether a path can be pruned depends on the best paths found so far in other branches, and there is an optimal ordering for which branches to descend into first which is also dependent on what's happening in the othe

Sure but with a little cleverness I think the problem can be simplified since the same paths are going to be used a lot with significant overlap and repetition. It could even lead to more realistic behaviour. Real creatures don't do mathametical best path finding from a real map, they choose from amongst routes they know weighted by some hueristics, then if one of them fails, try to adjust. Its potentially a much simpler problem. It would mean less efficiency in situations where a prefered path ends up not

There are research papers on the subject of finding the best path, it isn't exactly simple.Take a look at what Microsoft has done for Bing Maps for example:http://research.microsoft.com/... [microsoft.com]

You are missing my point though, finding the best path is not actually required. Not only that but the game itself has mechanics by which paths are made and points that might need to be pathed to are created. Paths could be pregenerated as the map is dug out and items built within it, individuals could pick from pre-defined paths and then follow them.

A few examples of where this is actually better....

Currently lets say a dwarf plans to go down hallways A B and C to D. But he could go A B E D instead. Now as

I expect that the logic required to reasonably split up the pathfinding is going to easily reverse any potential savings. There is a completely disregard for the fact that in order to split the processing up, one must take the time to organize the processes such that they can be split up.

It's a little bit like rocket science. How each additional pound of fuel provides so much thrust, but the additional weight but also be accounted for. 'parallel the pathfinding' is adding fuel without accounting for the

This is actually a pretty simple task-oriented problem. Have a queue of objects that need to path to a new location. Each object is a self contained task, referencing outside information, but modifying information only inside the object (therefor needing no locking or contention of threads). For a thread in a pool of worker threads, pull the next object off the queue, find the path, store the path inside the object, place it in the queue of done objects. Loop.
Not excessively difficult.

No, perhaps 2 threads to split the load - or as many as would be efficient for the purpose. Even a single thread for pathfinding in general would be an improvement upon a single thread for -everything- as it currently is.

“Traditional single-processor pathnding strategies, such as A* and its derivatives, have been long praised for their exibility. We implemented several parallel versions of such algorithms to analyze their intrinsic behavior, concluding that they have a large overhead, yield far from optimal paths, do not scale up to many cores or are cache unfriendly. In this article, we propose Parallel Ripple Search, a novel parallel pathnding algorithm that largely solves these limitations.”
http://graphics. [tudelft.nl]

When taken as a single entity, sure, but a thousand objects queued processed in parallel to each other, will greatly outperform a thousand entities queued in serial, even given overheads of thread contention, cache thrashing, etc. Set your granularity high enough and the cost overheads cease to matter. Statistically or otherwise.

Actually, simulations are basically made for multithreading. DF performance should scale up linearly with the number of threads, as long as it doesn't need huge amounts of conflict resolution in the simulation....can be parallelized easily if old_state and input are constant

See where you go too far with assumptions? Sure, you can parallelize it easily like that - when your actors are nicely synchronous and independent. For a quick example: there are two entities that are bound to end up in the same cell at next time step, how do you resolve that step in your easily parallel fashion?

When dealing with discrete simulation, you're usually dealing with a stream of events, not independent actors. You can separate them into independent domains that can be simulated at once (and then

Actually, simulations are basically made for multithreading. DF performance should scale up linearly with the number of threads, as long as it doesn't need huge amounts of conflict resolution in the simulation....can be parallelized easily if old_state and input are constant

See where you go too far with assumptions? Sure, you can parallelize it easily like that - when your actors are nicely synchronous and independent. For a quick example: there are two entities that are bound to end up in the same cell at next time step, how do you resolve that step in your easily parallel fashion?

In dwarf fortress? They probably collide resulting in an explosion of random organs with a chance to fuse into a horrible abomination with the specific abomination depending on the entities that collided and the proximity of the collision to an open helmouth.

Why wouldn't it be an explanation? 'Excuse', is a slippery term because it tends to have moral connotations that can lead one into the rather subjective territory of arguing about what somebody does or doesn't have a duty to learn and why; but an 'explanation' is just an account of why something is as it is.

It might be that 'He's an autodidact' isn't the correct explanation in this case; but 'He picked it up on his own, because of his interest, which is why the result shows an idiosyncratic emphasis on w

It still is, because Toady still doesn't know how to multi-thread. As an example, generating a big world with 1000 years takes forever. By 500 years, the game begins to hang (because the UI only updates after every year has been simulated) for several seconds at a time. I left it around three hours and it still wasn't done. And following the logic, I couldn't even see the year it was on. I would have had to wait until a year had been simulated to have the UI update. I just killed the process.

I think that, had DF been programmed in a language that was more maths friendly, and less "write it like algebra on paper and let the compiler do magic" C then it might drastically increase the code efficiency. But the times he's been offered help with someone else writing a UI, he grasps that the UI needs a stable game API to make calls to, or a means to pass messages, and the game is not in that state nor is he going to re-do the UI each major version to

The thing that always amazes me is while simple games like chess, weiqi [wikipedia.org], checkers, etc., all seem to have unlimited playability and intricacy, computer games generally don't.

Taking Weiqi as an example, literally you can spend 40 years of your life playing, and there will always be room to get better and add difficulty, and always more interesting. Compare that to the latest FPS you beat and abandon after a few days/weeks/months.

I really have to wonder if 100 years from now, some games like Nethack and DF w

The type of person who has waited for months to come up with a slightly on-topic post to show off that he uses the term "weiqi" and thoughtfully provide a link to the Wikipedia article on "Go" to show how smart he is.

But why use it on an English language web site. You even knew lots of people would never have heard that name even though they've heard of "go" and hence linked the wikipedia page - note you felt no need to link chess or checkers.

There's actually a number of names for the game in the different countries that play it. Igo is the japanese name, baduk is the korean name, etc.

Depending on who taught you and where you learn it, you may use one of the other (with different variations on the rules of the game depending on region it originates from). Additionally, some of us prefer the any name that is not "go" for the simple fact that it is much more distinctive. (Try googling weiqi and then try googling go and see which one has more ir

In terms of replay value and intricacy, 'computer games' are arguably several largely different things that all just happen to be amenable to running on computers and being sold in software boxes:

The trivial analog to simple games is (of course) those games implemented on a computer. Being the trivial case, this is mostly a wiseass cop-out; but it's worth mentioning because computer implementations have made a substantial difference in what games are considered 'solved' and how strongly. Some games are so simple that children can solve them by hand (tic-tac-toe, most notably, since people do actually play it; but it's simple enough that most players eventually solve it and lose interest); but solving checkers, or the partial solutions for chess and go, are exercises that require ingenuity and cunning; but a lot of brute force.

The slightly less trivial analog is extensions of classic games that would be impossible or impractical to fabricate as board games. Mostly 2d games adapted to 3 or more dimensions(or 3d puzzles, like Rubik's cubes adapted to 4 or more [gravitation3d.com] dimensions). These usually have some improvised implementation that doesn't need a computer (multiple chess/checkers boards with rules for pieces moving between them in the extra dimension, that sort of thing); but computers make them easier and less knock-over-and-abandon-in-frustration prone.

Then there are computer games that are really, in terms of playability and intricacy, basically team sports, rather than anything analogous to deterministic games of perfect information like chess, checkers, go, etc. Something like Counter-Strike is replayable much like soccer or football are (ignoring the fact that operating systems and Glide/OpenGL/DirectX tend to break backward compatibility more often than 'grass' does, so a single, specific, implementation may not remain playable in the long term without porting, though games with robust port support are in decent shape). There is strategy and teamwork; along with individual expertise in implementation, so most of the 'churn' in these games is either abandonment of older engines in favor of nicer ones, or iterative tweaking of weapons and balance. Specific 'games' in the sense of 'Program X sold under name Y' tend to come and go; but the overall dynamic is similar to regional variations, changes in equipment, occasional rule tweaks, and the like in traditional sports, except that traditional sports tend to treat variants as all being flavors of A Sport, while the trademark and SKU-focused game market tends to treat each variant as a separate game.

Then there are the 'games' that really shade into choose-your-own-adventure books with pictures, or movies with reflex tests: I enjoy these myself, and they are a perfectly valid form of entertainment; but they are about as dissimilar from classic 'games' as something called a 'game' can be. Single-player FPSes, relatively 'closed world' RPGs, that sort of thing. Hardly identical to a film(in all but the worst excesses of the early days of "Wow, we have a whole CD to fill with shitty, overcompressed FMV!" era), the tests of reflexes, RPG party management, or whatever are genuinely part of the experience; but they aren't terribly replayable because, sooner or later, you run up against the fact that there is only so much manually-generated, written, and voice-acted plot to uncover. Likely good for more than one playthrough, unless brutally linear; but each 'branch' costs so much dev and artist time that there aren't going to be too many of them.

There may also be a category for the games (the Civilization series being the most prominent example that comes to mind) that could have been implemented as board games; but would be near insanity if you had to keep track of teeny plastic wheat counters for every single square. If these are single player, they often wear out their welcome sooner or later because the AI opponents just aren'

I used to play Crossfire on DEC Ultrix boxes 20 years ago.
http://crossfire.real-time.com... [real-time.com]
Not as in depth as Dwarf Fortress seems to be, but a good hack and slash game, that is still being worked on.

Minecraft is pretty much a ripoff of Dwarf Fortress, the creator has openly admitted this. But he made it colorful and dumbed it down a lot, so naturally he's rich now. Dwarf Fortress regularly gets negative coverage from game reviewers who offer such sparkling insights as "What the hell is this? It looks like a dot-matrix printer exploded on my screen." So just play Minecraft to get the same experience.

There are above-ground collapse messages when cutting down huge multiple z-level trees, so I think it is actually feasible to have that happen. Of course, things like "the entirely of your region down to Hell being able to be supported by a single support attached to a single lever" is still a thing, but more for Fun purposes.

Gnomoria [gnomoria.com] is also inspired by DF, and arguably is much closer to the spirit of DF than Minecraft is, and the graphics and interface are (IMHO) far superior to OotB Dwarf Fortress.

If you enjoyed Minecraft but don't yet feel ready for the mind-bogglingly insane brilliance of DF then Gnomoria is a good stepping stone. I became aware of it during Aavak's (also a DF player) Let's Play and picked it up soon after, whilst it doesn't have anywhere near the depth of DF (traps/mechanisms are much more limited for exam

I wouldn't say ripoff so much as inspired by. Minecraft isn't trying to do any of the things DF is trying to do beyond procedurally generated content really. It's much more about the building, ie Legos.

There's a reason the motto of the game is "LOSING IS FUN!"
With a little practice and judicious use of the wiki it's not too hard to get to semi-stable fortress that won't collapse from internal forces (instead it'll be the goblin or elf sieges).

Yeah! I remember the first time I tunneled into a cave system, not realizing that some forgotten beasts can fly. Well naturally one flies up after a couple of years and starts breathing poison clouds everywhere. All my dwarves are running around and completely freaking out and I just can't stop laughing hysterically watching the devastation. I've never experienced that in a game before...

Then you get a somewhat bigger fortress that won't collapse from external forces (instead it'll be the King demanding materials that don't exist causing every dwarf to be arrested or one careless death causing a tantrum spiral).

It's almost trivial to get a farm going in a good spot. Being able to gather seeds, till the surface, and plant instantly makes the food economy dirt simple.

It doesn't give you a super-powerful fortress that can repel the goblin hoards and megabeasts, but it certainly makes the early game less engaging. I mean, remember when you seriously needed fishermen just so you wouldn't starve before your first harvest?

I still like Exile 3 by Spiderweb software better. It's a super ultra mega classic RPG and its map makes Skyrim look small. I think it was released in 1994 or something but it still runs on Windows 7 32 bit today.

I really had high hopes for Dwarf Fortress; I kind of like complex strategy games with steep learning curves, and I could even get used to the wacky interface. I remember the precise moment I just decided to stop playing it, though; when dwarves started complaining about their clothing being ragged. You have to have an entire economy. To make clothes. For your dwarves.

And this isn't some accident, it's by design. For me, they've gone so far into the micromanagement that the game just isn't fun at all,

You can also compensate for unhappy effects by adding happiness elsewhere. Your dwarfs will be pleased to live in rags and shovel refuse all day as long as they can admire the gold-jewel-encrusted masterwork statue on their way to the garbage pits. There are only two things a dwarf cannot live without: industry and drink.