Hey just thought I'd post a demo vid of the AI project I'm working on.
All of this is written from scratch. The only Blizzard AI function I'm using is to decide where to place buildings (but I might replace it with my own implementation later some day). Other than that I'm just keeping track of the units myself and issuing them direct orders to obey.
Still very much a work in progress. I know there are very few people here interested in vanilla SC2 but I thought I would showcase my progress anyway. If you know your way around triggers/galaxy script and would like to lend a hand I could use the help. It's a pretty mammoth task.
Very interesting to see an AI project! Looks like it would be a bigger challenge than the vanilla AI to defeat judging by what I'm seeing.
I have a question; when you release this, would you make it available as a resource as well? I can think of a number of maps that would benefit from an advanced, customizable melee AI.
when you release this, would you make it available as a resource as well? I can think of a number of maps that would benefit from an advanced, customizable melee AI.
It would require a lot of explanation to make sense to other people. Half of it is written in the GUI and half in galaxy script because I didn't know how to access galaxy script until recently. Also it makes heavy use of structs and structrefs so it would not be very noob friendly if someone wanted to alter it for their own purpose.
There are a lot of more experienced people who would understand how it works. But they would probably take one look and be judgemental of my coding quality :P
we'll see. But I don't think I will be finished with it at least till the end of the year.
Agreed with Sixen, even if it's undocumented and non-newbie friendly, it'd be super helpful to anyone who wants a melee-like AI!
Anyway, a little more on-topic, how does the AI fare in team combat? As in, does it help allies, try not to have the same builds (ie goes air if you go ground), or does it just do its own thing?
It is built ontop of another of my projects called SALT. I was keeping SALT closed because I thought if the marketplace ever happened I could release it on most maps for free but also release it on some obscure maps for a price. So people would not be locked out of using it but would have a convenient way to donate if they felt like it. But I don't see that happening within the next few years. And if someone blatantly tried to rip me off too much and steal my work I'm sure the local starcraft pitchfork brigade would form a mob and shit all over them.
So yeah, why not.
I've had a bunch of requests but it's just people being curious.
I'll write a README.txt to go along with it. It will explain a lot of things were people will be confused or wonder why I did xyz.
Oh, and if someone wanted to extract out some of the stuff and make it a resource that would probably help others.
I've written a small mathematics library, a string library and a debugging library which are easy to use and I think could be of help to others and I'd be happy if I could get them out there. But I've never got round to it.
Cleaned up the code a little and published as open source on US server. You can find it under the name SALT.
I am also opening up to people who would be interested in teaming up, contributing or just lurking in the corner watching the conversation. Posted on the team recruitment section here.
I wrote up a README explaining briefly the different sections of code as an intro to people. Most of the functions have self explanatory names and a line of comments. But I can see it being daunting as hell for someone to pick up and figure out how it all fits together. I'm going to make a video to show how you can get it running yourself because at the moment I am setting it up via typing a few instructions into chat so theres a few instructions that people will need before they can begin experimenting with it.
If you want details I'd be happy to add you to the skype group and I'll explain any questions you have where others will be able to look through the conversation.
OK, so I've continued to tinker away in my spare time. DORFL is NOT near completion. It is SOOOOOooo far from being finalized.
But none the less... I decided to battle it against the Blizzard AI just for a laugh. And laugh I did, I also facepalmed... OK mostly facepalmed... a lot!
At one point DORFL is up in supply something crazy like 110 to 30 but it's actions were just so stupid that it couldn't possibly pull the victory. At one point it build an army out of observers
I am providing the replay for comedy purposes if anyone else wants to see. Ignore the first few seconds when it sets everything up. Also ignore all the text scrolling up the screen.
Here is the replay file which I uploaded to spawningtool.com
Player 1 in the bottom left corner is controlled by the Blizzard AI (I think it is on easy but not sure). The top right corner is player 2 which is controlled by DORFL.
before you laugh at me too much remember that this is the computers FIRST EVER game of SC2. I want you to think back to YOUR first ever game of SC2 and remember how bad you were in comparisson. Grab the popcorn, don't take it seriously, and enjoy.
I just realized that the map I was using (derelict watchtower) is very out of date (2013). I was just using it because I had a copy of it sitting around from ages ago and it was convenient.
But if you don't have the map file on your computer you will not be able to watch the replay. (I think that's my current theory). When I release replays from now on it will be on a current map so that people can watch it. Sorry for wasting peoples time.
POST:
This probably belongs on the AI sub forum, but it's not like these forums move at lightning pace anyway. Also there are bigger spam problems anyway :P
I've hit a new benchmark with Dorfl: being able to consistently defeat the Blizzard normal difficulty AI. Out of a bunch of matches Dorfl won most of them. Here is the most recent replay I have of the two AIs battling it out to the death:
That link is to the page on spawningtool.com (an awesome sc2 website tool thing). The download link is on the right.
I chose that replay because Dorfl came close to losing and there was a nice bit of back and forth before the Blizzard AI crumbled under a relentless stream.
Let me state right off the bat: Dorfl is only about 45% complete. Before you watch the replay think about trying to drive a car which is only 45% complete and imagine how far you're going to get.
Dorfl is able to play all three races but is more advanced with Protoss so that's all I'm testing right now.
at the moment Dorfl:
can play all 3 races but is more familliar with Protoss (hence the PvP replay)
does not micro, it simply attack moves and hopes for the best
does not know what units are suitable for what roles.
does not know how to use abilities like warpgates, charge nexus, forcefield, or gravitational beam (which is why in the replay it builds lots of phoenix and does not know how to make them do anything useful)
has a 4 second reaction delay
Does not know how to harass. Any time it wants to harass the units just go to the centre of the map and sit there
But these will all be changing as time goes on. By October I hope Dorfl will learn how to harass and micro. By November I hope for it to be familliar with all three races. By NYE I hope to have Dorfl competent enough to beat the Blizzard hardest (non cheating) AI with any race and to be suitable for mid-level players to play against. After that the next goal is to enslave humanity skynet/matrix style who knows how far it'll get?
Somebody casted a game of Dorfl vs Blizzard AI and stuck it on youtube!
Thank you to GamerSteed for the cast. I stuck the replay file up on /r/castit, a subreddit for players to get their games cast and for aspiring casters in the community to source replays.
In the blue corner (left) is Blizzard AI - created by Blizzard Entertainment, one of the heaviest hitters in gaming and worth $18.9 billion.
In the orange corner (right) is Dorfl - created by me in my spare time and worth about $400.
"Lets get ready to rrrruuuuuummmmmmmmbbbbbblllllllleeeeee"
He said it in the video but let me repeat. This is only the framework of a fully functioning AI. It doesn't use warpgate, the stalkers don't know how to blink, the unit pathing glitches and the units sometimes spaz out (or dance ), I wrote the script for unit kiting in a single afternoon with a lot of coffee... you get the idea. But every few weeks Dorfl takes a few more baby steps towards being a good AI player.
Those of you who are likewise fascinated by watching a computer "make it's own decisions" will enjoy watching this AI vs AI battle.
Hey just thought I'd post a demo vid of the AI project I'm working on.
All of this is written from scratch. The only Blizzard AI function I'm using is to decide where to place buildings (but I might replace it with my own implementation later some day). Other than that I'm just keeping track of the units myself and issuing them direct orders to obey.
Still very much a work in progress. I know there are very few people here interested in vanilla SC2 but I thought I would showcase my progress anyway. If you know your way around triggers/galaxy script and would like to lend a hand I could use the help. It's a pretty mammoth task.
Thanks.
lol now i know were where your name came from. Suffice to say really in interesting AI i hope this is not the begging of terminator. :-)
Marie T. Freeman If you're too busy to give your neighbor a helping hand, then you're just too darned busy. https://www.facebook.com/wargirlmaps.maps
Spread the love join DISCORD
https://discord.gg/Jtzt8Su
Very interesting to see an AI project! Looks like it would be a bigger challenge than the vanilla AI to defeat judging by what I'm seeing.
I have a question; when you release this, would you make it available as a resource as well? I can think of a number of maps that would benefit from an advanced, customizable melee AI.
when you release this, would you make it available as a resource as well? I can think of a number of maps that would benefit from an advanced, customizable melee AI.
It would require a lot of explanation to make sense to other people. Half of it is written in the GUI and half in galaxy script because I didn't know how to access galaxy script until recently. Also it makes heavy use of structs and structrefs so it would not be very noob friendly if someone wanted to alter it for their own purpose.
There are a lot of more experienced people who would understand how it works. But they would probably take one look and be judgemental of my coding quality :P
we'll see. But I don't think I will be finished with it at least till the end of the year.
Any chance you'll be open sourcing this? I think there's a huge lack of development around AI, even to this day.
Agreed with Sixen, even if it's undocumented and non-newbie friendly, it'd be super helpful to anyone who wants a melee-like AI!
Anyway, a little more on-topic, how does the AI fare in team combat? As in, does it help allies, try not to have the same builds (ie goes air if you go ground), or does it just do its own thing?
eh, may as well open source it.
It is built ontop of another of my projects called SALT. I was keeping SALT closed because I thought if the marketplace ever happened I could release it on most maps for free but also release it on some obscure maps for a price. So people would not be locked out of using it but would have a convenient way to donate if they felt like it. But I don't see that happening within the next few years. And if someone blatantly tried to rip me off too much and steal my work I'm sure the local starcraft pitchfork brigade would form a mob and shit all over them.
So yeah, why not.
I've had a bunch of requests but it's just people being curious.
I'll write a README.txt to go along with it. It will explain a lot of things were people will be confused or wonder why I did xyz.
Oh, and if someone wanted to extract out some of the stuff and make it a resource that would probably help others.
I've written a small mathematics library, a string library and a debugging library which are easy to use and I think could be of help to others and I'd be happy if I could get them out there. But I've never got round to it.
I remember checking out your harass script a while back. Good to see you are still keeping at it.
Cleaned up the code a little and published as open source on US server. You can find it under the name SALT.
I am also opening up to people who would be interested in teaming up, contributing or just lurking in the corner watching the conversation. Posted on the team recruitment section here.
I wrote up a README explaining briefly the different sections of code as an intro to people. Most of the functions have self explanatory names and a line of comments. But I can see it being daunting as hell for someone to pick up and figure out how it all fits together. I'm going to make a video to show how you can get it running yourself because at the moment I am setting it up via typing a few instructions into chat so theres a few instructions that people will need before they can begin experimenting with it.
If you want details I'd be happy to add you to the skype group and I'll explain any questions you have where others will be able to look through the conversation.
Thanks.
OK, here is the video I mentioned about how to get the AI up and running.
Should have made the video before I made the post above. C'est la vie.
EDIT: there's something important I forgot to mention in video. Read the video description for that info.
OK, so I've continued to tinker away in my spare time. DORFL is NOT near completion. It is SOOOOOooo far from being finalized.
But none the less... I decided to battle it against the Blizzard AI just for a laugh. And laugh I did, I also facepalmed... OK mostly facepalmed... a lot!
At one point DORFL is up in supply something crazy like 110 to 30 but it's actions were just so stupid that it couldn't possibly pull the victory. At one point it build an army out of observers
I am providing the replay for comedy purposes if anyone else wants to see. Ignore the first few seconds when it sets everything up. Also ignore all the text scrolling up the screen.
Here is the replay file which I uploaded to spawningtool.com
Player 1 in the bottom left corner is controlled by the Blizzard AI (I think it is on easy but not sure). The top right corner is player 2 which is controlled by DORFL.
before you laugh at me too much remember that this is the computers FIRST EVER game of SC2. I want you to think back to YOUR first ever game of SC2 and remember how bad you were in comparisson. Grab the popcorn, don't take it seriously, and enjoy.
Here is the replay, provided at spawningtool.com
EDIT:
I just realized that the map I was using (derelict watchtower) is very out of date (2013). I was just using it because I had a copy of it sitting around from ages ago and it was convenient.
But if you don't have the map file on your computer you will not be able to watch the replay. (I think that's my current theory). When I release replays from now on it will be on a current map so that people can watch it. Sorry for wasting peoples time.
POST:
This probably belongs on the AI sub forum, but it's not like these forums move at lightning pace anyway. Also there are bigger spam problems anyway :P
I've hit a new benchmark with Dorfl: being able to consistently defeat the Blizzard normal difficulty AI. Out of a bunch of matches Dorfl won most of them. Here is the most recent replay I have of the two AIs battling it out to the death:
spawningtool.com/29988/
That link is to the page on spawningtool.com (an awesome sc2 website tool thing). The download link is on the right.
I chose that replay because Dorfl came close to losing and there was a nice bit of back and forth before the Blizzard AI crumbled under a relentless stream.
Let me state right off the bat: Dorfl is only about 45% complete. Before you watch the replay think about trying to drive a car which is only 45% complete and imagine how far you're going to get.
Dorfl is able to play all three races but is more advanced with Protoss so that's all I'm testing right now.
at the moment Dorfl:
But these will all be changing as time goes on. By October I hope Dorfl will learn how to harass and micro. By November I hope for it to be familliar with all three races. By NYE I hope to have Dorfl competent enough to beat the Blizzard hardest (non cheating) AI with any race and to be suitable for mid-level players to play against. After that
the next goal is to enslave humanity skynet/matrix stylewho knows how far it'll get?Somebody casted a game of Dorfl vs Blizzard AI and stuck it on youtube!
Thank you to GamerSteed for the cast. I stuck the replay file up on /r/castit, a subreddit for players to get their games cast and for aspiring casters in the community to source replays.
In the blue corner (left) is Blizzard AI - created by Blizzard Entertainment, one of the heaviest hitters in gaming and worth $18.9 billion.
In the orange corner (right) is Dorfl - created by me in my spare time and worth about $400.
"Lets get ready to rrrruuuuuummmmmmmmbbbbbblllllllleeeeee"
He said it in the video but let me repeat. This is only the framework of a fully functioning AI. It doesn't use warpgate, the stalkers don't know how to blink, the unit pathing glitches and the units sometimes spaz out (or dance ), I wrote the script for unit kiting in a single afternoon with a lot of coffee... you get the idea. But every few weeks Dorfl takes a few more baby steps towards being a good AI player.
Those of you who are likewise fascinated by watching a computer "make it's own decisions" will enjoy watching this AI vs AI battle.
Definitely a fun thing to watch :D