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

Change AI multiplier types and defaults #4324

Closed
relent0r opened this issue Nov 2, 2022 · 9 comments · Fixed by #4525
Closed

Change AI multiplier types and defaults #4324

relent0r opened this issue Nov 2, 2022 · 9 comments · Fixed by #4525
Labels
area: AI related to AI functions

Comments

@relent0r
Copy link
Contributor

relent0r commented Nov 2, 2022

Note : I would target the Feb 2023 release for these changes

Describe the feature
Its long been considered that the cheat multiplier by default is too high, and that having a separate cheat and build multiplier that are adjustable have negative impacts on the AI.

After discussion with another AI dev, they'd like the buildmult and cheatmult to remain separate and I can see their pov. But I'll leave the description here.

I would like to suggest that we make some changes to this.
First change is to remove having the two separate options and just have a single one that does both.
Instead of having a lobby option for BuildMult and CheatMult, we simply have CheatMult.

My understanding is that the changes required are relatively low. In the SetupCheat function we could just setup the buffAffects.BuildRate.Mult to use the CheatMult configuration item. Then some other changes in regards to build conditions etc.

Doing this would resolve confusion around setting up the AI with lobby options. It is somewhat unknown that adjusting one without adjusting the other will cause AI to perform badly.
e.g if build is above cheat then it will crash its economy, like wise if cheat is above build it will overflow its economy.

The only times configuring cheat over build would benefit the AI is when its badly tuned to crash its economy easily.
LOUD has taken this approach and found user life is happier for it.

The second change is the lower the default value for the multiplier from 2.0 to 1.5 (or perhaps lower I'm not sure). We see many users pose questions about the AI where they don't know the lobby options exist so are stuck either playing against an AI that no one below a 1500 rating on specific maps is going to beat or against a non cheating AI that they roll over. The AI player base is a silent one so I imagine there are many others that hit this and just don't communicate it with the community while getting subpar experience.

The 3rd change is (this is pending more AI work that will improve AI intel gathering) that we disable the OMNI cheat by default(option IntelCheat).

The expectation is that the current AIX is setup the way it is because of the severe short comings in the AI's capability when FA was released, with the planned changes coming to the AI over the coming months I believe these defaults currently are and will be more detrimental to the non serious users player experience. Experienced players will know that they can adjust lobby options to provide a more challenging experience should they desire it.

@relent0r relent0r added the status: new issue Is added to every issue to indicate that it has not been reviewed yet label Nov 2, 2022
@Garanas Garanas added this to the Development iteration I milestone Nov 2, 2022
@Garanas Garanas added area: AI related to AI functions and removed status: new issue Is added to every issue to indicate that it has not been reviewed yet labels Nov 2, 2022
@Garanas Garanas removed this from the Development iteration I milestone Nov 2, 2022
@Garanas
Copy link
Member

Garanas commented Nov 2, 2022

This sounds good. Would this involve adjusting the lobby options, or would it also involve adjusting logic surrounding the AI?

The lobby options are defined here:

@relent0r
Copy link
Contributor Author

relent0r commented Nov 2, 2022

If sticking to just changing the defaults its purely lobbyOptions. I had a look and found nothing that would break from those.
Changing the default multipliers is purely the two lobbyOptions defaults from say 11 to 6.
The OMNI cheat change again same thing just changing the default from 1 to 2. But having the AI perform half way decent intel gathering so that it wouldn't become a vegetable for the most part is a little more tricky.

@Garanas
Copy link
Member

Garanas commented Nov 6, 2022

There's also the request to allow lower multipliers (0.9, 0.8, 0.7, etc) - what are your thoughts on that @relent0r ?

@relent0r
Copy link
Contributor Author

relent0r commented Nov 6, 2022

Yea I think if we are going down the route of meaningfully improving the AI its a valid request. I wonder if it could also provide a means of having an easy AI without needing to maintain a separate base template and corresponding builders.

From an AI developer standpoint it also provides a great way to test the AI's ability to handle low income scenarios (and in turn improve its economy management) since the majority of faf maps are high mass density.

@Garanas
Copy link
Member

Garanas commented Nov 7, 2022

With regards to various AI difficulties I was thinking we could have the AI run the same logic, but simply respond slower. As an example, an Easy AI will still micro its units, but it will respond a lot slower to change (it would be bad at kiting). An Easy AI will still respond to a power surge, but a lot slower.

That way we can create a 'natural' way of making the easy AI easier, without creating new logic. We can also create a natural way for the normal (or hard ai) to feel more challenging as they simply respond faster.

The only place where it may need specialized logic is for the ACU: an easy AI would likely not use its ACU offensively at all, while a hard AI does whatever m27 is doing (that works really well).

@relent0r
Copy link
Contributor Author

relent0r commented Nov 8, 2022

Some interesting points there. There is some good potential for setting AI preferences using the difficulty settings as flags for those numbers instead of trying to maintain multiple base templates. Once you've made it through the current post patch madness I'll put together some thoughts on how we could approach some of this (mainly the macro side), though this is where I'd certainly want some guidance from higher level players than me.

@Garanas
Copy link
Member

Garanas commented Nov 8, 2022

We'll find those players when the time comes. But I'd also like the stress that the AI doesn't necessarily need to play good, it needs to be fun to play against.

For example, I can't play against m27 AI with my brother because the moment we bump the multiplier he just strat rushes us (a month or two back). Strategically sound, but there's no fun in that in the situation because the only way to prevent that was for us to play strategically sound too. I'm 1800, but he's about 300 rating.

@Garanas
Copy link
Member

Garanas commented Nov 17, 2022

Note : I would target the Feb 2023 release for these changes

Missed that bit, apologies for merging it in too early.

@relent0r
Copy link
Contributor Author

Note : I would target the Feb 2023 release for these changes

Missed that bit, apologies for merging it in too early.

All good, I didn't include the OMNI change in that PR so no negative impact.

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

Successfully merging a pull request may close this issue.

2 participants