For my AI project I have developed a method for the AI to analyze the map to see where the base locations and choke points are.
For a demonstration, please watch the video on Youtube:
If you have any questions regarding the process, feel free to ask.
Nice :). Not too sure how much use it would be in custom maps, because adding it to a melee map would turn it into a custom map, and adding it to a custom map may not make it work properly, but even so, very impressive :D
His script detects the cliffs, which define the edges for a base for an
AI. For a custom AI this is probably useful ;)
Pretty sure the standard Ai already does this but it does it in a differnt manner..
Path to enemy player.... Is cliff present.... react to cliff level variation between point A and B.
I can understand if your trying to write your own trigger based AI that would do stuff depending on it. I just dont immagine it being very stable / optimal. The hardest Ai seems to take advantage of cliffs fairly well as it is.
This code is to find choke points. It will help my custom AI defend and attack properly. The original AI completely ignores terrain advantages and will always try to break a position with brute-force when attacking.
My AI will be able to recognize when the opponent is dug in at such a position and will instead try a different attack strategy.
I know I am reinventing a lot of functionality that is already available to the original AI, but that is not available to me when writing custom scripts. Instead of having to rely on internal engine code which could produce unwanted results, I have chosen to write everything myself so I know exactly what kind of results to expect.
Soul, Blizzard AI uses predefined points. These are flags. What MTops is doing is absolutely brilliant and may evolve into a very adaptive AI, useful even for non-melee maps.
The question is... Can your AI beat the Best SC2 ai?
Probably not atm, but nothing is wrong with make a better AI in the end. Also beating the insane cheat AI is totally different than beating real players. Smarter (not harder) AI is what we should aim for
@MTops: Go
Natural choke points detection seems good so far. Have you considered building made choke into considerations ? (wall in, barrack/factory, for zergling surround/flank etc.
The Insane SC2 AI uses cheats (50% more resources and full map vision), so in my eyes, it disqualified itself from the comparison between AI's to determine which is better.
If you want to ask if my AI will be better then the SC2 Very Hard AI, then the answer is a big YES. I wouldn't be working on this project if I couldn't realize that goal.
Yes, my AI will check the area around the enemy army to see if a surround is possible before it charges in with zerglings. This check includes buildings. But the first version of the AI that will be released in a few weeks will only have support for Terran. Protoss and Zerg will be released early 2011.
Soul, Blizzard AI uses predefined points. These are flags. What MTops is
doing is absolutely brilliant and may evolve into a very adaptive AI,
useful even for non-melee maps.
Yeah I dont mean to be a wet-blanket, I just dont see how you could write an AI that could have 14 different instances running at once(for 14 differnt) comps. Hold all that data some where process that data in a timely manner. And still have the comp make usefull decisions.
I mean Ive seen single Unit ai's where 1 toss ship took out 100 muta just by super good pathing... this code requires alot of trigger memory.
Secondly, If people are going to play against AI's I would think they would do the quick play with friends rather then customs .... but I spose if you make a super awesome AI people might want to play against it.
Good player AI is fun for computer scientists, but for players I think AI for a good match maker is more useful with a SC2-sized player population. Unfortunately, we can't make our own match makers for custom games.
All this choke detection is done only once for all the AI players on the map. No point in analyzing the map more then once. :) And if I figure out how to actually save banks, I might be able to reduce the detection to once per map, per computer.
And please note, I will be adding functioning difficulty settings to my AI. That way, everyone can select a difficulty that will challenge him/her without getting stomped.
I'm very impressed. To add to zenx1's question. How do you detect the chokes? I don't need the entire code, some general explanation would be wonderful :)
@MTops: Go"And please note, I will be adding functioning difficulty settings to my AI. That way, everyone can select a difficulty that will challenge him/her without getting stomped"
What's the point, if I may ask? If a medium player wants to play he'll most likely play versus other players. I really respect AI creations and innovations and I think you should be concentrating on an AI that is not cheating and is beating top SC2 players. The only privileges it should have are high micro management. Strategy, also defending all-ins, fast pushes and other cheeses should be a part of it. As an AI enthusiast I would strongly advise you to not create "difficulty settings" for your AI. You should be like the chess programmers(trying to create a chess AI that can beat high players with ELO higher than 2700, and believe me they haven't created it yet). I think that's my second post on those forums because I care for people like you, AI enthusiasts who like to challenge humans with bots.
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
For my AI project I have developed a method for the AI to analyze the map to see where the base locations and choke points are. For a demonstration, please watch the video on Youtube:
If you have any questions regarding the process, feel free to ask.
If you are interested in the development of the AI, visit the main site: http://www.blackward.com/eagleai
Nice :). Not too sure how much use it would be in custom maps, because adding it to a melee map would turn it into a custom map, and adding it to a custom map may not make it work properly, but even so, very impressive :D
I would like to know how you did that. It could be usefull for something...
Could you be a little more specific? What is the result you want to know how to get?
Whats the point of this.? I see you make beacons on the edges of cliff levels? why?
His script detects the cliffs, which define the edges for a base for an AI. For a custom AI this is probably useful ;)
Pretty sure the standard Ai already does this but it does it in a differnt manner..
I can understand if your trying to write your own trigger based AI that would do stuff depending on it. I just dont immagine it being very stable / optimal. The hardest Ai seems to take advantage of cliffs fairly well as it is.
This code is to find choke points. It will help my custom AI defend and attack properly. The original AI completely ignores terrain advantages and will always try to break a position with brute-force when attacking.
My AI will be able to recognize when the opponent is dug in at such a position and will instead try a different attack strategy.
I know I am reinventing a lot of functionality that is already available to the original AI, but that is not available to me when writing custom scripts. Instead of having to rely on internal engine code which could produce unwanted results, I have chosen to write everything myself so I know exactly what kind of results to expect.
The question is... Can your AI beat the Best SC2 ai?
Soul, Blizzard AI uses predefined points. These are flags. What MTops is doing is absolutely brilliant and may evolve into a very adaptive AI, useful even for non-melee maps.
Whatever you do, wholeheartedly, moment by heartfelt moment, becomes a tool for the expression of your very soul.
Probably not atm, but nothing is wrong with make a better AI in the end. Also beating the insane cheat AI is totally different than beating real players. Smarter (not harder) AI is what we should aim for
@MTops: Go Natural choke points detection seems good so far. Have you considered building made choke into considerations ? (wall in, barrack/factory, for zergling surround/flank etc.
The Insane SC2 AI uses cheats (50% more resources and full map vision), so in my eyes, it disqualified itself from the comparison between AI's to determine which is better.
If you want to ask if my AI will be better then the SC2 Very Hard AI, then the answer is a big YES. I wouldn't be working on this project if I couldn't realize that goal.
@progammer: Go
Yes, my AI will check the area around the enemy army to see if a surround is possible before it charges in with zerglings. This check includes buildings. But the first version of the AI that will be released in a few weeks will only have support for Terran. Protoss and Zerg will be released early 2011.
Yeah I dont mean to be a wet-blanket, I just dont see how you could write an AI that could have 14 different instances running at once(for 14 differnt) comps. Hold all that data some where process that data in a timely manner. And still have the comp make usefull decisions.
I mean Ive seen single Unit ai's where 1 toss ship took out 100 muta just by super good pathing... this code requires alot of trigger memory.
Secondly, If people are going to play against AI's I would think they would do the quick play with friends rather then customs .... but I spose if you make a super awesome AI people might want to play against it.
Good player AI is fun for computer scientists, but for players I think AI for a good match maker is more useful with a SC2-sized player population. Unfortunately, we can't make our own match makers for custom games.
@SouLCarveRR: Go
All this choke detection is done only once for all the AI players on the map. No point in analyzing the map more then once. :) And if I figure out how to actually save banks, I might be able to reduce the detection to once per map, per computer.
And please note, I will be adding functioning difficulty settings to my AI. That way, everyone can select a difficulty that will challenge him/her without getting stomped.
yeah but dont you have to re analyze the choke points incase players block?
I'm very impressed. To add to zenx1's question. How do you detect the chokes? I don't need the entire code, some general explanation would be wonderful :)
@Siretu: Go
Watch the youtube video, it explains the process :)
@MTops: Go"And please note, I will be adding functioning difficulty settings to my AI. That way, everyone can select a difficulty that will challenge him/her without getting stomped"
YAY! :D
What's the point, if I may ask? If a medium player wants to play he'll most likely play versus other players. I really respect AI creations and innovations and I think you should be concentrating on an AI that is not cheating and is beating top SC2 players. The only privileges it should have are high micro management. Strategy, also defending all-ins, fast pushes and other cheeses should be a part of it. As an AI enthusiast I would strongly advise you to not create "difficulty settings" for your AI. You should be like the chess programmers(trying to create a chess AI that can beat high players with ELO higher than 2700, and believe me they haven't created it yet). I think that's my second post on those forums because I care for people like you, AI enthusiasts who like to challenge humans with bots.