|
I do plan to make changes to the builds for sure, I just don't want to be too hasty in doing it so I just published as is for now until I have time to fully understand the code I am looking at. I do not believe it takes in to account the opposing race at all when choosing a starting build. It does a random build from a list. It will switch builds at some point if it determines it will not be able to handle your army with its production buildings. I think its mainly an air vs ground thing but that equation is a bit confusing. For one it would do much better if the build lists were tailored by race and even better if it then weeded others out because of map/spawn locations. That alone probably would help a lot. That technically shouldn't be too hard to do, but research in to the builds that it should be using will take some time unless someone has a good resource beyond telling me to go watch a ton of replays which is probably what I will end up doing. To the comment about too many strategies I think one of the pluses of Grean Tea and Fyn Ai is that the computer won't us the same build over and over. My goal is to keep a good number of builds per race, but make sure they are builds you would see the pro's using against that race. I want to probably add some crazy all ins, maybe even cheese because it would be good practice but that will be last on my list.
The engagement AI certainly needs to be improved, especially since I removed vision. Before I removed vision, you would see the CPU outside your base about to attack then "flinch" back because you just spawned guys inside your base and its counter chart said it didn't have enough units any more to counter. Then sec later it would turn back to you because units just came out for it that then make its engagement calculation say that it had enough to take you on. It basically would dance down the field, and you knew when it walked in your base you were screwed, because the math said you shouldn't be able to handle what he has. It worked really effectively and I would like to try to get as close to its original ability to size up your army and engage when it is safe. But for my AI, it will never have vision, unless you could possibly show me a way to have it see what you have in order to count, without actually knowing where those units are until it scouts. I need the AI not to know that I have a proxy stargate in the 2nd expo behind the rocks in Xel'Naga for instance. I need it not to see my observer before it even enters the base and follow it freaking out because it has nothing it can use to REALLY see it. I am really just not going to budge on that because at that point the AI quits being fun to me. What I do need to do is make the Terran make use of scans, and the protoss use observers. I dont think they do that because the original AI had no need for it. But even so, I don't think it is reacting properly when it does engage your units and you out number it. It seemed to be more cautious before when it had vision. But I think that is just a matter of tweaking some numbers which should not be too hard.
I don't like the extra minerals either above medium. But I am sure they did it for the same reason I am leaving it, which is because it is the only way to have something harder than Medium without just making the AI better and I am sure the AI is about as good as they knew how to make it so cheating is the only option. My one thought on that subject is maybe I could scale the APM limit where instead of going unlimited at Medium, it is more gradual and the cap is finally removed at Insane. I could also add back in vision somewhere in the difficulties instead of minerals, but I would probably reserve that for Insane since its something I never want to play against The only thing is that if I remove the mineral cheat I would imagine it would hold no entertainment value for really good players since that is the only way it has a chance against an excellent player. I am certain open to good ideas about modifications to the difficulty levels so let me know if you have any ideas or if you like any of my suggestions.
|
Hi fyndor, I've publish your maps in SEA server.
|
On January 09 2011 02:27 n3wb13 wrote:Hi fyndor, I've publish your maps in SEA server.
Sweet thx I appreciate it.
|
hey fyndor, are you going to update your maps for 1.2.0? would really appreciate it cause right now when you start the map no bases show up
|
Crap I was worried about that happening. The short of it is, yes, hopefully tonight, maybe later if I can't figure it out in a night. When I see the bases not showing up that means that there was an error in the script, usually syntax error. The way I deal with it right now when it happens is to look over whatever code changes I just did and try to spot the problem. I am really new to map/AI writing and have not learned what debugging tools are out there and for the most part I just try and write flawless code so I don't have to worry about it . For instance there may be a compiler out there that will show me where I am messing up syntax or have a wrong function name (likely issue, probably change or removed a function), but if there is I don't know about it. If anyone knows what tools are available to debug starcraft I would appreciate a point in the right direction.
|
Just wanted to say that I love this AI!
I'm not really much of a ladder player and usually just spend my time 1v1ing/FFA against AI (usually very hard but I can play on weaknesses in some match ups in insane). However, very hard AI ALWAYS does the same build order (or very similar) and it gets tiring after awhile when I know exactly what is coming and can easily crush it, even if I'm doing something silly. However, whenever I play insane half the time I get sheer outmatched just because of the mineral advantage, especially early on if I can't compensate such as building bunkers as terran, etc.
However, your AI provides a brand new challenge and I even struggle at lower difficulties, so thank you for this! :D
The only thing I ask is if theres any potential/chance/etc of being able to see custom maps like the iCCup maps or MotM maps with the AI added (maybe even GSL haha)? I assume you would need the map file from the creator but any chance of seeing something like this happen? I don't mind the Blizzard maps but I love love love the custom maps, haha.
|
I think it was "dark tea AI" that had too many strategies, since I only see 3 builds from the terran I played.
One of the builds is terrible vs zerg (1 rax marauder into siege tank), another is decent (Marine marauder + random stuff later), last is best (marine-hellion into banshee and other inc. battlecruiser)
Because of this I'd say one of the biggest issues is strategy selection option, and/or automatic strategy chosen based on opponent race.
|
On January 12 2011 09:49 Graham wrote: Just wanted to say that I love this AI!
Thanks! Much of the credit is owed to the Green Tea AI creators, thus far I have merely made minor changes and published for everyone to access easily, but i fully intend to improve upon what is here and put my stamp on it.
However, very hard AI ALWAYS does the same build order (or very similar) and it gets tiring after awhile when I know exactly what is coming and can easily crush it, even if I'm doing something silly. However, whenever I play insane half the time I get sheer outmatched just because of the mineral advantage, especially early on if I can't compensate such as building bunkers as terran, etc.
As far as I understand from reading code (haven't really played above Medium for various reasons including it would just own me), the only difficulty that has 1 build is Insane. I would assume that this is because instead of ramping up mineral rate over time, Insane is full blast from the start. This would change timings completely. For instance the Protoss insane build starts with pylon on 7 then warps in 2 gates when that finishes. You would likely never do this with the normal mineral rate. You maybe could say they decided when making Green Tea that it was too much work to rework all the builds for insane.
Here is the code for Protoss initialization code for the Protoss AI. Even if you don't understand the C programming language you can kind of see what it is doing though this forum messes up the spacing.
+ Show Spoiler + static void ProtossInit (int player) { int state; int rnd;
InitCounters(player); AISetNumScouts(player, 1); AISetFlag(player, e_flagsScouting, true); AISetFlag(player, e_flagsEarlyDefScout, true); AISetPowerBuilding(player, c_PB_Pylon); AITransportSetPanic(player, 0.27);
if (PlayerDifficulty(player) == c_skirCheater) { //I believe c_skirCheater means insane, all the other the other difficulties are c_skirVeryHard etc
rnd = 8; } else { //This code is for all not insane mode AIs //It says that if the game has been running for less than 100 game seconds //then pick a random number between 1 and 7 and that number will be which build it does //If this code is called more than once, it is because it is after 100 seconds and the //AI decided it needed to change builds because of having too many or few air forces. //If the enemy has more air than ground, it will pick between the two air builds. Likewise if the //enemy is mostly a ground army it will choose between 5 ground builds.
if (AIGetTime () < 100) { rnd = RandomInt(1, 7); } else if (GTEGro(player) > GTEAir(player)) { rnd = RandomInt (1, 5); } else { rnd = RandomInt(6, 7) ; } }
if (rnd == 1 ) { // Zeus (Zealot Rush + High Templar )
GTChatInit(player, "Zeus" , "High Templar"); AISetMainState(player, e_mainState_OpenGnd0, e_mainSubState_Unset); } else if (rnd == 2) { // Hades, Dark Templar
GTChatInit(player, "Hades" , "4 gate"); AISetMainState(player, e_mainState_OpenGnd1, e_mainSubState_Unset); } else if (rnd == 3 ) { // Hephaetus, Fast Colossus
GTChatInit(player, "Hephaetus" , "Collosus"); AISetMainState(player, e_mainState_OpenGnd2, e_mainSubState_Unset); } else if (rnd == 4) { // Ares, Immortal + High Templar
GTChatInit(player, "Ares" , "Mix Ground Unit"); AISetMainState(player, e_mainState_OpenGnd4, e_mainSubState_Unset); } else if (rnd == 5 ) { //Apollo, Immortal + Collosus
GTChatInit(player, "Apollo" , "Robotics"); AISetMainState(player, e_mainState_OpenGnd5, e_mainSubState_Unset); } else if (rnd == 6) { // Artemis, Immortal + Carrier
GTChatInit(player, "Artemis" , "Immortal"); AISetMainState(player, e_mainState_OpenAir0, e_mainSubState_Unset); } else if (rnd == 7 ) { // Poseidon, VoidRay + Carrier
GTChatInit(player, "Poseidon" , "Carrier"); AISetMainState(player, e_mainState_OpenGnd3, e_mainSubState_Unset); } else if ( rnd == 8) { //Insane difficulty
GTChat("Vernam7: It's time to die !!!"); AISetMainState(player, e_mainState_OpenAir1, e_mainSubState_Unset); } }
In words what that code does is if its insane it does one build the whole game. If not it randomly chooses between 5 ground builds and 2 air builds. After 100 seconds in the game, it may decide at any point that it either had too much air or too much ground, so it will choose another build depending on which is the case from these same set of builds it started with. All builds are full start to finish builds (not sure if i will have it set up like this in the future), so when choosing another build if say the new build says build 2 gates and it has 2 gates already then it just skips that step. So the end result is it will skip ahead to the later part of the build where its making a stargate etc and just go from there. That is the build system in a nutshell.
You can think of difficulties Hard and Very Hard as soft enrages (term I am pulling from WoW). It slowly ramps up to fully enraged at I think 10 min. Insane mode starts enraged, so good luck. In the future you guys can help me decide on a better difficulty system if that is wanted and possible. In an ideal world you would choose between Bronze and whatever that greater than diamond league is now and it would play at those difficulty levels. We will never achieve that (by the time its possible this game won't be played anymore :p), but my goal is to get as close to that kind of setup as possible. I have a long way to go. If you think about it, very easy would maybe need to be dumbed down alot, certainly less expanding to be a bronze level player, though I am sure it does stupid things even bronze don't do at this point. Back to the point though, if there is an "enrage" and you are beating it, it is probably because you beat it before it fully enraged or shortly after it did. I wouldn't imagine too many people could handle 40 min game against this AI unless cheesed it and just kept it contained for 40 min. So if you are beating it before or shortly after 10 min, its build hasn't necessarily fully shown itself yet, so it may feel like the same build over and over.
Really what needs to happen is I need to improve it so it scouts alot better, because it uses that information to form the proper counter and right now it is not getting nearly enough scouting information if you are not engaging it often. If you looked at the code I posted 2 lines are about scouting. I am pretty sure, unless I have just not found it yet, that the AI uses out of the box Blizzard scouting. It is good for finding the enemy base and it probably does better than many players at late game expansion finding, but it doesn't do enough to keep tabs on what the enemy is making so it goes in to many engagements mostly blind. Even before updating all the builds, my main focus initially will be to watch what good players are doing in replays as far as scouting and see if I can mimic that. I think that would be the single biggest change I could make that would have a giant impact. After that it would be the build orders.
The only thing I ask is if theres any potential/chance/etc of being able to see custom maps like the iCCup maps or MotM maps with the AI added (maybe even GSL haha)? I assume you would need the map file from the creator but any chance of seeing something like this happen? I don't mind the Blizzard maps but I love love love the custom maps, haha.
I am pretty sure you can just download those maps using the map editor. The problem for me would be I need more accounts really to do more than I am doing now as far as map selection. It takes 9 slots to do the maps that are on the ladder (is Shakuras back yet?). That leaves me 1 map slot for testing or I have to pull a map down to test a change and noone wants that But... now that I think of it my girlfriend has an account too so that is 10 more slots I have. Beyond that I have distributed the source code, the link is in the first post and you can publish your own maps (as in iCCup etc) using it. The only thing would be making sure you have permission to republish whatever map you are adding the AI to. It is possible they wouldn't appreciate the clutter and confusion when seaching for iCCup, or they may think it is awesome, not sure. Ultimately I need to post a nice guide on how to publish maps using this AI. I need to do that like yesterday, because I can only publish on NA servers so I am relying on the community for these to be published on other servers. For instance, as soon as I fix what the patch did, hopefully n3wb13 will publish them to SEA servers
Edit: Btw, sorry I am so damn wordy. Not sure if anyone is reading my posts they are so long
|
well in wc3 the AI mined double minerals at the hardest difficulty
|
Fyn,
Personally, I think you should let the AI maphack. As long as it's not mineral hacking, and it only has access to the same set of commands as any human player, then the AI will probably be more useful for a wider range skill levels and be much easier for you to program.
I understand that this is the main change you have made from green tea's version of the AI, but still, removing the map hacking is not the way to go IMO.
If you look at good players, they scout so well that they know what you are doing and know what the makeup of your army is 95 % of the time anyways. So really, allowing the AI to map hack is simulating an expert player's scouting at a much reduced complexity of the AI.
While the green tea ai is very good, what keeps it from beating very skilled players is its macro and micro.
Now, if there comes a day when the green tea ai routinely beats very skilled players, then maybe that would be the time to turn off map hacking.
|
Sure do once its fixed and I'm free.
I'm training with this AI as well most of the time as during weekday I do have RL to attend and mostly too tired to ladder afterwards ...
|
If you look at good players, they scout so well that they know what you are doing and know what the makeup of your army is 95 % of the time anyways. So really, allowing the AI to map hack is simulating an expert player's scouting at a much reduced complexity of the AI.
That is 100% true, but my problem is the side effects that come with that. It is so hard to get any information with an observer. I haven't tried it by try burrowing roaches and see how well you can sneak up on Green Tea. And I think I remember a proxy stargate being found immediately at on Metalopolis that I put at the starting base base next to my enemy. I want an AI that I can practice with that will help me with my 1v1 against humans. All these side effects make you play so differently from what you would do against a human that in my opinion it makes it not so useful of a practice tool. As it stands, I question how useful anything greater than Medium AI would be for practice really since your opponents in 1v1 ladder won't have that so anything you see against Hard or greater shouldn't even be possible by a human (probably is possible though, not sure how finely tuned they made it, but it shouldn't be). But I left the harder difficulties in purely for entertainment value since not everyone is using this mod like me as a practice tool. After all this is a game so people do tend to like to play for fun
Now that I think of it, I had already planned to at some point introduce a dialog window that pops up before your game starts so you could change the APM settings to whatever you wanted. I could make the AI vision hack an option you select in that same dialog. That way I could get what I want and you could get the AI you like to play against. I can see the AI is much easier without the hack, but even so as a Silver player I still lose to it a lot depending on the build unless I use an extreme early pressure strat which it doesn't handle very well. Because of this, for me atleast, it is entertaining and useful as it stands. Due to the level I am and the feelings I get playing it I would say medium feels like maybe a Goldish player? Maybe silver? It for sure at times makes bronze mistakes I don't think I would have been able to beat it at all in my early bronze days though. Regardless, I wouldn't be surprised to hear golds or above saying medium feels like they are playing against a bronze player.
At this point I need to make the maps work again with the patch. I will release another version asap to fix that. And then maybe next I will release a version that has the intro dialog so I can make the people happy that thought its APM was too unrealistic and I can give you the ability to play with AI vision. I just have to figure out how dialogs work. The rest is nothing. I had planned to work on scouting next, then after that revamp every build so that it is using builds you need to learn to play against on the ladder, but if I revamp the builds first after adding the dialog, then I can make my camp and your camp happy while scouting only would help the non-vision people. So I guess thats the plan.
It's time to stop typing novels on TL and actually get to fixing these maps so people can start playing them again. Wish me luck
|
It took me all night to figure out how to find and extract the AI files out of the new and older version, but now that I have this patch and the previous patches stock AI I should be able to figure out what changed and what is tripping it up. I can't say for sure how much was affected, but looking at my text file comparison tool, not too terribly much of the stock AI was changed, so hopefully that means an equivalently small portion of Fyn AI needs to changed. I am pretty optimistic at this point. Really would have been nice for blizzard to just tell us the changes instead of having to do all this source code investigation work If I didn't have this Beyond Compare tool this would be a REALLY slow process. It is 4AM at this point so time for bed. Maybe tomorrow I will actually get a chance to see the new patch
|
On January 12 2011 19:04 fyndor wrote:Really would have been nice for blizzard to just tell us the changes instead of having to do all this source code investigation work If I didn't have this Beyond Compare tool this would be a REALLY slow process. It is 4AM at this point so time for bed. Maybe tomorrow I will actually get a chance to see the new patch
damn... you figure they would have learned from WoW after WoW launched, every patch broke all the UI addons people wrote. people complained for a long time until Blizzard finally release notes on what changes they made i can't believe they don't do that for SC2
|
It's not a huge problem, but deducing what changes have been made by doing a file comparison of 30 files is a bit silly when it probably would have just taken a few lines mention in the patch notes. Hell even a patch notes for mod makers specifically would be good. Take what they had about mods/custom maps in the patch notes, make a secondary patch notes for that and just expand bit. There weren't that many changes to mention, but if you didn't have the tools I do because programming is my profession, you would be doing line by line file comparisons manually on all these files to hopefully glean what changes are breaking your mod. It's just a bit silly when a little help on their end would fix all that : / For one, part of the problem may be that so few people do what I am doing (the AI side) that Blizzard is probably just not worried about it. I get a feeling most custom map makers for the most part have never have seen the AI code or know where it is or how you have to use 3rd party tools to extract it from Blizzard's inhouse "zip file" format. I think there are just so few people in my camp that Blizzard just wasn't worried about breaking our stuff and leaving us to figure out what went wrong : / Oh well, I think I should have this fixed by tonight or maybe tomorrow if all goes well, doesn't look too horribly bad.
|
fyndor,
Would it be possible to leave maphacking on, but program some special rules for dealing with invisible and burrowed units so the AI seems more human-like?
|
WOOOOOOOT! The Fyn AI loads atleast now in stand alone mode. Need to add the modified counter tables in real quick and do some quick testing to make sure I don't give you guys something that doesn't work at all and I will republish to NA and post the source code up. Likely within a couple of hours, hopefully worst case scenario early tomorrow evening. Was overall a minor change. I will post some info on TL about what was necessary to add to make it work and what blizzard thinks the counter changes should be (at least according to their AI) in case anyone fines it useful or interesting. The main thing I think that made my AI work was 2 lines in the end
|
Ok well damn, I had problems publishing all the maps. It is late, but I think I have the problem either narrowed down in a bug in modifying map info or naming a map with part of a Blizzard maps name. Those are my only 2 guesses. But hopefully I can get them all up real soon. For now, you can play Metalopolis on my test map called "FAITest". It is a test map so don't expect it to exist forever when the real maps are published, but for all purposes this will be what I publish for Metalopolis when I can figure out what is going wrong.
|
Thanks for pumping out 1.0.1 so quickly is 1.0.1 for this patch?
so far noticed that the medium AI seems to be behaving like the default blizzard AI in that it'd just be retarded at macro and float hundreds of minerals unlike the 1.1.3 version. also when i did a drop on the AI it didn't build a single probe after I harassed the mineral line.
|
Hi,
I tried to import the script into the map and all seems fine, but how do I choose the difficulty level? There are no options to do is without using the tool? I went into map properties and it has under the AI setting just default and computer. Any advice?
Or where can I find the maps published for the SEA server by someone?
Thanks in advance.
|
|
|
|