-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
Better Difficulty Info #52877
Better Difficulty Info #52877
Conversation
I don't think separating combat into offense and defense is really warranted. Killing stuff quickly reduces incoming damage, compensating for weak defences, and strong armor/dodge/blocking compensates for weak offense by allowing to turtle and fish for crits. |
Great news: I've jsonified the difficulty types and ratings, so anyone can modify how the difficulty is displayed by editing difficulty.json (details in PR description). Also (based on your feedback), I've changed up the difficulty types to: "combat", "mobility", "crafting", "environment", and "social". Also also, thank you for the feedback on scenario/profession/mutation/etc difficulty ratings. I have no sense of difficulty, so I'm relying on others to correct me. |
What is your reasoning behind the "environment" differences in the professions? I see that a normal survivor has an "easy" environment but a chef or tailor have "normal", unless they spawn in different places (already covered in scenarios) or spawn naked/sick/etc. I don't see any reason for these to have a different environment level than a standard survivor. |
It's pretty arbitrary at the moment. I don't have a good sense for difficulty, so feel free correct me if anything looks off. Suggestions are very welcome! |
Then I will give it a good read! I will just finish correcting some msitakes from one of my PRs and then I will try to review these files. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I only could review the professions, I mainly suggested changes based on this:
Combat: Skills or a weapon are good, but only having 1 of the 2 makes it harder to do effective combat.
Mobility: Mainly vehicles and skates/parkour and driving skill.
Crafting: Fabrication, electronics, mechanics, science, food handling and tailoring (mainly), tools help a lot to improve the score here.
Environment: Health Care and Survival, as well as tools/medicines.
Social: The social skill.
I also considered the conditions of the scenarios that certain professions need you to choose to select them, and the effect in the environment (Winter, evolved monsters, migo tower) and yourself that these scenarios can generate.
cb19760
to
6bb33ce
Compare
Done. Thanks for the feedback! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I reviewed the scenarios and hobbies files, I'm not so sure of some of the suggestions to hobbies, but the scenarios do need some adjustments given the difficulty of several of them.
@Termineitor244 Thank you for the effort of going through each file. I really appreciate it! I've also updated the PR description with a video showing the feature in action. |
You're welcome! I can't help much with the c++, so the least I can do is help with JSON part. And the video helps much! I have been wanting this feature since I read the original issue, so thanks for implementing it! |
03f9072
to
5aa2323
Compare
5aa2323
to
005bac7
Compare
005bac7
to
2659d27
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Python code formatting:
b84db1d
to
30438f9
Compare
081d3e7
to
b531a08
Compare
Damn that's awsome! But now ( not necessarily in this PR) We need some balance documention on how to estimate what is hard and is easy for people to be able to keep adding stuff and not break the system. |
AFAICT this could be merged if conflicts fixed, are there any outstanding objections? |
Each impact of difficulty is weighted differently depending on the source of the difficulty. Environmental difficulty is mostly based on the scenario, while combat difficulty is based more on profession and mutations.
Co-authored-by: Termineitor244 <[email protected]>
Co-authored-by: Termineitor244 <[email protected]>
Co-authored-by: BrettDong <[email protected]>
Co-authored-by: Binrui Dong <[email protected]>
bb6a712
to
d618217
Compare
I'm calling this one ready. It's possible that some tweaking will be needed in future PRs, but pretty much everything is defined in JSON (with documentation) so anyone can make changes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i18n part looks good to me.
I'm afraid this is taking difficulty evaluation in a direction I don't want it to go, so I'm not going to be merging it. It suffers from two fatal flaws (that are shared by the existing system).
What I really want to see in this area is an evaluation of player stats resulting from the various traits, stats, and skill levels that are currently applied, so that we don't have to manually audit or maintain lists of difficulty evaluations. |
Since this represents a lot of work I want to throw in that I know Kevin spent a while strongly debating how to approach this PR, and this is definitely a highly wanted feature. I hope you won't feel discouraged and will keep working on this. Much of what you have is perhaps still usable, once the algorithms are worked out for dynamic calculation of difficulty. |
Summary
None
Purpose of change
Reading through #37869, I liked the suggestion of showing how selected options on character creation affect gameplay difficulty in different ways. For example: Fast Learner may be a really good trait if you're focusing on crafting, but doesn't really help as much in combat.
Describe the solution
Here's a demonstration:
2021-11-20.02-07-52.mp4
This change adds information to the character creation screen to estimate different aspects of difficulty. I've added 5 areas of difficulty (based on Erk's comments in the issue and the comments below):
These areas are defined in JSON using the
"difficulty_impact"
type:Each impact of difficulty is weighted differently depending on the source of the difficulty. Environmental difficulty is mostly based on the scenario, while combat difficulty is based more on profession and mutations.
The difficulty rating varies from Very Easy to Very Hard. These difficulty ratings are defined using in JSON using the
"difficulty_opt"
type:"value" represents the difficulty relative to other difficulty ratings (higher = harder). "color" is used to highlight the difficulty text in the character creation screen.
Difficulty can be defined for scenarios, professions, hobbies, and traits/mutations. Here's a sample definition from the "A Really Bad Day" scenario:
Each pair of strings in
"difficulty"
refers to a"difficulty_impact"
and a"difficulty_opt"
(respectively).Difficulty can also scale with skills, by defining the
"difficulty_scale"
field:The difficulty info is displayed below the point pool information:
It also looks okay on smaller screens, although the layout may need to change for really small screens (
TERMX < 100
):Describe alternatives you've considered
The layout might not be optimal. I'm terrible at design so I will defer to the experts.
Testing
For each screen in character creation, scroll through each list on each screen to verify that key elements match the defined difficulty values. See the recorded video above.
Additional context
(Holy cow, what a massive undertaking for such a seemingly simple feature: ~6000 lines of JSON and ~800 lines of cpp!)
TODO:
"difficulty_impact"
,"difficulty_opt"
,"difficulty"
, and"difficulty_scale"
difficulty_impact
anddifficulty_opt
objects