Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#5981 closed enhancement (fixed)

Add support for testing game balance in RL interface

Reported by: Brian Broll Owned by: wraitii
Priority: Nice to Have Milestone: Alpha 25
Component: Core engine Keywords:
Cc: Patch:

Description

It would be great to be able to support quantitative evaluation of game balance using the RL interface. This has been discussed on the 0 AD IRC here: http://irclogs.wildfiregames.com/%230ad-dev/2021-01-25-QuakeNet-%230ad-dev.log Specifically, if the RL interface enabled users to modify game parameters (such as cavalry speed or damage) then the game could be evaluated with different parameters and these parameters may be able to be optimized. One simple first approach may be to evaluate simple mini-scenarios where infantry simply attack each other to determine the valid range of parameter values where the scenario outcomes are desirable.

One approach that has been discussed with @wraitii has been to allow the user/developer to evaluate custom JS using the RL interface. This would enable the game parameters to be changed (eg, using custom modifiers) and then evaluated programmatically.

As a note on the safety of this approach, this feature would only be available when the --rl-interface flag is used. If players tried to use this to cheat, they would end up simply getting their game out of sync with the opponent rather than creating some desirable exploit.

Change History (3)

comment:2 by wraitii, 3 years ago

Owner: set to wraitii
Resolution: fixed
Status: newclosed

In 24962:

Add an 'Evaluate' RL endpoint, intended for dynamic game balancing

This adds a new endpoint to the RL interface for evaluating custom JavaScript. When combined with the ability to create arbitrary modifiers, this provides the required functionality for exploring quantitative game balancing.

Patch By: irishninja

Fixes #5981

Differential Revision: https://code.wildfiregames.com/D3479

comment:3 by wraitii, 3 years ago

Milestone: BacklogAlpha 25
Note: See TracTickets for help on using tickets.