Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: What are the differences between history generation and full simulation?  (Read 2432 times)

Xazo-Tak

  • Bay Watcher
  • *Camping forever*
    • View Profile

When I read the result of a historical megabeast battle in legends mode, I always wonder if the result was a comparison of attributes and combat abilities, weighted by arbitrary values applied to megabeasts, or something more advanced. (Being seed based, the site of the battle could be generated and used to simulate a battle, something that might take only a second for 1v1)
Similar questions apply to what logic goes into building a site in DF2014, especially simulating retired fortresses.
What are the major differences between in-game simulation and history simulation?
Do the structures of sites exist in any way before the player visits them?
« Last Edit: April 21, 2014, 11:35:06 pm by Xazo-Tak »
Logged
How to have recursive Fun:
Have Fun
Reclaim fort
Destroy your main graveyard with a cave-in

neblime

  • Bay Watcher
  • More GG more skill
    • View Profile

I think a large difference is the mortality rate of battles (or any kind of fight).  In worldgen a lot of people seem to have fights and "escape unscathed" or something like that.  Also, sadly, the number of combatants participating in individual battles is much higher in worldgen.
HOWEVER the ability of legendarily skilled individuals to defeat near infinite low skill opponents seems to exist in world gen as well.
Logged
http://i.imgur.com/Gv6I6JO.png
I am quite looking forward to the next 20 or 30 years or so of developmental madness

Xazo-Tak

  • Bay Watcher
  • *Camping forever*
    • View Profile

I think a large difference is the mortality rate of battles (or any kind of fight).  In worldgen a lot of people seem to have fights and "escape unscathed" or something like that.  Also, sadly, the number of combatants participating in individual battles is much higher in worldgen.
HOWEVER the ability of legendarily skilled individuals to defeat near infinite low skill opponents seems to exist in world gen as well.
Ah, so it's probably a simple arbitary system.
Oh well, by the time Dwarf Fortress is finished, it would be possible to run full simulation with the entire world, since it doesn't look like calculations will be getting exponentially more complicated.
Logged
How to have recursive Fun:
Have Fun
Reclaim fort
Destroy your main graveyard with a cave-in

alexandertnt

  • Bay Watcher
  • (map 'list (lambda (post) (+ post awesome)) posts)
    • View Profile

I am pretty sure that world gen uses a different system.

I noticed that the vast majority of battles in my modded version end with the victim being "struck down", but in full simulation in a similar situation death is almost always by blood loss.

I also remember various dev logs referring to world gen as a different system, as Toady seems to implement things into world simulation and full simulation independently.
Logged
This is when I imagine the hilarity which may happen if certain things are glichy. Such as targeting your own body parts to eat.

You eat your own head
YOU HAVE BEEN STRUCK DOWN!

King Mir

  • Bay Watcher
    • View Profile

World Gen is a different system, but it's the same system that's going to be used for off-loaded combat in the next version.

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile

Worldgen has a bunch of 1v1 battles done entirely by considering attributes, skills and some interactions (only material emissions AFAIK). No actual battle is simulated.

Dirst

  • Bay Watcher
  • [EASILY_DISTRA
    • View Profile

Worldgen has a bunch of 1v1 battles done entirely by considering attributes, skills and some interactions (only material emissions AFAIK). No actual battle is simulated.
Yes, worldgen battles seem less epic when you picture each army lining up single-file.  Those at the head of each line fight, and the survivor takes on the next person in that line.  Eventually, one of the lines runs out.

When formations become a thing, it might make for more interesting abstracted combat.
Logged
Just got back, updating:
(0.42 & 0.43) The Earth Strikes Back! v2.15 - Pay attention...  It's a mine!  It's-a not yours!
(0.42 & 0.43) Appearance Tweaks v1.03 - Tease those hippies about their pointy ears.
(0.42 & 0.43) Accessibility Utility v1.04 - Console tools to navigate the map

Xazo-Tak

  • Bay Watcher
  • *Camping forever*
    • View Profile

After some extremely approximated calculations, I figured that by the time Dwarf Fortress is completed, assuming multicore support is added, and there are no massive increases in system resource usage, it should be possible to have an entire world loaded, maybe only a small one until several years after completion.
So, does Toady have any plans for taking advantage of such increases?
Logged
How to have recursive Fun:
Have Fun
Reclaim fort
Destroy your main graveyard with a cave-in

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile

Multicore isn't the issue at all here, it's all about RAM. 64-bit upgrade is inevitable, so that's not much to worry about.

Xazo-Tak

  • Bay Watcher
  • *Camping forever*
    • View Profile

Multicore isn't the issue at all here, it's all about RAM. 64-bit upgrade is inevitable, so that's not much to worry about.
In history generation, yes, but FPS is a real issue in Fortress Mode.
Logged
How to have recursive Fun:
Have Fun
Reclaim fort
Destroy your main graveyard with a cave-in

King Mir

  • Bay Watcher
    • View Profile

Multicore isn't the issue at all here, it's all about RAM. 64-bit upgrade is inevitable, so that's not much to worry about.
In history generation, yes, but FPS is a real issue in Fortress Mode.
But again, the bottleneck is RAM. The fact that DF has large memory useage means it can't keep all that in cache so the system spends most of it's time reading from physical RAM. Lower latency ram and a wider memory bus would speed that up the most. DF isn't written in a way that's easy to make multi-core provide an easy speedup, because every thread would have to synchronize every logic tick, which is a huge penalty.

Dirst

  • Bay Watcher
  • [EASILY_DISTRA
    • View Profile

Multicore isn't the issue at all here, it's all about RAM. 64-bit upgrade is inevitable, so that's not much to worry about.
In history generation, yes, but FPS is a real issue in Fortress Mode.
But again, the bottleneck is RAM. The fact that DF has large memory useage means it can't keep all that in cache so the system spends most of it's time reading from physical RAM. Lower latency ram and a wider memory bus would speed that up the most. DF isn't written in a way that's easy to make multi-core provide an easy speedup, because every thread would have to synchronize every logic tick, which is a huge penalty.
There are plenty of realtime and simulation systems that need to work this way (and the ADA language handles it for you, not that I recommend porting DF to it).  The question is whether the overhead is low enough to allow multiple cores to do their things and sync every tick than it is to do everything sequentially, and if having stuff happen in tick T or tick T+1 makes a huge difference.

For example, it seems "obvious" to offload temperature checking, fluid flow, and equipment wear onto their own threads.  If a sock becomes tattered this tick or next doesn't make a difference, but whether a tile is depth 1 or 2 can be an important distinction.  The system may need to be set up that temperature and fluid states are calculated then everything runs off in different threads.  That makes the overhead question a tougher call.

We'll get there eventually, probably after a transition to 64-bit.
Logged
Just got back, updating:
(0.42 & 0.43) The Earth Strikes Back! v2.15 - Pay attention...  It's a mine!  It's-a not yours!
(0.42 & 0.43) Appearance Tweaks v1.03 - Tease those hippies about their pointy ears.
(0.42 & 0.43) Accessibility Utility v1.04 - Console tools to navigate the map

Xazo-Tak

  • Bay Watcher
  • *Camping forever*
    • View Profile

Multicore isn't the issue at all here, it's all about RAM. 64-bit upgrade is inevitable, so that's not much to worry about.
In history generation, yes, but FPS is a real issue in Fortress Mode.
But again, the bottleneck is RAM. The fact that DF has large memory useage means it can't keep all that in cache so the system spends most of it's time reading from physical RAM. Lower latency ram and a wider memory bus would speed that up the most. DF isn't written in a way that's easy to make multi-core provide an easy speedup, because every thread would have to synchronize every logic tick, which is a huge penalty.
There are plenty of realtime and simulation systems that need to work this way (and the ADA language handles it for you, not that I recommend porting DF to it).  The question is whether the overhead is low enough to allow multiple cores to do their things and sync every tick than it is to do everything sequentially, and if having stuff happen in tick T or tick T+1 makes a huge difference.

For example, it seems "obvious" to offload temperature checking, fluid flow, and equipment wear onto their own threads.  If a sock becomes tattered this tick or next doesn't make a difference, but whether a tile is depth 1 or 2 can be an important distinction.  The system may need to be set up that temperature and fluid states are calculated then everything runs off in different threads.  That makes the overhead question a tougher call.

We'll get there eventually, probably after a transition to 64-bit.
It's dangerous to make arbitrary offloadings though, because if the game is changed so that stuff should work together again, it could be a pain to revert.
Logged
How to have recursive Fun:
Have Fun
Reclaim fort
Destroy your main graveyard with a cave-in

Cormack

  • Bay Watcher
    • View Profile

Has anything changed in this aspect in the last updates? Have battles become more realistic and immersive?
Logged
Yes, I'm gay.

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile

Not in worldgen, no.