Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Dynamic Difficulty  (Read 550 times)

drayath

  • Bay Watcher
    • View Profile
Dynamic Difficulty
« on: June 02, 2011, 02:09:14 pm »

Hi all,

Coming back to DF after a bit of a break i had an idea on difficulty levels.

Presently even with most of the mods, if you reach the point to can defeat attackers game gets easier rather than harder. I was wondering whether it was possible to make tweaks to get an 'ironman' mode, where the enemies keep getting more powerful.

Initial though on implimentation depend very much on exactly what you can edit in the raws after a world is generated and a fortress is up and running, the key one being:
A) Can you add new castes to races during a game (obviously while game not running) and have nothing break, and them show up in seiges
B) Failing that will modifying caste POP_RATIO during a game be respected when new seiges are generated

If either of these work, at the simpliest could save the game each spring and run the tool to bump the difficulty up (add/increse frequence of castes with better skills/stats/special abilities)

If you wanted to be more fancy could parse the gamelog when changing thing (e.g. if all the gobo are being killed by archers, gobo kings recruits many archers skilled in shield use to his army. If many trap deaths sabataur squads with expert dodge or trap avoid and building destroyer etc.)
For the really fancy possibility may be getting other info (fortress wealth?) from dfhack to tweak things further.

-

As you can see however everything relies on being able to raw mod a running game if change difficuly without causing problem and i was wonder if anyone had already spent any time experimenting with this?

If not will spend some time this weekend seeing what happens.


Edit: I am aware that a number of mods use extra civs of different strenths and various population limits to escalate the difficulty. Wanted somthing a big more fine grained, could lower difficulty if needed and that could potentially would work moderatly easily with existing mods (e.g. civforge/genisis) as it could clone existing castes with bonues without having to know much if anything about exactly how a mod set up races, castes items etc. (cause i would suck as designing a large scale mod from scratch, coding a tool i can do)
« Last Edit: June 02, 2011, 02:32:56 pm by drayath »
Logged
Drayath's Gem Splitting Workshop - Split large gems and gem trinkets into numbers of small gems.
Drayath's Seed Brewery - Convert bags of spare seeds into useful booze.

freeformschooler

  • Bay Watcher
    • View Profile
Re: Dynamic Difficulty
« Reply #1 on: June 02, 2011, 02:12:48 pm »

I can tell you that at least part of what you're looking for is possible in one way or another, but I'm not the right person to ask on precisely how to implement it.
Logged

Ieb

  • Bay Watcher
  • A Breakdancing Ogre
    • View Profile
Re: Dynamic Difficulty
« Reply #2 on: June 02, 2011, 03:03:18 pm »

Assuming what I know from my bouts with modding is true, there's no way to get the sort of scaling difficulty like you're looking for. I'm also pretty sure you can introduce new castes to a creature during gameplay but as I haven't tried that myself, I might be wrong on it. In theory it should work.

Messing about with the raws all the time would probably get tiresome though. But like you said, a lot of mods already have civ's that show up at later stages into the gameplay and are tougher than previous opponents.

Anyway, I'm PRETTY sure that as far as the game cares, the only problem would arise if you would erase a caste from the raws and some important historical figure was a member of that caste. Buuut you wouldn't do that the way you're saying you'd do this so... Knock yourself out kid and come back with SCIENCE!
Logged

drayath

  • Bay Watcher
    • View Profile
Re: Dynamic Difficulty
« Reply #3 on: June 02, 2011, 03:18:12 pm »

Assuming can play with castes sucessfully i can then do the dificulty scaling myself.

Each in approx in game year, exit game, run EnemyEnhancer application, restart game. Not idealy but not too much hassle to use.

App can then be configured to tweak raw files based on the gamelog, that should have season changes etc for how much time has passed in game and combat logs for possible tweaking to type of enemies to use next.
Logged
Drayath's Gem Splitting Workshop - Split large gems and gem trinkets into numbers of small gems.
Drayath's Seed Brewery - Convert bags of spare seeds into useful booze.

jockmo42

  • Bay Watcher
  • Professional Novice
    • View Profile
Re: Dynamic Difficulty
« Reply #4 on: June 02, 2011, 04:49:29 pm »

Couldn't you theoretically write an external program to modify raws after each save based on collected data?

drayath

  • Bay Watcher
    • View Profile
Re: Dynamic Difficulty
« Reply #5 on: June 03, 2011, 06:08:32 am »

Yeap that is the plan, depending on exactly what is safe to change.
Logged
Drayath's Gem Splitting Workshop - Split large gems and gem trinkets into numbers of small gems.
Drayath's Seed Brewery - Convert bags of spare seeds into useful booze.

Grimlocke

  • Bay Watcher
  • *kobold noises*
    • View Profile
Re: Dynamic Difficulty
« Reply #6 on: June 03, 2011, 09:11:30 am »

Ideal would be a utility that tinkers with DFs memory to modify caste ratios ingame, as it kind of breaks the flow of the game to have to save, quit and modify the game each year.
Logged
I make Grimlocke's History & Realism Mods. Its got poleaxes, sturdy joints and bloomeries. Now compatible with DF Revised!

Talanic

  • Bay Watcher
  • Struggling author / pizza delivery guy.
    • View Profile
Re: Dynamic Difficulty
« Reply #7 on: June 03, 2011, 09:38:25 am »

Would work with succession games, though...hand it off to the new overseer with a warning that the enemy just got more dangerous.
Logged
I'm an aspiring Science Fiction and Fantasy writer.  I'm telling the tale of a hapless cyborg everyman lost in a savage fantasy world.

My first review from a real magazine!