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

An actual very easy AI #2179

Closed
db81 opened this Issue Apr 19, 2017 · 9 comments

Comments

Projects
None yet
6 participants
@db81
Contributor

db81 commented Apr 19, 2017

In a C&C game, if you 1v1 a Very Easy AI, it will sit in its base and keep sending tiny groups of units to you, that can be trivially defeated with a single turret. It will keep doing that for hours and barely expand, if at all, just sitting there and waiting to you to come and level its base. You can leave it for hours and it will keep sending the same dozen of soviet conscripts straight into your turret, and you'll find your base still there. I may be misremembering, but that's how it felt.

In ZK, a very easy circuit will level your base with reapers and bomb you with lichos, and it will do that in twenty minutes. Then you will queue ten flails from the start because last time the lichos nearly gave you ptsd, and in 20 minutes you will still be crushed, because you don't understand streaming economy and excess, but circuit does! Look at this poor guy: https://www.twitch.tv/videos/135979416.

I think it's vital for the steam release to have an actual very easy option, as understood by regular people. This is what it will do:

  • Slowly expand to take at most 30% of the map (probably per mex, @Anarchid suggested per metal, but newbs don't understand metal). Never expand outside that zone. "Slowly" means at least 20 minutes to get there, if not more. Build a moderate amount of defenses, but nothing bigger than an HLT.
  • Keep sending small groups of units to the newb's base every few minutes, to remind him he has an enemy. Don't build anything he won't figure out how to fight on the fly, no striders, no reapers, no impalers, no brawlers, no lichos (but maybe shadows). Don't do any fancy tactics, don't avoid defenses, don't retreat to repair. Let the newb happily watch his annihilator completely pulverize a glaive.
  • Excess. Excess while sloowly expanding to our allocated 1/3 of the map, and once there, just sit and excess completely, save for the placebo incursion every couple minutes. Don't build extra turrets. Just sit there and do nothing.
  • Maybe some extra spice, like make a Zenith at 40 minutes and shell the newb's base every now and then, but not lethally. Or eventually try to build a silo and lazily send tacnukes on top of player's fac. Perhaps even the dreaded lichos, if you make a run once in ten minutes and start after the 30 minute mark.

The main point of this is to have an AI that won't become progressively harder to defeat the longer you leave it alone. You cannot solve that by taking a normal AI and slowing its expansion. It needs to excess on purpose and never graduate to building harder to defeat armies.

This is also the AI that should be used for most initial missions, instead of hacky attempts to coerce one that tries to play an actual game into not killing the player too fast in a glorified tutorial.

@Anarchid

This comment has been minimized.

Show comment
Hide comment
@Anarchid

Anarchid Apr 19, 2017

Member

Perhaps gutting Circuit to such extents is too much and some minimal LuaAI could do it just as well. Or just a slightly damaged CAI, even.

Member

Anarchid commented Apr 19, 2017

Perhaps gutting Circuit to such extents is too much and some minimal LuaAI could do it just as well. Or just a slightly damaged CAI, even.

@DeinFreund

This comment has been minimized.

Show comment
Hide comment
@DeinFreund

DeinFreund Apr 19, 2017

Member

CAI but remove caretaker and factory construction? No striders, constantly excessing factory and no defense avoidance. If needed even remove constructors so it won't be able to expand or porc.

Member

DeinFreund commented Apr 19, 2017

CAI but remove caretaker and factory construction? No striders, constantly excessing factory and no defense avoidance. If needed even remove constructors so it won't be able to expand or porc.

@ashdnazg

This comment has been minimized.

Show comment
Hide comment
@ashdnazg

ashdnazg Apr 19, 2017

Contributor

btw, another lesson from that game is to offset circuit's difficulty descriptions to: Medium, Hard, Harder, Very Hard, Madness
or something like this that better reflect the actual difficulties.
A level or two may be dropped maybe?

Contributor

ashdnazg commented Apr 19, 2017

btw, another lesson from that game is to offset circuit's difficulty descriptions to: Medium, Hard, Harder, Very Hard, Madness
or something like this that better reflect the actual difficulties.
A level or two may be dropped maybe?

@DeinFreund

This comment has been minimized.

Show comment
Hide comment
@DeinFreund

DeinFreund Apr 19, 2017

Member

Even KGB which decisively beats all of the circuits only manages a competitive rating of around 1450 Elo. While I agree that an easier "easiest" AI would be nice to have, there's no need to make this a children's game like some game publisher's like to do. There's no point calling something "very hard" or "madness" if a majority of players can win it. Instead there should be a significant difference between difficulty levels.

Member

DeinFreund commented Apr 19, 2017

Even KGB which decisively beats all of the circuits only manages a competitive rating of around 1450 Elo. While I agree that an easier "easiest" AI would be nice to have, there's no need to make this a children's game like some game publisher's like to do. There's no point calling something "very hard" or "madness" if a majority of players can win it. Instead there should be a significant difference between difficulty levels.

@ashdnazg

This comment has been minimized.

Show comment
Hide comment
@ashdnazg

ashdnazg Apr 19, 2017

Contributor

Yeah, that's why I suggested dropping some levels. I feel like they're not distinct enough.
Note that it's better to mark something as slightly harder than it is than to mark it as worse than it is

Contributor

ashdnazg commented Apr 19, 2017

Yeah, that's why I suggested dropping some levels. I feel like they're not distinct enough.
Note that it's better to mark something as slightly harder than it is than to mark it as worse than it is

@db81

This comment has been minimized.

Show comment
Hide comment
@db81

db81 Apr 20, 2017

Contributor

I don't think we need to dumb anything down or go out of our way to misconstrue it as much harder than it is. As long as our very easy option is easy for someone who's never played an rts seriously and is unfamiliar with zk, we're fine. Even a big jump from that to easy circuit (because now it actually expands and tries not to excess) is fine, now it's a fun challenge to beat the next level, and not OMG IMPOSSEBLE GAEM VERY EZ KILLS ME ALWYAS.

Contributor

db81 commented Apr 20, 2017

I don't think we need to dumb anything down or go out of our way to misconstrue it as much harder than it is. As long as our very easy option is easy for someone who's never played an rts seriously and is unfamiliar with zk, we're fine. Even a big jump from that to easy circuit (because now it actually expands and tries not to excess) is fine, now it's a fun challenge to beat the next level, and not OMG IMPOSSEBLE GAEM VERY EZ KILLS ME ALWYAS.

@sprunk sprunk added the task label Apr 20, 2017

@GoogleFrog

This comment has been minimized.

Show comment
Hide comment
@GoogleFrog

GoogleFrog Apr 21, 2017

Contributor

Go ahead, configure the very easy circuit to do this. The very easy circuit could even be moved up to be the easy circuit. IvoryKing made the circuit configs and he doesn't do much other development so I don't expect it to be an onerous task technically. Talk to IK and lamer to learn how to do it.

Contributor

GoogleFrog commented Apr 21, 2017

Go ahead, configure the very easy circuit to do this. The very easy circuit could even be moved up to be the easy circuit. IvoryKing made the circuit configs and he doesn't do much other development so I don't expect it to be an onerous task technically. Talk to IK and lamer to learn how to do it.

@GoogleFrog

This comment has been minimized.

Show comment
Hide comment
@GoogleFrog

GoogleFrog Jul 10, 2017

Contributor

This ticket is complete. Very Easy has the following changes:

  • Set build_delay of 40s. Constructors (including factories) sit idle for 40 seconds after finishing their last task.
  • mex_max of 15%, this is a hard limit on how many mex spots circuit takes. This limit would be better as an absolute number because it is still a bit too effective on maps like Comet Catcher.
  • Set limits on every available mobile unit. The limits were written on a whim on a pass through the file. Generally Very Easy will build no more than 4 copies of a unit and no more than 600 metals worth.
  • Removed access to Gunships, Planes, Striders and superweapons.
  • Removed access to particularly heavy/weird units. The heaviest normal unit is Reaper. Bombs and status effect units are either disabled or limited to one.
  • Reverted IvoryKing's stupification of the unit counters. Previously Very Easy would make skirmishers in response to raiders, assaults in response to skirmishers etc... I think this could mislead players and is thankfully no longer required.
  • Somehow, either through my changes or work already present by IvoryKing, Very Easy makes a small army and patrols it near its base or in the middle of the map. It very rarely attacks and only does so after a long time. I want to know why it does this so I can make sure it does this consistently and to control it.
  • Sends raiders in one by one past about minute 5.

The gaps between the four difficulty levels may be poorly defined, if so make a ticket. I made Easy easier and Hard has improved with the latest stable according to @cleanrock.

Contributor

GoogleFrog commented Jul 10, 2017

This ticket is complete. Very Easy has the following changes:

  • Set build_delay of 40s. Constructors (including factories) sit idle for 40 seconds after finishing their last task.
  • mex_max of 15%, this is a hard limit on how many mex spots circuit takes. This limit would be better as an absolute number because it is still a bit too effective on maps like Comet Catcher.
  • Set limits on every available mobile unit. The limits were written on a whim on a pass through the file. Generally Very Easy will build no more than 4 copies of a unit and no more than 600 metals worth.
  • Removed access to Gunships, Planes, Striders and superweapons.
  • Removed access to particularly heavy/weird units. The heaviest normal unit is Reaper. Bombs and status effect units are either disabled or limited to one.
  • Reverted IvoryKing's stupification of the unit counters. Previously Very Easy would make skirmishers in response to raiders, assaults in response to skirmishers etc... I think this could mislead players and is thankfully no longer required.
  • Somehow, either through my changes or work already present by IvoryKing, Very Easy makes a small army and patrols it near its base or in the middle of the map. It very rarely attacks and only does so after a long time. I want to know why it does this so I can make sure it does this consistently and to control it.
  • Sends raiders in one by one past about minute 5.

The gaps between the four difficulty levels may be poorly defined, if so make a ticket. I made Easy easier and Hard has improved with the latest stable according to @cleanrock.

@GoogleFrog

This comment has been minimized.

Show comment
Hide comment
@GoogleFrog

GoogleFrog Jul 10, 2017

Contributor

I've also remove all the retreat to repair behaviour ZeroK-RTS/Chobby@09bcd81.

Contributor

GoogleFrog commented Jul 10, 2017

I've also remove all the retreat to repair behaviour ZeroK-RTS/Chobby@09bcd81.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment