Cataclysm-DDA icon indicating copy to clipboard operation
Cataclysm-DDA copied to clipboard

Add Standard Combat Test mod for better monster balance testing

Open Venera3 opened this issue 3 years ago • 8 comments

Summary

Mods "Add standard combat test mod"

Purpose of change

Eyeballing monster balance can be hard, and playtesting tends to be very variable between contributors when it comes to test character loadouts and such. This adds some baseline characters to help bring everybody onto the same page.

Describe the solution

Add the Standard combat test suite misc mod, consisting of (for now) three scenarios with one profession each:

  • Evacuee, spawning a set of improvised weapons (makeshift machete, pipe mace, knife spear, and a Glock 17) and allowing the Day1 profession wearing the standard Evacuee loadout and no skills
  • Scavenger, spawning a set of lootable/non-forged weapons ( Fire axe, ~~Shigell~~ ~~Shilleg~~ bonky stick, combat knife, and an AR-15) and allowing the Midgame profession with 4 in all skills and wearing a gambeson, turnout pants, combat boots, a ballsitic vest with plates and tactical helmet/gloves
  • Survivor, spawning high-end weapons (nodachi, broadsword, mace, lucerne hammer, rapier, pike, Barrett), and allowing the Lategame profession with 8 in all combat skills and wearing nomad plate, Hub greaves/braces, a nomad bodyglove, combat boots and high steel helm/gauntlets.

Describe alternatives you've considered

Testing

Loads, gear and armor spawns as intended.

Additional context

I haven't really kept up with the armor meta lately, so if anything seems off on the loadouts let me know. If this gets established we can start asserting rules like "a midgame enemy beats a day1 toon 10/10 times" or whatever, and the melee portion of the test would probably be doable as a unit test if somebody codey has the inclination for that.

Venera3 avatar Sep 15 '22 05:09 Venera3

Spell checker encountered unrecognized words in the in-game text added in this pull request. See below for details.

Click to expand
  • A set of standard character loadouts to facilitate objective monster testing. Disables all but the test scenarios.
  • Heavy (survivor pneumatic) post-cataclysm gear, excluding rare lootables.
  • Standard lategame combat test area
  • Standard midgame combat test area
  • Starter evacuee gear, no skills - probably not going to have a good time.

This alert is automatically generated. You can simply disregard if this is inaccurate, or (optionally) you can also add the new words to tools/spell_checker/dictionary.txt so they will not trigger an alert next time.

github-actions[bot] avatar Sep 15 '22 05:09 github-actions[bot]

Is it possible to use it in autotests?

GuardianDll avatar Sep 15 '22 06:09 GuardianDll

I could see something built on it as an on-demand test like the monfaction matrix, but I'm not even going to attempt hooking it up. I don't see these as an automated tests unless we're talking very abstracted cases ("a zombie kills an unarmed survivor") to check if any melee or other changes break them.

Venera3 avatar Sep 15 '22 07:09 Venera3

To fix the basic build failure allowed scenario blacklists to overwrite each other, leaving a debug.log message. Tested with Innawoods + Backrooms locally, worked without a hitch.

Venera3 avatar Sep 15 '22 12:09 Venera3

Will the error still show for players? Because if it makes the error silent I think it's a problem

Fris0uman avatar Sep 19 '22 11:09 Fris0uman

The problem with using a red debugmsg for it is any of those triggering will fail the test automatically. The debuglog felt like an acceptable compromise in that regard.

Venera3 avatar Sep 19 '22 16:09 Venera3

But no one looks at the log, so without the errors we're missing the thing that tells players they messed up.

Fris0uman avatar Sep 20 '22 17:09 Fris0uman

Basically the options I see are:

  • Disable every mod using a scenario blacklist from the all-mods test run: pretty sure unacceptable since that will mean no total conversion mod gets tested
  • Don't use a scenario blacklist in this, but the entire point of this exercise is to go "use these loadouts", not "aight, first choose Scenario X, Y or Z"
  • Make some tests ignore debug messages: even if I dared touch that code "treating result as failure because of errors logged on load" exists for a reason, like catching JSON validation errors that don't get explicitly tested
  • Adding an easily-accessible log to it, so that if somebody loads up Innawoods before Backrooms and wonders why they can't start in the wilderness and opens a bug report it's easily solvable what the problem is

Venera3 avatar Sep 20 '22 17:09 Venera3

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not 'bump' or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered.

stale[bot] avatar Nov 02 '22 03:11 stale[bot]