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.
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.
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 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.
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.