Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Difficulty option? #1806

Open
dorkster opened this issue Jan 13, 2022 · 4 comments
Open

Difficulty option? #1806

dorkster opened this issue Jan 13, 2022 · 4 comments
Assignees
Labels

Comments

@dorkster
Copy link
Collaborator

This is something I had sitting in my notes for a while now, so I might as well put it on the issue tracker.

There should be a per-character setting for setting the game's difficulty. It would be a multiplier controlled with a slider on the pause menu's "Exit" tab. The multiplier would affect difficulty based on two factors: enemy HP and enemy damage. Mods would be able to control:

  • Enabling/disabling the feature all together
  • The min/max difficulty multiplier
  • A multiplier for enemy HP relative to the difficulty multiplier
  • A multiplier for enemy damage relative to the difficulty multiplier
  • Possibly a multiplier for XP gain? Raising the difficulty grants more XP and vice versa.
@WithinAmnesia
Copy link

WithinAmnesia commented Jan 13, 2022

Is this a Pandora's box for npc abilities and other enemy related damage / health abilities / areas / uses? Could a Diablo difficulty approach be used without scaling? Normal, Nightmare, Hell?

"Possibly a multiplier for XP gain? Raising the difficulty grants more XP and vice versa"
Okay I have one question. Can enemy XP rewards scale to player level?
I have a clunky system where I have 3 versions of every enemy with 10% XP, 50% XP and 100% XP that are spawned in depending on the player level. If XP reward scaling per character level was usable I could save a big headache and have a smooth transition of XP curve instead of these massive XP drop off cliffs.

Could these scaling features be separately implemented as events so that a dev can make scaling bits of the game like an enemy or something if they wanted to case by case? If they were separately implemented could a difficulty slider be a menu option that is ~linked' to these separate features / global values?

@dorkster
Copy link
Collaborator Author

I'd like to keep it simple and only have difficulty effect enemy HP and enemy damage (and possibly XP) on a global sense. And I much prefer it to be an adjustable slider vs preset tiers like Normal/Nightmare/Hell.


Scaling XP based on the difference of player/enemy level is a reasonable idea. Maybe loot drop rates would also be affected by something like that?

@WithinAmnesia
Copy link

WithinAmnesia commented Jan 14, 2022

"Scaling XP based on the difference of player/enemy level is a reasonable idea. Maybe loot drop rates would also be affected by something like that?"

-'Scaling XP based on the difference of player/enemy level is a reasonable idea.' This would be an amazing feature that I could use immediately before building that crazy 33 level super dungeon. If anything at all this would be my greatest feature wish from player enemy scaling: Entity kill XP reward scaling based upon character / player level.

-'Maybe loot drop rates would also be affected by something like that?' Is that even possible? I am not sure I would use it but that could spice up the difficulty slider idea; harder difficulty more drops, easier difficulty less drops. Kind of like the spirit of Diablo's higher challenge, higher rewards. As like how in Diablo the different difficulty tiers give better loot the more challenge is overcome as with item drop drop quality being Normal < Nightmare < Hell? In the Flare Empyrean Campaign scaling difficulty item drop chances could be cool for replayability. If an item has a 10% chance to drop on ~'full' 10/10 difficulty, would this drop chance scale like 10/10 -> 10%, 9/10 -> 9%, 8/10 -> 8%, 7/10 ->7%, 6/10 -> 6% 5/10 -> 5%, 4/10 -> 4%, 3/10 -> 3%, 2/10 -> 2%, 1/10 ( ~'Story mode') -> 1%? As in like drop chance multiply of 1.0, 0.9, 8.0, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1? As in if an item has a 50% drop chance on 10/10 difficulty would this be at the highest 50%, graduating down in steps such as: 50%, 45%, 40%, 35%, 30%, 25%, 20%, 15%, 10%, 5% at the very lowest 1/10 difficulty?

@dorkster
Copy link
Collaborator Author

XP and loot rate would mostly behave the same in this scenario, so I'll just refer to them both as "rewards" (even if they'd be separate in practice). We'll call the starting value of the reward R. There would then be a reward factor that would scale relative to the difficulty value, which we'll call F. Next, we'll call the difference in player/enemy level, which will be capped at either end, L. So the pseudo code would look something like this:

L = max(min(enemy_level - player_level, 4), -4);   // cap the level difference to +/- 4 from the player level
final_reward = R * pow(F, L);

harder difficulty more drops, easier difficulty less drops.

This might initially sound like a good idea at first, but this would effectively make playing on easy harder and playing on hard easier. So you're kind of back at square one. So it's probably a better idea to invert the relationship between the difficulty setting and the reward factor.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants