Loading...
  OR  Zero-K Name:    Password:   

Some feedback about how AIs of each difficulty should perform

63 posts, 2599 views
Post comment
Filter:    Player:  
Page of 4 (63 records)
sort
6 years ago
After beating numerous AIs on Very Easy difficulty without much issue, I decided to try out the next step up in difficulty... and I find the difficulty jump between Very Easy and Easy to be way too big for my liking, as while I didn't have much trouble singlehandedly taking on 4 Very Easy AIs (at least for a beginner to the game), I keep getting my butt handed to me by the so-called "Easy" AIs. I get that AIs need to incorporate new more advanced and effective gameplay habits as their difficulty levels increase (like expanding early and often, retreating damaged units, going through the extra effort of protecting mexes and workers from harm, increasing the size of raiding parties, switching from using ground units to using air units, adapting to what the player has, etc.), but not too many steps at once, especially on the easier difficulties.

Anyways, this is what I'd imagine a player-friendly well-designed AI would probably do based on their difficulty levels:

Super Easy: (The pushover who doesn't know how to play an rts game, let alone the game's mechanics, though it still tries to send units to attack to keep games interesting)
- Plays the role of a dummy player, who's only objective is for new players to practice the basics of rts games with
- Doesn't expand to other mexes
- Doesn't link their mexes together to maximize overdrive efficiency
- Doesn't reclaim
- Doesn't build any defenses at all
- Picks one land factory type, and one sea factory type, and sticks with them, choosing one as their starting factory (which they'll rebuild as soon as possible if destroyed), and not building any other factories
- Doesn't build caretakers or additional constructors
- Will not build heavy units until after 20 minutes pass by in-game
- Will never build cloaked units (except for cheap scouts, raiders, or constructors)
- Sends out individual units to attack enemies
- Attacks enemies without regard for the presence of any defenses the enemy has
- Doesn't retreat damaged units or constructors if under attack
- Doesn't adapt to player unit mix at all

Very Easy: (A bit less of a pushover, since it now builds caretakers and constructors to speed up construction and production, along with defenses to protect its base)
- Plays the role of a turtle by focusing almost solely on fortifying their base (and biding their time until they have a superweapon or strider built)
- Doesn't expand to other mexes
- Doesn't link their mexes together to maximize overdrive efficiency
- Doesn't reclaim
- Picks one land factory type, and one sea factory type, and sticks with them, choosing one as their starting factory (which they'll rebuild as soon as possible if destroyed), and not building any other factories
- Does build caretakers or additional constructors, but only for assisting its current factory or base construction jobs
- Does build defenses to fortify their base, though doesn't build shields, anti-nukes, sneaky petes, or radar or sonar even (so it'll be vulnerable to submerged units)
- Builds anti-air, even when the enemy has no air units or factories on the battlefield
- Will not build heavy units until after 16 minutes pass by in-game
- Will not build cloaked units (except for cheap scouts, raiders, or constructors) until after 8 minutes pass by in-game
- Sends out individual units to attack enemies
- Attacks enemies without regard for the presence of any defenses the enemy has
- Doesn't retreat damaged units or constructors if under attack
- Doesn't adapt to player unit mix at all

Somewhat Easy: (Starts to expand to other mexes, albeit recklessly, and will now try to build striders and cloaked units)
- Recklessly tries to claim as many mexes as it can
- Builds additional constructors for claiming mexes
- Doesn't link their mexes together to maximize overdrive efficiency
- Doesn't reclaim
- Picks one land factory type, and one sea factory type, and sticks with them, choosing one as their starting factory (which they'll rebuild as soon as possible if destroyed), and not building any other factories with the exception of strider hubs (which they'll start building after 20 minutes pass)
- Does build caretakers, but only for assisting its current factory or base construction jobs
- Does build defenses to fortify their base, and radar and sonar to detect enemies earlier, though doesn't build shields, anti-nukes, or sneaky petes
- Builds anti-air, even when the enemy has no air units or factories on the battlefield
- Will not build heavy units until after 12 minutes pass by in-game
- Will not build cloaked units (except for cheap scouts, raiders, or constructors) until after 6 minutes pass by in-game
- Doesn't bother to protect its constructors with escorting units while claiming mexes
- Doesn't bother to protect its mexes from being raided (unless they're close to their spawn point)
- Sends out individual units to attack enemies
- Attacks enemies without regard for the presence of any defenses the enemy has
- Doesn't retreat damaged units or constructors if under attack
- Doesn't adapt to player unit mix at all

Slightly Easy: (Although still a reckless expansionist, it starts to learn about the importance of attacking players with larger raiding parties of units, and finding and exploiting weaknesses in enemies' defenses, rather than needlessly sending individual units to die)
- Recklessly tries to claim as many mexes as it can
- Builds additional constructors for claiming mexes
- Doesn't link their mexes together to maximize overdrive efficiency
- Doesn't reclaim
- Picks one land factory type, and one sea factory type, and sticks with them, choosing one as their starting factory (which they'll rebuild as soon as possible if destroyed), and not building any other factories with the exception of strider hubs (which they'll start building after 16 minutes pass)
- Does build caretakers, but only for assisting its current factory or base construction jobs
- Does build defenses to fortify their base, and radar and sonar to detect enemies earlier, though doesn't build shields, anti-nukes, or sneaky petes
- Doesn't build anti-air unless attacked by air units
- Will not build heavy units until after 8 minutes pass by in-game
- Will not build cloaked units (except for cheap scouts, raiders, or constructors) until after 6 minutes pass by in-game
- Doesn't bother to protect its constructors with escorting units while claiming mexes
- Doesn't bother to protect its mexes from being raided (unless they're close to their spawn point)
- Sends out small raiding parties of units to attack enemies
- Will try to avoid defenses when attacking
- Doesn't retreat damaged units or constructors if under attack
- Doesn't adapt to player unit mix at all (unless the player has air units)

Normal: (Although it somewhat reverts to more of a creeping turtle style of gameplay, it starts to realize the value of protecting undefended mexes, reclaiming wreckage, and retreating damaged and defenseless units so that they can be repaired, and may now build gunship or airplane plants to potentially throw enemy players off-guard. Meant to be a challenge befitting an intermediate-skilled player.)
- Cautiously tries to claim as many mexes as it can
- Builds additional constructors for claiming mexes
- Focuses on protecting each of its mexes with a single Lotus or Defender, then linking their mexes with other claimed mexes nearby to maximize overdrive efficiency, before moving on to claim other unclaimed mexes
- Will reclaim only if it's within their territory
- Picks one land factory type, and one sea factory type, and sticks with them, choosing one as their starting factory (which they'll rebuild as soon as possible if destroyed), and not building any other factories with the exception of strider hubs (which they'll start building after 16 minutes pass) and airplane or gunship plants (which they'll start building after 12 minutes pass)
- Will build caretakers at their base to repair damaged units, as well as to assist with factory production or base construction
- Will build all manner of defenses, except for sneaky petes
- Doesn't build anti-air unless attacked by air units
- Will not build heavy units until after 6 minutes pass by in-game
- Will not build cloaked units (except for cheap scouts, raiders, or constructors) until after 4 minutes pass by in-game
- Doesn't bother to protect its constructors with escorting units while claiming mexes
- Sends out small raiding parties of units to attack enemies
- Will try to avoid defenses when attacking
- Retreats damaged units if below 33% health
- Retreats constructors if under attack (unless they have escorts, or are trying to repair damaged structures within their main base)
- Doesn't adapt to player unit mix at all (unless the player has air units)

Slightly Hard: (Now it'll try to protect its constructors with a few escorts, and may now assault enemy mexes with larger raiding parties)
- Cautiously tries to claim as many mexes as it can
- Builds additional constructors for claiming mexes
- Focuses on protecting each of its mexes with a single Lotus or Defender, then linking their mexes with other claimed mexes nearby to maximize overdrive efficiency, before moving on to claim other unclaimed mexes
- Will reclaim only if it's within their territory
- Picks one land factory type, and one sea factory type, and sticks with them, choosing one as their starting factory (which they'll rebuild as soon as possible if destroyed), and not building any other factories with the exception of strider hubs (which they'll start building after 14 minutes pass) and airplane or gunship plants (which they'll start building after 10 minutes pass)
- Will build caretakers at their base to repair damaged units, as well as to assist with factory production or base construction
- Will build all manner of defenses, except for sneaky petes
- Doesn't build anti-air unless it detects enemy air units, or an enemy-controlled airplane or gunship plant
- Will not build heavy units until after 4 minutes pass by in-game
- Will not build cloaked units (except for cheap scouts, raiders, or constructors) until after 3 minutes pass by in-game
- Will try to protect its constructors with a handful of escorting units while claiming mexes
- Sends out small-to-moderate-sized raiding or assaulting parties of units to attack enemies
- Will try to avoid defenses when attacking
- Retreats damaged units if below 65% health, unless they're assaulting the enemy
- Retreats constructors if under attack (unless they have escorts, or are trying to repair damaged structures within their main base)
- Doesn't adapt to player unit mix at all (unless the player has air units)

Somewhat Hard: (This is where the AI should start playing like a seasoned rts player would, taking advantage of every game mechanic in the game, including stealth, mixing units from different factories, using transports effectively, playing a bit more unpredictably, and overall, applying lots of pressure towards enemy players. A fitting foe for a seasoned player that's adept at the game... and yet this AI could be improved upon more...)
- Aggressively tries to claim and secure as many mexes as it can
- Builds additional constructors for claiming mexes
- Focuses on protecting each of its claimed mexes with a single Lotus or Defender before moving on to claim other unclaimed mexes, only linking their claimed mexes together if there aren't any readily-available mexes to claim and secure
- May send constructors along with raiding or assaulting parties in order to reclaim wreckage on the fly
- Isn't restricted on what factories to produce, when to produce them, or even which factory to start with (except for strider hubs), so it can easily opt to mix and match units from multiple factories
- Will build caretakers at their base, and near mexes, to repair damaged units, as well as to assist with factory production or base construction
- Will build all manner of defenses
- Doesn't build anti-air unless it detects enemy air units, or an enemy-controlled airplane or gunship plant
- May build heavy or cloaked units at any time
- Will try to protect its constructors with a handful of escorting units while claiming mexes or reclaiming wreckage from the battlefield
- Sends out small-to-moderate-sized raiding or assaulting parties of units to attack enemies
- Will try to avoid defenses when attacking
- Retreats damaged units if below 65% health, unless they're assaulting the enemy
- Retreats constructors if under attack (except if they're reclaiming in the field, or trying to repair damaged structures)
- Doesn't adapt to player unit mix at all (unless the player has air units)

Very Hard: (What could make an already-challenging AI even more difficult without getting into cheating territory? How about actively trying to counter what the player already has on the field?)
- Aggressively tries to claim and secure as many mexes as it can
- Builds additional constructors for claiming mexes
- Focuses on protecting each of its claimed mexes with a single Lotus or Defender before moving on to claim other unclaimed mexes, only linking their claimed mexes together if there aren't any readily-available mexes to claim and secure
- May send constructors along with raiding or assaulting parties in order to reclaim wreckage on the fly
- Isn't restricted on what factories to produce, when to produce them, or even which factory to start with (except for strider hubs), so it can easily opt to mix and match units from multiple factories
- Will build caretakers at their base, and near mexes, to repair damaged units, as well as to assist with factory production or base construction
- Will build all manner of defenses
- Doesn't build anti-air unless it detects enemy air units, or an enemy-controlled airplane or gunship plant
- May build heavy or cloaked units at any time
- Will try to protect its constructors with a handful of escorting units while claiming mexes or reclaiming wreckage from the battlefield
- Sends out small-to-moderate-sized raiding or assaulting parties of units to attack enemies
- Will try to avoid defenses when attacking
- Retreats damaged units if below 65% health, unless they're assaulting the enemy
- Retreats constructors if under attack (except if they're reclaiming in the field, or trying to repair damaged structures)
- Actively changes production choices in response to what it has seen enemy players use on the field (for example, building riots to counter raiders, building skirmishers to counter riots or assaults, etc.)

Super Hard: (Finally, giving the AI what is essentially omniscience would probably be what would make it the most difficult opponent any player could ever face without delving into such cheats as artificial mass, energy, production, etc. handicaps)
- Aggressively tries to claim and secure as many mexes as it can
- Builds additional constructors for claiming mexes
- Focuses on protecting each of its claimed mexes with a single Lotus or Defender before moving on to claim other unclaimed mexes, only linking their claimed mexes together if there aren't any readily-available mexes to claim and secure
- May send constructors along with raiding or assaulting parties in order to reclaim wreckage on the fly
- Isn't restricted on what factories to produce, when to produce them, or even which factory to start with (except for strider hubs), so it can easily opt to mix and match units from multiple factories
- Will build caretakers at their base, and near mexes, to repair damaged units, as well as to assist with factory production or base construction
- Will build all manner of defenses
- Doesn't build anti-air unless it detects enemy air units, or an enemy-controlled airplane or gunship plant
- May build heavy or cloaked units at any time
- Will try to protect its constructors with a handful of escorting units while claiming mexes or reclaiming wreckage from the battlefield
- Sends out small-to-moderate-sized raiding or assaulting parties of units to attack enemies
- Will try to avoid defenses when attacking
- Retreats damaged units if below 65% health, unless they're assaulting the enemy
- Retreats constructors if under attack (except if they're reclaiming in the field, or trying to repair damaged structures)
- Actively changes production choices in response to what enemy players have on the field, even if they're not seen (for example, building riots to counter raiders, building skirmishers to counter riots or assaults, etc., even when they're hidden by an Eraser or Sneaky Pete)
- Knows where cloaked units are located, and will move units there to force them to reveal themselves.



And that's all for my opinion on what this game's AI should probably play like. Since I'm currently new to the game, I'm anticipating to see some suggestions for changes in AI behavior from more experienced players.
+0 / -0

6 years ago
Current Very Easy is supposed to be the pushover dummy player with multiple hard limits on what it can do. It's more of a sandbox to learn the UI and get familiar with units than an actual AI opponent.
+0 / -0
Thanks for the feedback! ZK needs input from new players; improving the new player experience is one of the main development goals right now.

The devs have discussed this somewhat already: https://github.com/ZeroK-RTS/Zero-K/issues/2179

I'm not a dev, or new, but here's my two cents:

Having nine levels is probably overkill. I'd keep it to four as we have now, but probably with considerable tweaking, preferably based on empirical data from actual new players. I might rename "Very Easy" to "Training" or somesuch, and rename "Medium" to "Normal".

How hard should each level be? "Training" should be as you, Sprung, and the ticket above describe: nearly a sandbox, letting the player mess around with the UI and the mechanics without the AI trying to beat them, but providing something for the player to attack and something for the player to defend against. Is the current Very Easy there yet? Unknown. There's been some testing (see http://zero-k.info/Battles/Detail/462350 ) but more feedback is needed.

For the other levels, rather than specifying particular behavior, I'd categorize them this way: "Easy" should beat a player that's treating it like a sandbox (i.e. the AI isn't so crippled that it isn't trying to win), but lose to anyone that's actually trying to beat it. Easy should be a gimme. This will boost new players' confidence and give them a positive experience with the game right from the start. "Normal" should beat any player that hasn't yet grasped the fundamentals of ZK strategy (expand, raid, don't porc, attack in strength, don't suicide) but should lose to anyone who has, even if they execute those fundamentals poorly. This will give new players a challenge and will encourage them to ask other players what they're doing wrong. Once they've learned a few things, they'll beat it and be ready to move up. "Hard" should be the unfettered AI playing as best the AI authors can make them.

Exactly how best to achieve those performance criteria is a task best left to the AI authors. AIs don't play like humans do, they have unique strengths and weaknesses that don't necessarily map to what you'd expect to see in a strong or weak human opponent.
+1 / -0

6 years ago
quote:
- Knows where cloaked units are located, and will move units there to force them to reveal themselves.


AIs generally don't cheat around here which I think is nice to keep it this way. If somebody is good enough to beat the hard AI he might wanna look into some of the user-made AIs or just stack more AIs against himself.
+0 / -0


6 years ago
Excellent feedback USrankShadowWolfTJC. I have not had time to go through it all so, just another question, where would you place the current Very Easy, Easy, Medium and Hard on your scale? I've paid attention to Very Easy to make it sufficiently easy and Hard is being freely considered by the AI developers to be as hard as possible. I've suspected that Easy was too large of a jump from Very Easy but haven't looked at it yet.

Also, I think we should avoid all cheating.
+0 / -0
Do you guys think you have room for a 5th difficulty level? If I had to condense these 9 difficulty levels (which draw modeling inspiration from the 9 scaling difficulty levels found in both Super Smash Bros. and Kid Icarus: Uprising) into 5 difficulty levels, I'd probably want to suggest adapting the following suggested difficulty levels into one out of 5 gradually-increasing difficulty levels:

Very Easy -> Very Easy:
- Reason being is that it'd barely be a step up from being a total noob (which the Super Easy difficulty would've tried to emulate), since while it would build defenses to protect its main base, and while it would use constructors to speed up its production, it wouldn't very easily speed up its metal income to compensate. Sure, it probably wouldn't excess in metal, but it'd still have a poor economy compared to players who make the decision to claim additional mexes (even if they neglect in protecting these mexes with basic defenses). Even without the handicaps to its production rate, it'd be blind to the existence of player-built defenses.

Somewhat Easy -> Easy:
- Chosen because it'd be primarily designed to teach new rts players the importance of having a bigger metal income than your opponent, since it'd be the easiest suggested difficulty level where the AI would attempt to claim mexes outside of its starting location. What would make it easy for newer players who are starting to familiarize themselves with the way that Zero-K's economy system works (along with other basic rts concepts as spending resources to produce units and build structures) is that, aside from still being blind to the existence of player-built defenses, the AI would never put in the extra effort of building defenses to protect its more distant mexes from players' raiders.
- Currently, the Very Easy AI seems to capture mexes outside of its territory, albeit not as quickly as what I'd expect out of an ideal Easy AI for an rts game, and it also seems to protect these mexes with basic defenses, which seems inappropriate for an Easy difficulty level.

Normal -> Normal:
- Chosen because not only would it take additional steps to ensure the safety of its mexes and constructors (even if it means slowing down the rate at which it acquires new mexes), and not only would it take advantage of reclaiming metal from wreckage (even if it's limited to being near its territory), it would be designed to challenge intermediate-skilled players to adapt to changing battlefield situations, whilst still being outclassed by more experienced players, since this would be the easiest AI that would field air units in addition to ground or sea units. Also, like the Slightly Easy AI suggestion, it would attack with small raiding parties instead of individual units, and it would be mindful of the existence of player-built defenses, so players would need to learn to counter AI-controlled units' attempts to move around their base defenses.
- To my knowledge, and with some key differences, the current Easy AI seems to perform similarly to my idea of a Normal AI.

A mix of Slightly Hard and Somewhat Hard -> Hard:
- I'm probably leaning more towards the Somewhat Hard AI difficulty suggestion, but I feel that an AI of this difficulty level, that would supposedly give experienced players, who are at least adept at Zero-K's mechanics, a worthy challenge, should be an aggressive, but not reckless, expansionist, and should mix units from different factories in complementary and somewhat unpredictable ways, both of which my suggested Somewhat Hard AI would've done. Moreover, I feel that an AI of this difficulty would need to get in the habit of escorting its constructors with units to protect them from enemy raiders and harassers, pressure players with larger assault forces, and even be willing to sacrifice units if it'll mean giving itself an edge over its opponents, all of which both the Slightly Hard and Somewhat Hard AIs would do. That said, I'd still probably want to avoid programming the AI to reclaim wreckage during a heated battle or assault, more like the Slightly Hard AI suggestion, since that seems like the kind of tactic that only a very skilled rts player could pull off.

Very Hard -> Very Hard:
- This additional AI difficulty was suggested by me for 3 reasons: 1, So that AI programmers would be given the freedom to push the limits of an AI's performance without resorting to cheating (possibly to showcase their AI-programming prowess), 2, So that those few elite players who have mastered the game, and who are some of the best players within the community, could still enjoy a good challenge without having to resort to fighting against multiple AIs, and 3, so that less skilled players could find an AI that they could learn from whilst spectating matches (like what I recently did when I pitted a Hard AI against an Easy AI in order to learn what I needed to do better at, which, by the way, was to save mex overdriving until after I've captured as many mexes as possible, and to be prepared to send raiding parties on suicide missions in order to give my economy more of an edge over the opponent's economy).
- In addition to performing such daring moves as ordering some of its constructors to reclaim wreckage while in the middle of a firefight (like what the Somewhat Hard AI suggestion would've done), it would actively attempt to change its factory production queues to counter what the enemy is fielding (such as, for example, countering skirmishers or artillery with raiders, countering riots or assaults with skirmishers, countering raiders with riots, or countering a balanced mix of unit types with a strong focus on either raiders, riots, or skirmishers), and would even switch up which factories have production priorities over others every now and then (such as, for example, setting air unit production as higher priority over all others one moment, then setting land unit production as higher priority over all others the next moment) in an effort to make itself more unpredictable to the player.



Interesting tale that I'd like to share: When I was developing the Contingency mod for Warzone 2100, I took the AI that was bundled with the game's download (NullBot), and tweaked it so that not only would it take advantage of the content that would be introduced with the mod, it'd play more aggressively, intelligently, and unpredictably. I still have the video of the AI (along with the mod) uploaded to YouTube here:
+0 / -0
6 years ago
Oh, and AUrankAdminGoogleFrog, while I've already formed an opinion on where the current Very Easy and Easy AIs should be placed, I'm not exactly sure where to put the Normal and Hard AIs, since I'm not yet experienced enough to deal with them.
+0 / -0

6 years ago
There are two main issues with this proposal:
- Way too many AI difficulty levels. I think 3 is probably fine for most users, and 5 is a maximum that a game should have.
- There should be no specific guidelines about higher difficulty level AIs, outside that they try to play optimally and don't cheat.

Generally, if someone wants to write AIs that play well, they should disregard this entire thread and simply optimize for winning, rather than user experience.
+2 / -0
I'm not going to put a hard limit on the number of AI difficulty levels. If you can make 9 difficulty levels which each justify their existence then I'm not going to get in the way. To justify the existence of a difficulty level I would require that it be substantially distinct from its adjacent levels. Here are some factors:
  • A player who has advanced just enough to reliably defeat level X should experience a new challenge when they switch to playing level X + 1.
  • Level X + 1 should reliably beat level X (possibly, the first factor is more important).

If we have players that can destroy level X but for which level X + 1 is a bit beyond them then we don't have enough difficulty levels. The current level spacings definitely need work. We may be able to get away with four well spaced levels or more levels may be required. I don't know, I have barely looked at fixing the difficulty of Easy and Medium. The question of "how many levels" is one of the last questions that should be asked. I think the better approach is to make some well spaced levels because in doing this we will discover how many levels are required. It is not worthwhile to pick out issues with this proposal because the correct approaches will be uncovered by whoever puts the work in. We just need to keep in mind the general requirements.

USrankShadowWolfTJC you seem keen. Your large list of 9 levels and their parameters is a starting point but you've listed some behaviours that are not all that important and others which aren't supported by the current configurations. It would be better to start messing around with the AIs, just to see what you come up with.

The simple way to edit the AI is to open "Spring/AI/Skirmish/CircuitAIHard32/stable/config/circuit.json" (or "Spring/AI/Skirmish/CircuitAIHard64/stable/config/circuit.json" for 64 bit linux) in a text editor. The Spring directory can be found through Help -> Report a bug -> Local data. Changes to these files will be used by the hard AI on each game launch. I don't know much about the parameters beyond what I have learned experimenting to make Very Easy. Sources on the internet will know about json.

The simple editing suffers from a flaw: if the AIs are updated then your changes will be overridden. To avoid this copy everything from your edited AI into a new folder, such as "Spring/AI/Skirmish/CircuitAICustom32". Then edit "Spring/AI/Skirmish/CircuitAICustom32/stable/AiInfo.lua" in a text editor to update the shortName and name of the AI to not conflict with hard. To see your custom AI look in the lobby settings, under lobby or developer, and find the tickbox that reveals unsupported AIs in the AI selection menu.

I don't know how to configure most of the behaviour you suggest but I think a lot of it is possible. Try using a diff tool on Very Easy and Hard to see the differences that make Very Easy sandboxy.

Now for some comments on design.
  • I think there should be a clear difficulty level at which the AI ceases to have unit restrictions. AIs beyond this level should offer a full game with all the units. The AIs on the edge of this divide can be easier than the hardest AIs due to poor decision making.
  • Wyvern is really scary and Easy seems to rush Wyverns.
  • I've watched some new players, and gathered some feedback, and I think that Very Easy is an appropriate AI for the easiest difficulty level. New players do not report having any problems beating it.
  • The specification for the hardest difficulty level should simply be "win the game". Nobody is perfect at the game so we can't specify further. I think AI developers tend to be motivated by making AIs that are as strong as possible and the hardest difficulty can be reserved for this purpose. If the AI is substantially improved at some future point then this could warrant an extra difficulty level at the top.
+5 / -0
My experience playing the ultra minimalistic first mission in the wip campaign tells me that even when Circuit is severely crippled in its unit production, it's still difficult to beat it using the same tech - because its unit handling remains not crippled at all.

It fights, retreats, repairs, groups up, judges targets reasonably, avoids losing engagements. This does not make it particularly Easy.

I do not have any good thoughts on how to cripple that, however. Perhaps killing off entire modules with a switch could work, so instead of all the fancy behaviours it just fight-moves into the middle of known enemy territory.
+1 / -0
Without specifying how many levels there should be, I'd like to make an observation about the bottom two levels.

The bottom level should never win. It should never try to win. It should let players muck around for as long as they like without any danger that they'll be overrun. I think we're all in agreement here.

The second level should try to win, but should be beatable even by very new players.

What does that mean?

Take a look at http://zero-k.info/Battles/Detail/463694 . This is a match between two very new players. Observe their gameplay:
  • They barely expand. They leave easy-to-reach mex clusters completely untouched.
  • They wildly overbuild defenses.
  • They don't raid.
  • They build useless units (Shipyard and Sirens).
  • They don't use the units they build (huge piles of idle Glaives, Wyvern lazily circling).
  • They build midgame and endgame units from the very start (Crabe, Wyvern, Bertha).
  • They don't scout. They build no radar. They have no map visibility, no map awareness, no intel.
  • They suicide units - huge armies of Glaives eaten up by Stardusts like a bag of Cheetos.
  • They excess metal.

Needless to say, they have no idea about unit counters and unit composition; it's not even a concept for them. And despite both sides building air, nobody builds any anti-air (until the very end, when the winner is trying hard to kill the last three enemy units, which happen to be airplanes).

Essentially, these new players aren't playing Zero-K as we know it; they're playing Build-an-army Kill-the-base. And you know what? That's just fine. This was the tenth game for these two players. That means that they're having fun. If ZK were too hard, or too boring, or too confusing, they would have given up after two or three games. But they've played ten games, so there must be something about ZK they find appealing, even if right now they still have no idea how to play effectively.

This is our target audience.

Now, think about what will happen if one of these players goes up against CircuitAI in its current Easy configuration. From the first minute, their defensive towers will be picking off raiders and they'll be feeling very happy with how smart and effective they are ("Look, I'm beating the AI!"). Within six minutes the AI will own the map, but the players won't know it. Within ten minutes their bases will be falling to Jacks and they'll have no idea why.

Our target audience cannot hope to win against the current Easy AI. But they should. Because they deserve to have fun too, and we should give them a single-player AI opponent that they can have fun playing against. Losing every single game in under fifteen minutes with no idea why is not fun; it's a recipe for losing players after their fourth game.

In short: Easy needs to be really, really, really easy because new players are really, really, really bad at this game. We need an opponent they can beat so they'll stick around and get better.
+2 / -0
6 years ago
Well, I just bore witness to an Easy AI schooling a Hard AI on Obsidian 1.3, since the Hard AI made a number of stupid decisions that all added up to easily cost it the win, such as deciding to build Big Berthas in the valley without micromanaging them to fire upon enemies that the Big Berthas have a line of sight to, causing them to mindlessly shoot at the canyon's walls, or doing a lackluster job at countering the Grizzlies, Sumos, Firewalkers, and Wyverns that the Easy AI built and sent against the Hard AI. Although it might've built counters to said units (such as Spectres or Wyverns for the heavy ground units, and lots of anti-air units to counter the Wyverns), you'd think that it'd be smart enough to send those units to quickly destroy the very units that they were built to counter, but nope, they just waste their shots on smaller, weaker units, and/or send them unescorted, only for them to stumble upon units that could easily counter them in turn (such as a mass of Bandits or Rogues versus Spectres).

With AI this stupid, I'd say that our current Hard AI wouldn't be cut for my idea of a Very Hard AI, since it just doesn't do a good enough job at adapting to and countering what its enemy is fielding against it. Heck, I'm also reluctant to say that the Hard AI would fit my idea of a Hard AI, since it doesn't seem to care much about building additional factories to support the main factory that it chose from the start, whereas the Firewalkers that the Easy AI started fielding from a Jump/Specialist Plant that it built during the middle of the match seemed to pair up well with the Shield Bots that the Easy AI started the match off with.

In fact, that gives me an idea on how to improve the AI's performance to be more worthy of fitting within my idea of a Hard AI: have it build additional types of factories for the main purpose of building a limited number of a select few units, on demand only (meaning being set to high priority, but not always being given orders to build units all the time), that would easily complement and support their starting factory's own units, such as Erasers and Spectres from the Cloaky Bot Factory; Aspis from the Shield Bot Factory; Wolverines and Impalers from the Light Vehicle Factory; Goliaths, Pillagers, and Tremors from the Heavy Vehicle Factory; Penetrators from the Hovercraft Platform; Grizzlies and Djinns from the Amphibious Bot Plant; or Firewalkers, Placeholders, Moderators, and Sumos from the Jump/Specialist Plant. That way, it could perform in such a way as to keep even an experienced player on their toes.
+0 / -0

6 years ago
FYI Eraser and Aspis are available without the factories (you can morph the static versions, SneakyPete and Aegis respectively).
+0 / -0
Does morphing them cost anything?
+0 / -0

6 years ago
Same total metal cost (the morph does cost some metal but this is the difference between those units' costs since the mobile one is more expensive). It's actually cheaper in two regards:
  • you don't pay extra for the fac. Of course the fac also gives the ability to build the rest of the roster and 10 buildpower but you might not care about that.
  • the extra buildpower is free, you don't need a constructor to morph.

Note that to morph back to the static version you don't pay anything but don't get a refund either.
+0 / -0


6 years ago
I've been approaching this thread with practical applications in mind. How can we improve player uptake and experience with the AI, doing so efficiently based on the current tools available. I'm more interested in (non-obvious) general design principals and aims than particular details. I am interested in details regarding feedback on implemented components.

USrankCrazyEddie thanks for spelling out the bottom two levels. Those are basically my thoughts. Specific feedback on Easy is not that useful though because I have not put work into it. What I really want is some analysis of Very Easy, since I have paid it attention. Do you think Very Easy is appropriate for the bottom level of AI or second-to-bottom level of AI? Very Easy is perhaps too difficulty by your description. How does Inactive AI not match your idea for the bottom level of AI. I want to be able to work through the specifics of implementing the AI levels systematically, from the bottom up, so it would be useful to decide where Very Easy falls as soon as possible.

USrankShadowWolfTJC you are talking about two very distinct things in this thread and I think it is only useful, at the moment, to talk about one of them.

The first topic is about the progression of AI difficulty levels that start off at a level good for new players and advance in difficulty with appropriately sized steps. This is more a discussion about game design and difficulty progression than it is about how to make an AI.

Your second topic is about how to make a powerful AI, I don't think this topic is as useful to me. The Hard circuit config is possibly the most powerful AI available (I don't think there have be comparisons to other AIs recently) and it is certainly the most accessible. Talking about this AI can be fun but I'm focused on practicality at the moment. I'm sure there is useful feedback to give about hard circuit but the vast majority of the work required to improve Hard will be in AI coding and a lot of time spent tweaking and testing configurations. I think Hard is sufficiently difficulty and it already has dedicated developers. However, if you are very keen, I'm sure you could contribute to it. In short, if you map out difficulty levels above around 1700 or so elo they are going to be significantly harder to make than the levels below it. Making the Hard AI stupider is a much easier task than making it harder and that is where I am going to be focusing my energies.

You raise an interesting point with your last difficulty level. Should the top level AI be "Hard but with cheating"? We would have to explicitly state that this is the only cheating AI and state its capabilities, for example just give it full vision of the map. I'm unsure as to whether this is a good idea. On one hand it could give an extra challenge but on the other hand it means we have to qualify the statement "no cheating AIs" wherever it is claimed. Hard is already hard enough for most people.

For feedback to the AI developers about how to make the strongest AI I think you should start a new thread. Your ideas are likely to be lost among the discussion of easy AIs otherwise.
+0 / -0
6 years ago
Points taken.

Anyways, I tried to go up against the Easy AI solo once more, got schooled again, and discovered at least one thing about its behavior that I'd want to comment about:
- 1. It reclaims ALOT. In fact, I'd say that it reclaims so aggressively and meticulously that it qualifies for at least Hard difficulty. I'd doubt that most players have the attention span needed to be focusing on reclaiming wreckage at a frequent rate, or even build and replace any constructors that are sent on reclamation duty (unless they're in a team game, with someone focusing primarily on acquiring new mexes, increasing energy output, taking care of, and expanding, the team's base, and reclaiming stuff). Now keep in mind that, while you can pause the battle at any time on offline games, that won't necessarily be true on online games.
+1 / -0


6 years ago
quote:

What I really want is some analysis of Very Easy, since I have paid it attention. Do you think Very Easy is appropriate for the bottom level of AI or second-to-bottom level of AI? Very Easy is perhaps too difficulty by your description.

I'll put some time into this and let you know my impressions. Since it's capped at 15% mexes, does that prevent it from trying to wipe the whole map? Or does it still try to attack 100% of the map, just without building mexes?

quote:

How does Inactive AI not match your idea for the bottom level of AI.

It doesn't provide anything for the player to attack or to defend against.

I had been agitating for a sandbox mode with a player-controlled button to spawn random enemies/defenses, but now instead I think a Very Easy AI is the right approach. It has the same effect, but relieves the player of having to figure out that they should push a button, and it matches the player's expectations of what playing against an AI does.
+0 / -0
2nd gripe that I have to make about the current overly-difficult Easy AI: It will try to heal its damaged units back to full health. What this means is that, if the AI has a heavy unit like, say, a Grizzly, Sumo, Goliath, Krow, or any of the numerous Striders, then unless you have something that can take it out before it returns back to base, then any damage that you did to it was pretty much meaningless, and possibly a waste of alot of metal on your part.

In my opinion, Easy AIs should disregard the well-being of pretty much every one of its units and structures, save for the commander and possibly some base buildings. They shouldn't be sending constructors out to repair damaged buildings or keeping their own heavy units alive in the field (or reclaiming wreckage). Such behavior should definitely be reserved for hard AIs, though Normal AIs could possibly send damaged units to retreat, but only back at their base, where most of its constructors on assist and repair duty would remain.
+0 / -0


6 years ago
I've taken great pleasure tweaking the circuit Hard profile into something lethal, but the lower difficulties are admittedly not well tuned.

I think artillery and heavies (including licho) will need to be Hard only. Medium I think should be nearly as capable as Hard, just gimped by having no Porc breaking tools and less optimal settings for eco/expansion/target selection.

Easy will take some thought, I have some ideas. Players become bored when not challenged, so I would not want to gimp it in a way that makes it totally uninteresting.
+0 / -0
Page of 4 (63 records)