Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1] 2

Author Topic: Long-term playability  (Read 2155 times)

cparax

  • Bay Watcher
    • View Profile
Long-term playability
« on: March 31, 2009, 12:11:54 am »

With the recent fairly massive improvements in processor-friendliness and the constantly rising power of processors (and various burgeoning alternatives to hyperthreading for best performance, which evidently Can't Happen) it seems concievable (or even likely) that at some point not too far away, massive fortresses with large populations won't put undue strain on mid-level CPUs. This presents a serious problem, though: the game seems to be made, paced, and tweaked for optimal performance by both the program and dwarf society assuming sweet-spot numbers of about 100 dwarves and a 4x4 map (give or take).

I don't know if anyone's already asked this or gone into depth with it (especially Toady, who is the one who actually matters here), but what kind of additions to gameplay would make Dwarf Fortress as it exists now viable for productively managing a top-tier medieval city? For actively managing a modest dark-ages urban polity?

In general, the major tools which would be (and were) needed for either case (largely delegation to subordinates whose job was to follow and exercise orders) are already available to us (Dwarf Manager etc). The big problem is the dwarves themselves; once one surpasses a certain level of activity, it becomes necessary to either segregate the population into various working suburbia or find a way to eliminate the problem of long-distance travel.

1) It should definitely be an option to delineate transit, work, and leisure regions and permissions for dwarves by job, labors, experience, job title, regiment, identity/individual permission, and statistics. A lot of effective fortress design right now involves various kludges around the fundamental difficulty of getting your furnace operators to avoid hanging around with your hunters and woodcutters all damn day.
[Also note that, rather like the economy triggering various inequalities, the ability to regimentalize dwarves' lives like this should potentially have unforeseen and negative side-effects - automatic group rivalries, unhappy thoughts in dwarves suddenly unable to go somewhere they identify with, and possibly the development of a caste or other in-grouping system.]
2) Some kind of system of mass transit should be available, ideally with a choice between individual or social use. While it would be somewhat ridiculous to simply import motor vehicles or some-such into the game, a fairly wide array of individual transit modes existed in the tech period, including mounts (primarily mules/donkeys), whether individually owned (assigned and maintained by the player pre-economy, bought and paid for by the owner post-economy) or set up in relays (a fairly efficient historical way of sharing X horses among Y people involved riding the horse, hitching it, walking, being surpassed by the horse, the next person mounting it at their turn, and so on - slower than simple riding, but easier on the horse and much faster and more comfortable than long walks). And it's probably been discussed and either kiboshed or put off by Toady, but draft animals would be a huge help - and so would the player's ability to build and maintain her/his own wagons.
The other option I can think of is magical - a system of teleporters, requiring paired clear, crystal, or gem glass portals and a power supply for each one based on distance plus the inverse of quality/material level. (Either that or they'd function somewhat like a battery, with the maximum charge determined by material and the recharge rate by quality, and moving by X distance would require Y power per dwarf and hauled item.)

Together, transport (teleportation especially) and zoning permissions would be extremely helpful for the game in all kinds of situations, but most specifically and importantly for the growth of fortresses beyond single, unified areas. They'd also probably put off the urgency of a version discontinuity similar to the 2D/3D switch once the player begins having two-way interaction with the world.
Logged

profit

  • Bay Watcher
  • Finely Crafted Engravings... Or it didn't happen.
    • View Profile
Re: Long-term playability
« Reply #1 on: March 31, 2009, 01:42:58 am »

I think your version of the future is rather rosy from the CPU standpoint.

But.. I don't quite get the segregation..

I mean yes.. I do name my dwarfs craftsman/cbow dwarfs/Mil canidates/etc in dwarf manager, but why would they need segregation?

Currently my dwarves mostly haul stone my miners cut away to the smelting complex to be melted down (I use my "melt that stone "mod).... I only need maybe 6 other dwarves to maintain the fortress of 226 dwarves.  They all sleep on the bottom level of my map..  And they walk up the stairs to their workshops.  Their workshops are on different levels.. but my brewers don't really complain about the 6 extra steps they have to take going up levels from my gem crafters.

Why would I care if they were close to the woodcutters... who work inside the fort too in the tower cap farms.

* further comment.   The mass transit system I am concerned about... I cant quite put my finger on it yet why, but my gut, which is very rarely wrong, says it would be a very annoying addition somehow.     Maybe it is just reacting to the idea of magical teleports in a DWARF fortress... (YUCK! Whats next? Faries and leprechauns in my fort?) I do think that materials hauling will come around if toad finishes up the mine cart thing.

*** Just figured out what it is... The thought of assigning 226 (minus a few for married dwarves) bedrooms again fills me with dred.. now add to that the thought of assigning 226 horses.  No.. Give me a map static transport system that is dwarven and communal.






« Last Edit: March 31, 2009, 01:53:25 am by profit »
Logged
Mods and the best utilities for dwarf fortress
Community Mods and utilities thread.

Silverionmox

  • Bay Watcher
    • View Profile
Re: Long-term playability
« Reply #2 on: March 31, 2009, 01:51:00 am »

There are two reasons why that is important:
- Travel time takes up a comparatively large part of a dwarf's activities. If You can reduce that, there's more left for actual work.
- More space = more pathfinding necessary = FPS hell.

I really think the burrows arc (i.e. segregation) is the thing that would make significant progress with regards to the FPS quandary.
Logged
Dwarf Fortress cured my savescumming.

profit

  • Bay Watcher
  • Finely Crafted Engravings... Or it didn't happen.
    • View Profile
Re: Long-term playability
« Reply #3 on: March 31, 2009, 01:58:12 am »

There are two reasons why that is important:
- Travel time takes up a comparatively large part of a dwarf's activities. If You can reduce that, there's more left for actual work.
- More space = more pathfinding necessary = FPS hell.

I really think the burrows arc (i.e. segregation) is the thing that would make significant progress with regards to the FPS quandary.

So... how will burrows reduce distance traveled again?

 I mean most of my workshops are interconnected... Food needs to eaten, Beer drank, barrels returned, helmet spawn planted again, rocks melted, metals forged, furniture placed...
 I admit I am a lil hazy on burrows but I assume its like a neighborhood... but if that is the case... How is spreading out my dwarves going to decrease their travel distance?

* dont get me wrong I am always looking for 1 more FPS... when your down in the sub 10 range every one counts... but  most of my pathing is woodcutting, item gathering from slain goblins, and stone moving to the furnaces... And I am just failing to get how breaking up where my dwarves live/work really does anything... they already stay where they are supposed to be.  (I mean yes, they share a dining hall but its also on my main shaft so its not like they walk any further)

** what I could see helping lag is if there were bulk delivery's to and from workshops and stockpiles.. but that idea is as old as 2D fortress, and I don't see it coming anytime soon. But all my lag I think is carrying the items to the stockpile next to the workshop, once there the dwarf paths maybe 5 steps to materials and back... and he spends most of his time in the workshop, not pathing around.

*** Will the pathfinding routine bumping against the edge of a burrow cause lag like locked doors do now?
« Last Edit: March 31, 2009, 02:23:03 am by profit »
Logged
Mods and the best utilities for dwarf fortress
Community Mods and utilities thread.

Footkerchief

  • Bay Watcher
  • The Juffo-Wup is strong in this place.
    • View Profile
Re: Long-term playability
« Reply #4 on: March 31, 2009, 03:31:47 am »

For anyone who hasn't read them yet:

BURROWS, TRANSPORTION AND AUTOMATION ARC: Make dwarves live and restrict their movements to sections ("burrows") of the cave to reduce the amount of hauling. This includes many of the haul/pile reqs. Other workshops could be automated, while the work order system could be made more robust to decrease the amount of interface fiddling required to produce glass and soap, for example. Related to Core36, Core56, Core57, ... [snip]

Core36, BURROWS, (Future): You should be able to associate buildings and dwarves to areas called burrows. A dwarf would only work on jobs at its burrow, and could not haul between burrows unless specifically designated to do so. Miners, outside workers, engravers and so on would be exempt while doing those jobs. Burrows could have general goals for the amount of objects, such as bins, that they need to have, and you could order transfers between burrows with the manager. Manager work orders could specify burrows. Once your fortress is large, having such a system to reduce the amount of hauling is very important. Coupled with some of the other ideas, large fortresses should become easier to manage.

Core56, IMPROVED FORTRESS TRANSPORTATION, (Future): Though there's always going to be room for improvement here, some basics are needed the first version. Work animals, carts or wheelbarrows, perhaps some more mechanical options, and the ability to organize stockpiles, workshops and other elements of the fortress so that transport of items can be done with less pain.

Core57, IMPROVED FORTRESS AUTOMATION AND WORKSHOP HANDLING, (Future): As with transportation, the goal itself is pretty open-ended, but certain basics goals need to be reached for v1. Ability to use specific materials more easily, job priorities, better automatic job creation via manager triggers etc., and whatever else is deemed essential.
Logged

The-Moon

  • Bay Watcher
    • View Profile
Re: Long-term playability
« Reply #5 on: March 31, 2009, 03:49:48 am »

Ive always thought that you could set it up so that every dwarf remembers some what the paths he takes. Rather then recalcing paths each time a dwarf needs to get some wheres. The game could store paths which dwarfs already use often.

If people coming from your entrance to your dinning room. Rather then path finding 40 dwarfs from outside the to dinning room. The game just looks for a pre store path, and uses that in stead of recalcing a new path.

The players can help out as well by designating certain paths.
Logged
There is absolutely no time, to be taking time for granted. ~Busta Rhymes

Footkerchief

  • Bay Watcher
  • The Juffo-Wup is strong in this place.
    • View Profile
Re: Long-term playability
« Reply #6 on: March 31, 2009, 03:52:43 am »

Ive always thought that you could set it up so that every dwarf remembers some what the paths he takes. Rather then recalcing paths each time a dwarf needs to get some wheres. The game could store paths which dwarfs already use often.

If people coming from your entrance to your dinning room. Rather then path finding 40 dwarfs from outside the to dinning room. The game just looks for a pre store path, and uses that in stead of recalcing a new path.

The players can help out as well by designating certain paths.

Search for "path caching" and "route caching" to find previous threads discussing this idea.

** what I could see helping lag is if there were bulk delivery's to and from workshops and stockpiles.. but that idea is as old as 2D fortress, and I don't see it coming anytime soon.

There's a good chance that it's coming in the release after the upcoming one, since Toady said he'd be working on popular entries from Eternal Suggestions Voting at that point.

*** Will the pathfinding routine bumping against the edge of a burrow cause lag like locked doors do now?

That's not how locked doors work in the current version.
« Last Edit: March 31, 2009, 03:56:33 am by Footkerchief »
Logged

Exponent

  • Bay Watcher
    • View Profile
Re: Long-term playability
« Reply #7 on: March 31, 2009, 04:02:33 am »

I believe the greatest benefit to hauling that will come from the burrows arc will be the reduction of the following problem:  Dwarf gets job to haul object to a certain location.  The object is on the other side of the fortress.  (Some other dwarf, standing right next to the object in question, might finish a job of his own, and would be perfectly placed to "steal" the hauling job, but that can't happen, as the object is already tasked by the original dwarf.)  So after the dwarf crosses the entire fortress, he grabs the object.  (Or in a worse case, cancels right before reaching it to go grab a drink some long ways away.)  It now turns out that the destination for the object is again on the far side of the fortress.  So he treks all the way to the destination.  The moment he drops the object, he gets a job to grab yet another object, again far away from his current position, but close to some other dwarves that might very shortly be looking for another job to perform.

Hauling jobs should not be assigned to the first dwarf available, but should instead be assigned to an appropriate dwarf, or should remain unassigned until an appropriate dwarf becomes available.  Burrows will help this to occur more often.  Actually, I think that ideally, jobs should not take dwarves, but dwarves should take jobs (and do so intelligently), but there are likely technical reasons for why the game is implemented the way it is currently.  The question then becomes whether burrows will actually address the problems themselves, or simply try to work around them or minimize the symptoms, and whether it would in the end just be simpler to address the problems directly, despite the technical difficulties.  (This, of course, assumes that the root problems are in fact accurately identified and understood, not always an easy process.)
Logged

Silverionmox

  • Bay Watcher
    • View Profile
Re: Long-term playability
« Reply #8 on: March 31, 2009, 04:15:34 am »

@ profit:

I presume that there will be a connectivity index for each burrow. Pathfinding would be drastically reduced, because dwarves would only need to pathfind inside their burrow. Burrows are most likely small, so that both cuts down on the distance the dwarf has to go, and the possible sideways the pathfinder has to search through to find a path.

Connectivity indexes are computationally expensive, I've been told, but I suppose that burrows will be fairly static, so they don't need to be recalculated often.
Logged
Dwarf Fortress cured my savescumming.

profit

  • Bay Watcher
  • Finely Crafted Engravings... Or it didn't happen.
    • View Profile
Re: Long-term playability
« Reply #9 on: March 31, 2009, 04:17:04 am »

That's not how locked doors work in the current version.
It is for pets.   There also seems to be lag when items are inaccessible and not forbidden, but that might be psychosomatic.

But I do see now how a burrow could help with lag, just probably not in my fortress...   New Hauling system really would be necessary in order to bring it to life though. 

Would be nice to play a game with no lag and have my dorfs move fast....

Logged
Mods and the best utilities for dwarf fortress
Community Mods and utilities thread.

cparax

  • Bay Watcher
    • View Profile
Re: Long-term playability
« Reply #10 on: March 31, 2009, 05:20:55 am »

I think the phrasing used ('segregation') was a tad drastic and negative: I'm mainly concerned with a way to create working sub-fortresses devoted to some specific labor or another. The current organization of the fortress is far too centralizing, and with an economy as robust as the average player is after in history the opposite would very much be true - the bigger the fortress gets, the less likely dwarves should be to share living space with dwarves involved elsewhere in the economy.

The main use I imagine most people would have for the option would be the assignment of haulers, although workarounds for that are fairly decent as it stands.

I can see the problem with assigning specific permissions by dwarf for hundreds, though. That's why I'd want to have at least some ability to automatically deny access to anyone with a certain labor, without certain labors, without certain statistics, etc. The wider the range of functions, the better - but even just a simple 'X dwarves can enter, Y dwarves can enter but not remain, Z dwarves cannot enter'-style function in the game would provide a foothold for third-party programs capable of fine-tuning permissions based on all manners of stuff.

(footkerchief: Thanks for bringing that up. Hadn't seen it before - I'd only seen the dev stuff on separate pages.)

As for teleportation, I still think it's pretty necessary, although if there are alternatives allowing for the upkeep of a local-map-sized fortress without CPU as a limiting factor they're certainly welcome.

And if you have a fortress in a good biome, you already have to deal with fairies... usually with cats. :P Portals just seem like something that would passably simulate the swift animal-based transit available in the time-period without actually requiring animals to be modelled realistically, which does seem like more hassle than it's worth. They're a step up in fancy from what the fortress normally involves, but if anything that just means they should, like giant spider silk or adamantine or whatever, require unusual resources and high levels of planning. I'd lean against it because I tend to prefer renewable or at least extremely abundant resources, but if making portals commonplace is really that much of a problem then you could always make them dependent on crystal glass or exclusively available as an import from elves (finally make the buggers useful in the later game) or maybe the mountainhome, at great expense.

I do think that the CPU prediction isn't as rosy as you'd think - processors get faster for the same price by year, and while there's physical limits on what a processor designed the way they currently are can do, (a) those limits aren't intrinsic to the CPU as a model and (b) the ability to play a tiny civilization at an acceptable framerate is almost certainly on this side of them.
« Last Edit: March 31, 2009, 05:28:27 am by cparax »
Logged

profit

  • Bay Watcher
  • Finely Crafted Engravings... Or it didn't happen.
    • View Profile
Re: Long-term playability
« Reply #11 on: March 31, 2009, 05:43:19 am »

Sadly in terms of Mhz speed (I know this is not a real valid measure, but it does work ok if your comparing intel to intel chips) I am seeing processors getting weaker rather than stronger.  Until dwarf fortress takes advantage of paralleled instructions it is probably going to not get faster with just increased CPU power

Example..

as of June 12, 2005 you could get a 3.8ghz single core processor.

Currently the best in speed you can get from intel is the  Intel Core i7 Extreme Edition 965 Nehalem running at  3.2GHz (Currently costs over a thousand dollars just for this chip)

4 years later and 600mhz slower. (per core)

not that it doesn't have other benefits, just that it really is not going to speed up DF which will only use a single core.

Now if Dwarf fortress ever has proper multithreading and multicore support, it will speed it up by 4X.... Possibly more because of the main thread could be free to accept instructions while the other threads are running (You know so you could place a bed or designate some mining without the game pausing)

But anyhow... back on to the suggestion.. Yeah I see where burrows can be useful.. I still find transporters distasteful for a dwarven fortress... But I have no objections to a machine stand in.

(I only find them distasteful from a lore standpoint, not from a utility standpoint. Just so you know)  Abstracting the hauling to get it off of the main loop and pathfinding would really help speed things up I believe.
« Last Edit: March 31, 2009, 05:50:18 am by profit »
Logged
Mods and the best utilities for dwarf fortress
Community Mods and utilities thread.

Footkerchief

  • Bay Watcher
  • The Juffo-Wup is strong in this place.
    • View Profile
Re: Long-term playability
« Reply #12 on: March 31, 2009, 05:51:03 am »

That's not how locked doors work in the current version.
It is for pets.   There also seems to be lag when items are inaccessible and not forbidden, but that might be psychosomatic.

Oh you mean for pets.  Yeah, pet-locked doors are problematic, but that's more of a problem with pets than with doors or burrows.  Dwarves handle doors (whether locked or unlocked) just fine.

Sadly in terms of Mhz speed (I know this is not a real valid measure, but it does work ok if your comparing intel to intel chips) I am seeing processors getting weaker rather than stronger.  Until dwarf fortress takes advantage of paralleled instructions it is probably going to not get faster with just increased CPU power

Example..

as of June 12, 2005 you could get a 3.8ghz single core processor.

Currently the best in speed you can get from intel is the  Intel Core i7 Extreme Edition 965 Nehalem running at  3.2GHz (Currently costs over a thousand dollars just for this chip)

4 years later and 600mhz slower. (per core)

not that it doesn't have other benefits, just that it really is not going to speed up DF which will only use a single core.

Raw clock speed isn't an adequate performance metric even if you're comparing Intels to Intels -- you're still comparing them across tech generations.
« Last Edit: March 31, 2009, 05:54:50 am by Footkerchief »
Logged

profit

  • Bay Watcher
  • Finely Crafted Engravings... Or it didn't happen.
    • View Profile
Re: Long-term playability
« Reply #13 on: March 31, 2009, 05:55:31 am »

They do of course perform clock per clock better, if programs have been written to take advantage of their better instuction set, but I doubt they have been made enough more efficient to play dwarf fortress at anything more than maybe a 5-25% improvement.  and when you lose 600mhz or about 20% speed... it Bites into it

(Now if you were manipulating a 128bit database, or encoding video with programs compiled to take advantage of the 64bit instruction sets I bet the difference would be staggering(even if they only used a single core)... but sadly dwarf fortress is neither of those things and has to remain 32bit compatable for the moment)

And even if it was able to jump to 64 bit, it spends a lot of time in decisions and computations, where it would not be helped as much by the advanced string manipulations and the faster crunching of the larger variables.

*Sigh..... But to use the full power of my proccessor which while its only dual core... I could see 20FPS again....  I really hope someday Dwarf fortress gets an update to spread its calculations on all the cores available to it.

« Last Edit: March 31, 2009, 06:26:16 am by profit »
Logged
Mods and the best utilities for dwarf fortress
Community Mods and utilities thread.

winner

  • Bay Watcher
    • View Profile
Re: Long-term playability
« Reply #14 on: March 31, 2009, 05:59:33 pm »

I believe the greatest benefit to hauling that will come from the burrows arc will be the reduction of the following problem:  Dwarf gets job to haul object to a certain location.  The object is on the other side of the fortress.  (Some other dwarf, standing right next to the object in question, might finish a job of his own, and would be perfectly placed to "steal" the hauling job, but that can't happen, as the object is already tasked by the original dwarf.)  So after the dwarf crosses the entire fortress, he grabs the object.  (Or in a worse case, cancels right before reaching it to go grab a drink some long ways away.)  It now turns out that the destination for the object is again on the far side of the fortress.  So he treks all the way to the destination.  The moment he drops the object, he gets a job to grab yet another object, again far away from his current position, but close to some other dwarves that might very shortly be looking for another job to perform.

Hauling jobs should not be assigned to the first dwarf available, but should instead be assigned to an appropriate dwarf, or should remain unassigned until an appropriate dwarf becomes available.  Burrows will help this to occur more often.  Actually, I think that ideally, jobs should not take dwarves, but dwarves should take jobs (and do so intelligently), but there are likely technical reasons for why the game is implemented the way it is currently.  The question then becomes whether burrows will actually address the problems themselves, or simply try to work around them or minimize the symptoms, and whether it would in the end just be simpler to address the problems directly, despite the technical difficulties.  (This, of course, assumes that the root problems are in fact accurately identified and understood, not always an easy process.)
you could add a cost to each dwarf that is equivalent to the time remaining in their current job.  This way job pathfinding would choose a nearby dwarf with a littl time left rather than a far away dwarf who is jobless.
Logged
The great game of Warlocks!
Pages: [1] 2