Bay 12 Games Forum

Please login or register.

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

Author Topic: Hunger, sleep, etc.: differentiate between military and civilian time for combat  (Read 3925 times)

Silverionmox

  • Bay Watcher
    • View Profile

Recently I had a goblin invasion, and they reached the upper part of the fortress. I had everybody burrowed up down below, so no problem. I activated the squads and sent them upstairs. What happened? As soon as they arrived, they went to bed.

That's obviously not what a soldier is supposed to do. The problem is that civilian and military dwarves get hungry, sleepy etc. at the same rate. For civilians that can be balanced out in any way, because they can reach the dormitory, dining hall etc. and over the year they achieve a reasonable cycle of working, sleeping etc.

However, the military can't average their schedule out like civilians, because as opposed to quartzite rocks the enemy doesn't wait until they're ready to hammer them in shape.

Possible solutions:

- Suspend bodily needs for soldiers on duty. pro: simple. contra: abusable; why do they have backpacks etc. then at all?

- Let creatures in combat act faster. Or, effectively, make civilians slow down a hundred times. (Civilians that are attacked are in combat, naturally, to prevent a single goblin to blitz through your fortress.) pro: combat can take place in a fitting time; the bodily needs' timers can run as normal without disrupting combat. contra: civilian life slows down when in combat

I don't think the last solution causes insurmountable problems. There can be a situation with the occasional straggler that you can't reach but is not dangerous to you for some reason, so there should be a key to return to civilian time. It will automatically switch back to military time (or siege time/mode, as it probably will be called) when the creature succeeds in attacking again, anyway.

(This would also solve the future problem of sending out dwarves to the outside world, and it takes them a month to reach the edge of the map.)
Logged
Dwarf Fortress cured my savescumming.

NW_Kohaku

  • Bay Watcher
  • [ETHIC:SCIENCE_FOR_FUN: REQUIRED]
    • View Profile

Actually, this was a part of my earlier suggestion for making a set of programmable priorities for dwarves...

Certain dwarves need to be "on call", so that unless they are called up to the task they are requested for, they will actually eat, sleep, drink, etc. at half the actual tiredness or hunger meter settings they normally would go out and eat and sleep and drink at.

We basically just need some boolean logic operators and the ability to set such priorities in the Job Priorities devpage item.  (Along with some inport/export abilities so we can save them over from one fort to the next without having to write them out again every time.)
Logged
Personally, I like [DF] because after climbing the damned learning cliff, I'm too elitist to consider not liking it.
"And no Frankenstein-esque body part stitching?"
"Not yet"

Improved Farming
Class Warfare

Silverionmox

  • Bay Watcher
    • View Profile

That's one option, I actually do prefer the other one. Fudging their need to sleep etc. strains the suspension of disbelief (different rules for essentially the same dwarves) and is open to abuse.

I'd rather have civilians life slow down while the fighting happens. That way, dwarves can simply get hungry once per 2 months (or whatever x per unit of dwarf time); it's just that time slows down. In a sense, combat should take place in adventure mode. Civilian life can then be sped up and somewhat abstracted for normal gameplay (which is as it is now).

This has the additional advantage that you're not bothered by economic messages and work while fighting.
Logged
Dwarf Fortress cured my savescumming.

NW_Kohaku

  • Bay Watcher
  • [ETHIC:SCIENCE_FOR_FUN: REQUIRED]
    • View Profile

I'm not saying that they "fudge" their eating or sleeping habits, I'm saying that you move the bar so that they eat when they aren't as hungry.

Basically, every dwarf has an integer value that gets incrimented with every tick or turn, and since I can't remember what the maximum value for that is, I'll just say that a dwarf starves at 100% hunger.  They normally eat at, let's say, 80% hunger, and get unhappy thoughts if they hit 85% hunger.  The idea is that you schedule into their job priorities menu that, instead of eating at 80% hunger, they instead eat at 40% hunger.  This means that they probably wind up wasting food (and becoming big eaters) since we don't have "half a meal" right now, but regardless, that means that any time you need them, they are never at a higher hunger level than about 40%. 

Then, when the higher-priority-than-eating (at least, when not starving) job of "Defend the Fortress from a seige" comes in, you can be assured that you have dwarves that are well-fed and well-rested and ready.  (Even if keeping them in that state means that they are probably spending more time hunting down booze and food than doing practice drills, although that's possibly an acceptable loss for dwarves that are already Heroes.)
Logged
Personally, I like [DF] because after climbing the damned learning cliff, I'm too elitist to consider not liking it.
"And no Frankenstein-esque body part stitching?"
"Not yet"

Improved Farming
Class Warfare

Silverionmox

  • Bay Watcher
    • View Profile

That would be a reasonable approximation for the adrenalin rush. I still find putting the fort in slow motion while the fighters fight a more attractive solution :) (and less abusable).

Another big problem is that goblins don't need to eat or sleep at all. That makes the imbalance worse.

Sieges over multiple days should be possible of course, and that implies that soldiers should sleep sometimes. The problem now is that you don't have any idea when and how long they will sleep. An indicator for that would be good. In any case, they should be more flexible. Any army sets out guards for the night, and you can be sure that those don't always get to sleep the day before their duty.
Logged
Dwarf Fortress cured my savescumming.

Shurhaian

  • Bay Watcher
    • View Profile

Putting the fortress in slow motion doesn't make the problem go away. It just makes it play out over more time - which can be all the more frustrating.

The problem is one of priority. Dwarves who are needed to fight enemies(or any other task that's flagged as "emergency") should be willing to push themselves harder - at least for a time. They might need longer to recover afterward, and they will certainly get unhappy thoughts, but the problem right now is that there is no concept of urgency. Put that in, and you won't have your soldiers deciding to go to bed the moment you sound the alarm. They might even get roused out of bed to deal with it(and go right back to sleep the moment the alert is gone).
Logged
Working on: drakes - making the skies(mostly) a bit more varied

My guards need something better to do than make my nobles happy with hugs and justice.

Andeerz

  • Bay Watcher
  • ...likes cows for their haunting moos.
    • View Profile

If only there could be a way to seamlessly make DF mode time go into Adventure Mode time when altercations occur...
Logged

thijser

  • Bay Watcher
  • You to cut down a tree in order to make an axe!
    • View Profile

Perhaps a more usefull system would be to add a option on the preferense menu of a dwarf (v-p) which once toggled will make a dwarf ignore that they are tired, hungry or dehydrated. This means that a dwarf who is in this mode for to long dies.
Logged
I'm not a native English speaker. Feel free to point out grammar/spelling mistakes. This way I can learn better English.

Shurhaian

  • Bay Watcher
    • View Profile

Well, in the case of ignoring sleep(and even to some degree, the other two), passing out where they stand would make sense. It may also depend, to some degree, on the dwarf - dwarven agency is one of the quirks that make this game great, and I don't want to eliminate it. If they have a strong sense of duty, say, and/or great willpower, and/or good stamina-related physicals, they'll be more likely to tough it out. Poorer mental qualities related to it may make them more likely to break and run for the necessities when they start feeling miserable; dwarves that aren't as physically tough are more likely to keel over and become casualties than to carry on to death.

But yeah. Although what you're proposing is useful, it removes dwarven free will to a degree not normally found in the game, and I don't feel that it entirely fits. Telling them to push themselves is one thing, and should be respected to some degree by any dwarf - but not all of them are going to have the guts to push themselves to the brink of starvation or fatal dehydration.

On the other hand, soldiers are a case where they currently have too much free will - to the point that they don't seem to take the time-critical nature of their jobs at all seriously.
Logged
Working on: drakes - making the skies(mostly) a bit more varied

My guards need something better to do than make my nobles happy with hugs and justice.

Silverionmox

  • Bay Watcher
    • View Profile

It's not only a matter of lax dwarves. The problem is that dwarves even can't push themselves much further without risking to die from hunger or exhaustion. That problem is caused by the artificial timing of their bodily needs. On one hand, there is the calendar; on the other hand, there is the biorhythm of the dwarves (the pace with which they get hungry). Those two are not synchronized. That's a problem with making a sim game, since doing it real-time is obviously not an option, and speeding it up while retaining the normal number of dinners/month isn't either.

For civilians, that can easily be abstracted by 1. speeding up all actions (eg. traversing the map takes a minute, although it represents a km) and where that doesn't suffice to cram all actions in a year, 2. to enhance productivity (eg. a dwarf requires only one workshop session to make stuff that would require twelve sessions when not abstracted).

For the military, abstracting combat like that is not possible because it does matter where dwarves and their enemies are at a given point in time. For civilians, everything that matters is that they have a cycle of sleep-work-eat-leisure-etc. and have produced x stuff at the end of the year.

So civil life and combat have distinct timing needs. Now we're doing everything in civilian mode, and that has undesirable effects: dealing with a goblin squad takes an entire season, tactics that could easily be executed before noon IRL are interrupted because half the squad is gone for lunch and a nap. Doing everything on a pace adapted to military operations would make any economic endeavour unenjoyable.

The best solution is IMO to switch the game to siege/adventure mode (eg. 2 dwarf days per real hour) when combat takes place. That mode would also have night and day/tidal cycles, while normal civilian mode (eg. a dwarf year per real hour) would just have daylight and a stable average coastline. Military mode would for example start when a squad of goblins arrives on Granite, 23rd and stop on Granite, 25th when they are dealt with.
Logged
Dwarf Fortress cured my savescumming.

NW_Kohaku

  • Bay Watcher
  • [ETHIC:SCIENCE_FOR_FUN: REQUIRED]
    • View Profile

The problem with that is... what about seiges that are SEIGES?  What about seiges that last for weeks or months?  What about dwarves who have dug into the ground and sealed themselves off, and just ignore caravans and seiges and shut off immigrants? 

Do we now work in a timeframe where productivity has to suddenly be dropped massively so that production exploits don't occur?  But then, most jobs already are largely a matter of simply walking from the stockpile to the job site back to the stockpile, not the actual working part of the job, itself.  If we're walking faster, then we're more productive, and there's no real way to balance that out across all jobs.

What about ambushes?  What about Forgotten Beasts?  What about hostile critters in the caverns?  Which of those cause Fortress Bullet Time?  Can we keep a goblin trapped in a repeater so that we are in perpetual seige mode, and can vastly improve work efficiency?  What about the already-existing bugs that make seige mode not always end properly when we actually want time to go faster so we can get stuff done quicker?

Yes, there are problems of timescaling, but suddenly creating more timescaling shifts is only going to cause more problems than it solves...
Logged
Personally, I like [DF] because after climbing the damned learning cliff, I'm too elitist to consider not liking it.
"And no Frankenstein-esque body part stitching?"
"Not yet"

Improved Farming
Class Warfare

Silverionmox

  • Bay Watcher
    • View Profile

Long-term sieges are characterized by an absence of actual combat and a lot of sitting and waiting (for reinforcements, for the other guys to give up, for hunger and disease to take their toll), and will thus revert to civilian mode.

Productivity is also a matter of quantity produced per job. Admittedly, dwarves are now spending their time walking around: but the reason that that happens is that production is abstracted to cram it in the year without making the dwarves walk very fast and be still in their workshops for most of the time.

- Ambushes switch to siege mode ASA the first hit/shot/warning cry happens. Civilians that are fleeing are into combat mode as well.
- The type of enemy doesn't matter: it's whether dwarves are in combat/fleeing that matters.
- Trapped Goblin: ah, but you don't improve efficiency: production and consumption on a per year basis remain the same; they're just stretched out more because in siege mode the dwarf time passes more slowly - so your stonecrafter will still produce 1 instrument each week, but the weeks will now pass slowly, allowing dwarves to move and combat more.
- Stragglers: there might be a lone goblin you can't reach. You should always be able to end (or start) siege mode voluntarily; even if you do it in the middle of combat, it will switch right back on. It should depend on actual combat being fought, not on the presence of enemies.
Another option to solve that is to mark enemies as non-threatening: if they don't actually hit your dwarves, they won't trigger fleeing reactions or attacks. That would also be useful for pitted animals or cave animals down below in a lower cavern (as an aside, their should be creatures that make all but the braves dwarves flee, even if they're tamed :) ).

It would be announced the first time to the player as follows:

**You are now entering siege mode.** Siege mode slows down the time of your economy (production and consumption of your dwarves) because there is combat going on. You can now concentrate on the military, who operate on their normal speed. You will switch back to civilian mode automatically when combat has ceased for a day, or by pressing [key]. More info, press <Help key>.
Logged
Dwarf Fortress cured my savescumming.

NW_Kohaku

  • Bay Watcher
  • [ETHIC:SCIENCE_FOR_FUN: REQUIRED]
    • View Profile

If you can start or end this voluntarily, then it just becomes the "bullet time button".  Use whenever you want to make dwarves functionally wake up from their naps faster.

The problem I see with this is that the real problem is that dwarves occasionally have to go beddy-bye at inoportune times - just making them take naps when there isn't a problem so that they can go without sleep later is all you need to solve that problem. 

The problem ISN'T the time dialation in combat, and you're coming up with a problematic solution to something that isn't really a problem.

Logged
Personally, I like [DF] because after climbing the damned learning cliff, I'm too elitist to consider not liking it.
"And no Frankenstein-esque body part stitching?"
"Not yet"

Improved Farming
Class Warfare

Silverionmox

  • Bay Watcher
    • View Profile

Be my guest if you want to micromanage the waking up of every dwarf... Besides, you don't gain anything: stay in siege mode and you'll wait many times longer for economic stuff to get don, re-enter civilian mode and they will go right back to bed...

The inopportune bed & breakfast times are one thing. For that problem there is not really much room to improve that: one could suppress their hunger feelings etc, but that will lead to soldiers dying from starvation at inopportune times instead of going away to eat. That's not an improvement. You could artificially reduce the food needs of active soldiers, but that is something that will lead to exploits (food running out? no problem, draft half your fortress until the caravan comes! they'll eat less).

In addition, it solves the situation that just two squads doing combat takes a whole season to resolve. Toady has referred elsewhere that sending out an army off-map in the future would be problematic, since it would take a month for the squad to reach the edge of the map. Dilating time for military operations completely solves that.

So the particular problem that made me consider this solution can be fudged by other means, but the time dilation solves other problems as well. Without it, we'll always be torn between the two most interesting aspects of the game (economy & military) that both require a different timescale to be enjoyed to their maximum. For example, siege mode could feature night and day cycles - it's slow enough for that - so we can have raid under the cover of darkness etc. Night and day is completely irrelevant for the economy however, so without combat going on it only makes sense to skip it in economy mode.
Logged
Dwarf Fortress cured my savescumming.

NW_Kohaku

  • Bay Watcher
  • [ETHIC:SCIENCE_FOR_FUN: REQUIRED]
    • View Profile

The inopportune bed & breakfast times are one thing. For that problem there is not really much room to improve that: one could suppress their hunger feelings etc, but that will lead to soldiers dying from starvation at inopportune times instead of going away to eat. That's not an improvement. You could artificially reduce the food needs of active soldiers, but that is something that will lead to exploits (food running out? no problem, draft half your fortress until the caravan comes! they'll eat less).

Or you can schedule them to eat and sleep early when they are being reserved as "On Call", so that they are never more than 40% hungry, like I said earlier...
Logged
Personally, I like [DF] because after climbing the damned learning cliff, I'm too elitist to consider not liking it.
"And no Frankenstein-esque body part stitching?"
"Not yet"

Improved Farming
Class Warfare
Pages: [1] 2 3