Can you add a difficulty called 'Impossible' and the AI is literally impossible to beat. Perfect everything! Perfect game! :D
That's literally impossible to do. Computers can't solve chess, what makes you think they can solve starcraft(which has much longer games in terms of discrete moves and a much higher branching factor)?
Oh btw, Eternal, I'm currently in a course where we're doing bots for SC1(it's being taught by the people who did the overmind, the winner of the 2010 starcraft ai competition). It's actually very difficult to write a good starcraft AI. It can definitely be fun though.
Sorry for comming in on the tail end of this. I was searching for why a terran or toss AI does not wall off against a zerg. I got a link from b.net forums to your early youtube videos and from there was able to search EagleAI.
I'm just a cut and paste man. Fifty years ago I had basic and pascale but what you don't use you lose. I can't make heads or tails of Galaxy but want to learn how to write an AI script for SC2. I wish you all the best on your grad project and hope it will continue. We need more people willing to share and teach the community.
I played as zerg and protoss against the EagleAI on medium difficulty. Overall, I was very impressed. I started on medium because I know I can roflstomp Blizzard's medium AI without much effort at all, not very medium at all.
So I start my build out fairly simple, not expecting many problems, but in both games, the AI managed to catch me off guard with it's initial attack and do a lot of damage. The AI challenged me to recover, and rebuild. Around mid to late game though I feel like the AI lost it's edge. It had a muta to do some muta harass, but it ended up attacking my Extractor rather than the Probes, or I would've had to react sooner. Ultimately, I won both matches because by mid-game it wasn't as much of a challenge.
I'm not the greatest melee player and it'd been a while, but I saw that the AI was actively trying to counter me and adjust it's strategy. Certainly more than the regular AI would ever do. I loved it. It made me think for once.
Still, I have yet to try it on anything above medium, so I'll report back on that. Overall, I'd say it's a great change, and I'm probably going to end up replacing my map's current AI with EagleAI, when it becomes available. :)
I have an NA and EU account, for exactly this purpose. :)
I also took a look at the code since I'm a Galaxy guy and couldn't resist.
I have to say, MTops did a nice job. This is no hack to the existing AI. It looks like a completely new beast, and it really shows in-game.
I'm just and old man with no skill. I hate playing at the faster speed setting of the ladder, so I play against the AI at dead slow. I can see that this is not the same as Blizzard's AI, but it needs some work.
I don't know the proper words, but this is what I see;
Needs to learn to fight. It had 44 marines 1marauder and 6 tanks against 20 roaches and 15 hydras and lost It was good at fighting with tanks only.
One unreachable overseaer tided up the whole army and caused the loss of 20 scvs and 2 mules. Needs to change the threat priorities or the drop prevention routines.
Could not take a third. I think all those error messages were because the expaintion checker does not know the diference between creep and a building. It knew it could not place the CC but couldn't understand why. Might have to increase the number of checks till the creep receads or look to the next closes expo. It lost the game cause it ran out of money
I'm not a programer but this is what I see and of course it's just one game. I hope it helps.
Besides a few things others have mentioned, this AI is looking really good. I was impressed by some of things I saw it doing such as its banshee harass and siege tank use. I look forward to playing against this AI myself when it gets uploaded on the NA server.
Played it again. This time I build an assimilator on one of the AI's geysers. It apparently thought it was under attack and it interrupted mining until the 6 minute mark (all while probe-rushing my assimilator with 3-4 probes), by which time I just rushed with zealots and won.
2nd game versus the AI had some error spam about halfway through. Attached replay.
So I played 3 games. 1 Very Hard and 2 Insane. Lost the Very Hard and won the 2 Insane (but I 7RRed in the insane games so that's sort of a cheese tactic I guess, I was impressed how the AI responded in one of the games though).
I'm not ranked in 1v1 but I win 50/50 with my friends who are all diamond or platinum so I'm realistically probably platinum but potentially low diamond (I watch a ton of GSL and have played around 300 2v2 games so that's how I manage being decent at 1v1 without playing =P). Anyway, I always beat Blizzard Very Hard AI... but I never let the game become a macro game. Against Blizzard AI the way it goes is as follows:
When I'm Terran
- AI gets an early army advantage and pushes. I scout the push and build a bunker. Repair bunker and hold off push. AI is stupid and sacrifices units while trying to attack my bunker while I'm repairing and pumping out units. Counter push and win.
When I'm Protoss
- AI gets an early army advantage and pushes. I FF ramp. AI is stupid and sacrifices units while trying to get past FF. Counter push and win.
When I'm Zerg
- 7RR (haha, I suck with zerg but this always decimates AI, Blizz AI has NO idea how to stop 7RR)
I'm a random player btw.
Against your AI:
P (Me) v T (Very Hard)
AI early pushed with bigger army (like Blizz AI) but backed out instead of being stupid and getting split by my FF when it saw I had 5 sentries. Blizz AI would have sacrificed army at this point and I would have pushed out to win. The AI out-macroed me and I lost in the end. It stayed about one base ahead of me the whole game. 3 base vs 4 base in the end. The final battle I only had 120 supply vs 200 and I had no banked minerals. I couldn't keep up since I was down a base the whole game.
Notable AI Flaws:
- When I trapped the AI's army with FFs, the AI's left 8 SCVs it had pulled from the line to help defend sitting behind the FFs trying to attack. First of all, the AI had a better or at least comparable army anyway (MMM against Zealot Stalker Sentry at same supply) so it shouldn't have pulled SCVs off the line (or at least not EIGHT SCVs). Secondly, the AI had a bunker in front of its natural but chose to move out to engage my army even after it had just scouted it with a marine. Not sure why it decided to move out and then immediately try to run (unsuccessfully since I FFed it) as soon as it engaged me in the open.
- Drops... The AI tried to do three drops on me (8 marines in each medivac). All three of them went straight through the center of the map. I picked off two of the fully loaded dropships with stalkers. One of them I took out on purpose because I scouted it... but the other I didn't even control my units and they automatically followed the dropship to kill it since the medivac flew straight into my army and agroed my stalkers o.O
Z (Me) vs Z (Insane)
I was impressed by the AI here. The AI fast expanded but still did a decent job of delaying the loss (especially compared to blizzard AI). EagleAI didn't try to build any drones after it saw my Roach army. Instead it spammed lings and placed Spine Crawlers. The AI really should have pulled some drones though, but never did in this game. Not sure why since it was overzealous with its worker pulling in the PvT game but didn't do it when it was actually necessary in this match. AI overall certainly gave me a run for my money though and I felt it really could have held off my push with a few adjustments. Probably should have canceled the hatchery for one. The AI only had out 6 lings and no crawlers when my 7 roaches arrived at the natural and the hatch was only half done. The AI did cancel a spine crawler it was morphing though when I was about to kill it which was nice to see.
Notable AI Flaws:
- Sacrificed a queen by leaving it by itself after spawning a tumor. The queen just sat between the natural and main (right outside the choke) for 6 or 7 seconds (an eternity in SC). All the lings at the natural had died and the rest of the AI army was in the main near the main hatch...
- Teched to lair. Getting mutas to counter my roaches?* No. Teched to lair to get... wait for it... a NYDUS NETWORK! Perfect counter to 7RR right? Well, sorry AI. Any chance you had to hold off the rush was lost when you made that decision. It probably still would have lost anyway since I had three times the supply by that point, but the AI could have had so many more roaches.
This would have been stupid also btw since it would have taken way too long to get up the spire... but still, at least there would be some logic there.
- This isn't as important, but I felt the building placement was rather poor. The tech buildings were towards the front of the base away from the hatchery. This is easily scoutable in general which is bad, but it was especially bad in this game since the AI decided to put the spinecrawler right next to the hatch (makes sense for protecting drones, but unfortunate for the AI since I can pick off the tech, even the spawning pool...). Either put the basic tech behind the mineral lines or closer to hatchery front, or put spinecrawler closer to choke.
Z (Me) vs P (Insane)
I 7RRed. P didn't put up much of a fight. Had 1 zealot, 1 stalker, and 1 sentry when I got there.
Notable AI Flaws:
- Engaged me. Bad idea. Should have moved back and FFed the ramp to buy time. Instead the AI lost the stalker and zealot and pulled 6 probes off the line to help.
- Okay, if you insist on engaging, then pulling probes is a good idea. FF ramp after pulling probes and then leaving probes right behind the FF where they can still be hit? Bad idea. Leaving the probes is so bad already that the rest seems trivial, but the AI also left his sentries right behind the FF. Even if the probes hadn't been there... the point of using FF isn't so that the sentries can continue to sit in full view of the roaches and die. It's to allow the sentries to move away and be safe from the roaches while the Protoss warps in stalkers and zealots.
- Using 2 FFs on ramp that can be blocked with 1 FF. One thing an AI at Insane level should be able to do flawlessly is cast an FF that blocks a choke... this is the kind of thing that a human can mess up but that an Insane level AI should get automatically. Why did it cast two FFs? It's not like the AI can get too jumpy and hit F twice on accident like a human can =P Or is this a realism factor? haha
Overall, I'm very impressed with this AI and hope you continue to smooth out the flaws.
When I trapped the AI's army with FFs, the AI's left 8 SCVs it had pulled from the line to help defend sitting behind the FFs trying to attack. First of all, the AI had a better or at least comparable army anyway (MMM against Zealot Stalker Sentry at same supply) so it shouldn't have pulled SCVs off the line (or at least not EIGHT SCVs).
The problem I have with force fields is that I am unable to tell if an area has been made unreachable through force fields. None of the AI pathing tools register the force fields. So those SCV's couldn't have known they were unable to reach the enemies. Second, it's hard to determine exactly what kind of army can stop what. I am working on the algorithm but it will probably never be perfect.
Secondly, the AI had a bunker in front of its natural but chose to move out to engage my army even after it had just scouted it with a marine. Not sure why it decided to move out and then immediately try to run (unsuccessfully since I FFed it) as soon as it engaged me in the open.
If it tried to run immediately when it reached your army, it probably did not know the exact size of your army. It thought it could win the fight in a straight up battle so it tried that, but when it noticed your army was bigger then ite anticipated, it tried to back off to the bunker.
Teched to lair. Getting mutas to counter my roaches?* No.
Zerg AI is not responding well to enemy army details yet. It's what makes playing as Zerg more challenging, you need to respond to your opponent's strategy a lot more. This also makes the Zerg AI harder to get right.
This isn't as important, but I felt the building placement was rather poor.
Hehe, funny you should mention this. The Zerg building placement is completely random. I was planning on putting more structure in the placement algorithm, but the current situation seemed to work good enough so it got pushed back on the TODO list. :)
Using 2 FFs on ramp that can be blocked with 1 FF.
The blockage of the ramp was an accident. I have taught the AI how to split an army with force fields (or trap them if it's small enough), but there is no choke detection in the force field algorithm. Not yet anyway, I have it on my TODO list.
I'm not sure what 7RR means, but I'm guessing 7 Roach Rush. I am planning to teach the AI how to kite units this week, so that should increase the effectiveness of Stalkers vs Roaches a bunch.