|
http://graphics.stanford.edu/~mdfisher/GameAIs.html
First of all read the link if you want to talk about it. There is a video at the end but honestly you can't see the things if you don't know they are there.
How does it work in simple terms : The AI uses the Direct3D 9 API Interceptor to create it's own graphic files for a starcraft map and everytime something changes on the map it updates it's own files in the same way. The important thing is that it does so by intercepting the commands that influence your graphics and sends them once to your starcraft game and once to the AI. Therefore it basicly has the same information as your starcraft 2 game, but it has them in a different memory location. Why does this matter? Because the "Warden" (Blizzards anti cheat tool) will not be able to recognize the AI as an AI. Another important point is that the AI uses Mouse and Keyboardcommands to do it's commands in game and is therefore not distinguishable from a player (if it does not do anything player can't do, like having a million apm or reacting without looking).
What i think will come of this : Macro bots. It's basicly one of the most simple functions a AI can have and with the code given it's relative easy to implement and its pretty powerfull if you implement it the right way.
|
Soooooo... it is a hack? Or did I misinterpret this?
|
I think its a hack. He's basically saying theres a way to make the AI's actions not be detected by Warden.
|
Wow, what a great contribution to the community, thanks!
|
Interesting find, but is there really a point in it?
- Cheats/Hacks will not be used in important tournaments(as 100% of the important tournaments occur in some form of closed space rather than online) - Win with cheating/hacking will not provide you any advantage online except maybe portraits - Easily identifiable with someone watching, so it can't affect competent online tournaments
Honestly, no point in cheating on a game like SC2.
|
It's a hack if used on the ladder.
|
...
User was temp banned for this post.
|
On October 27 2011 19:45 Zephirdd wrote: Interesting find, but is there really a point in it?
- Cheats/Hacks will not be used in important tournaments(as 100% of the important tournaments occur in some form of closed space rather than online) - Win with cheating/hacking will not provide you any advantage online except maybe portraits - Easily identifiable with someone watching, so it can't affect competent online tournaments
Honestly, no point in cheating on a game like SC2.
Tournament level players aren't gonna be using these hacks. People on the ladder however...
|
This kind of stuff should stay in AI vs AI matches, and i have to say it's pretty cool to watch. And not people who use it as a hack -_-
|
On October 27 2011 19:45 Zephirdd wrote: Interesting find, but is there really a point in it?
- Cheats/Hacks will not be used in important tournaments(as 100% of the important tournaments occur in some form of closed space rather than online) - Win with cheating/hacking will not provide you any advantage online except maybe portraits - Easily identifiable with someone watching, so it can't affect competent online tournaments
Honestly, no point in cheating on a game like SC2.
The point that it's a challenging and interesting problem to create an AI that can play SC2. He is only releasing one part of the codebase, so we are probably not going be seeing this AI on the ladder anytime soon.
The creator has done this for academic and experimental reasons, not so he can distribute it to people who want to use it on ladder.
Also, technically, this isn't a hack, since it uses a computer vision method to see what's going on in the game. It doesn't read game memory or anything like that.
|
On October 27 2011 19:45 Zephirdd wrote: Interesting find, but is there really a point in it?
- Cheats/Hacks will not be used in important tournaments(as 100% of the important tournaments occur in some form of closed space rather than online) - Win with cheating/hacking will not provide you any advantage online except maybe portraits - Easily identifiable with someone watching, so it can't affect competent online tournaments
Honestly, no point in cheating on a game like SC2.
Ruining ladder is not a good way to make sc2 last as an esports.
|
Holy shit, that's incredibly impressive work.
I'm curious to know why the screen position bounces around so much early game. Does the AI reposition the camera everywhere the player has vision to parse the locations of units and buildings? Or is there some other reason it wants to have its focus somewhere else every fraction of a second?
And yes, this could be used to write a hack that the Warden probably couldn't see. I'm not sure if there's a way for a program to find out whether another application is intercepting its API calls, but if there's not then there's no way to tell the difference between this AI and a bad human player with 5000 API and a serious attention span disorder. The AI is basically just looking at the monitor and responding with mouse and keyboard commands.
Edit: Come on guys. Just because the OP saw this and immediately went OMFG MAD HAX! doesn't mean that's the purpose of the tool. This is a really interesting prototype for an AI that runs independant of the software it's interacting with. And AIs that play games do not only exist to enable cheating: The Go community has a very active AI scene, and bots are ranked players on the gokgs ladder. The mechanical element of SC2 means that human v competent AI games will never be any fun, but there's no reason to assume that that's where a project like this is going.
Also, Blizzard isn't exactly going to have a hard time detecting bots playing their game. It would be a pretty significant challenge to program a bot that could play such that it wasn't obviously an AI. Stuff like perfect blink micro and instant marine spreading comes with an API overhead that makes it obvious you're not dealing with a human, and if that kind of impossible feat were made out of bounds for bots, they would most likely just be really bad players, and then who cares if they're on the ladder.
|
Some person's masters thesis shall be the doom of ladderers everywhere!!!!1
[/Hyperbole]
|
This is quite an impressive and entertaining project, if you're a programmer interested in the Direct3D API, this is some great code to look at. The author also has a bunch of other projects on his site, including some neat painting code with the Kinect.
If this guy has a TL account and someone knows it, someone credit him.
|
Did anyone else get motion-sickness trying to watch the video?
|
The most impressive u mean rather than "an"
|
On October 27 2011 20:26 Umpteen wrote: Did anyone else get motion-sickness trying to watch the video?
yes i couldn't watch it just bouncing around the screen.
|
On October 27 2011 20:26 Umpteen wrote: Did anyone else get motion-sickness trying to watch the video? The multitasking was pretty insane.
The only other time I got motion-sickness when watching a Starcraft FPVOD was when I was watching a Bisu FPVOD, especially when he is playing a PvZ. Seriously, that guy has INSANE multitasking.
|
That's incredibly impressive - I never thought such an approach (to reverse engineer the gamestate using the API) for AI would be possible, nevermind viable.
EDIT: the video is completely schizophrenic - unwatchable. I think I'd prefer to see the AI work it's magic from a spectator's POV
|
I think if someone were to work on this idea it could only ever get as far as a macro bot. I suspect this would work best with terran because with Protoss there are warpin's and Zerg you need your injects and dont want it making drones all the time when you need units (and visa versa).
I don't see this bot making it very far tbh, yes it could be a great tool for those who want to hack but also it takes away from actually playing the game and would make micro and reacting to things much more difficult (If im going to EMP a Protoss deathball I don't want to something to suddenly take controls so it can make an SCV for me....
Btw, Hacks are bad, damaging e-sports etc, im just giving my opinion on this not saying people should use it 
Edit: Just reread my post, and realised I forgot the second thing I was going to say!
If this is created as an independent AI (not a bot that helps you while you play, but something you can play against) It could help out a great deal. It could effectivly learn what you do in different situations creating a AI which gets better as you get better. You could effectivly simulate playing yourself if you had enough games with the program running. It could become a great tool, you could swap bots and we could have AI copies of top Programmers bouncing around.
|
First time I saw this bot like a year ago, still quite impressive.
|
i am always impressed by starcraft ai matches. gl man
|
can't wait for game devs filling up their games with bots like this and still call it pvp x3. The approach is interesting though. A bot withouth sight hack is more complicated to programm
|
Very interesting non the less. Would be a step up from Insane difficulty if a player wishes to compete against this AI. Would be cool to see a chess like game but with starcraft, man vs machine!
|
very talented for sure. Good job.
Goes without saying that I really hope this or/and any further development/similar "hacks" stay out of the game, just as studying material.
|
I'd love if blzz would use programmers like this to increase difficulty of AI :D Instead of having the extra mining give them a macro bot.
|
If at all, cheating in this form is pure "education" for persons that are intrested and obvisious a fun point of intrest ; better than generic examples.
Creating a working bot on your own is allways a good feeling, its not that you have to damage something with it.
Like most software of this kind, a handfull of randoms will exploit it and use it to produce damage of all kind , however, whatever you do, this will allways happen.
|
Ahahaha looks like a severe earthquake going on in the start of the video.
EDIT: I noticed that the camera follows a predictable path in jumping around the screen. Maybe if the AI was made to not always jump to the location of its selection, the camera would be more reasonable.
|
Physician
United States4146 Posts
|
Well can't wait for the inevitable "Korean vs Machine" tournament to spring up (similar to Chess).
The 10 best Korean Players vs a super computer... who will win?
Only Flash can defeat the computer... or can he?
|
|
Why can't Blizzard program a good, non-cheating AI ?
|
This is the best Starcraft AI project I have ever seen. I think people don't realize how difficult it is to program and to make it work correctly.
This program basically emulates a player and doesn't need any prerequisite like other AIs. -First of all, it detects where the units/buildings are thanks to a auxiliar program that reads the graphic buffer. -Take decisions on what to do. -Then it simulates keyboard and mouse input to act according to what has been decided.
|
Physician
United States4146 Posts
"I think people don't realize how difficult it is to program and to make it work correctly."
some of us do and hence the bump : )
|
This whole thing is obviously a fake. The video is clearly a leaked FPVOD of Flash practicing SC2!
In all seriousness this is an amazing project! The graphics API knowledge boggles my mind, let alone the ability to program the AI to actually make intelligent commands.
Grabbing the graphics info before it gets routed to starcraft, and inserting key/mouse commands was one of my original ideas to circumvent blizzards checksum approach to antihacks. From a security stand point there is almost no way to detect this code in action, if it were just made to act slightly more like a real player. Once you've auto-throtteled the bots APM, how could you tell it apart from someone who just had ridiculous control? On the other hand I would love to see Huk get kicked from a game because bnet thinks his blink micro is superhuman.
|
pretty cool, nice project to make AI about starcraft, but lets just hope people don't use it to cheat!
there were some bot AI tournies in BW and it was interesting to watch them play
|
>.> I realize how difficult it is to program this, but the author wants to make it onto multiplayer and see how far it goes? isn't that against the TOS?
EDIT: also giving the source is most likely going to have random duplicate bots with scriptkiddies trying to get l33t or so stats cause of the bot I feel - -
|
I was going to type "hack", but then I watched the video and read the link. That's amazing, and good luck!
|
Any replays to see how he, oh wait it plays?
|
Wow, very impressive work. Would be amazing to see how far this AI can be developed.
|
This is ridiculous. I can't imagine how much work this would take.
|
I'm not saying it's feasible, but imagine if you had a program to optimize macro mechanics based upon a particular game's environment and progression. With 100% focus available for micro, all you really need to do is "scoop up" the units your program macros up (efficiently and logically, of course). SC2 would be an entirely different game, for an entirely different player. It wouldn't be fun to play competitively because of the loss in complexity and difficulty, but it would be fun to play as a "for fun" game, where all you are worrying about is microing armies around, engagements, etc.
One can dream...
e: to clarify, your "micro-based" decision making and manipulation of units affects the macro mechanics and overall progress your program makes as the game develops. in this way, you ultimately dictate the outcome of the game, but you are assisted by being granted "perfect macro" and build optimization at all stages and conditions throughout the game. Of course, you would still have full control. For example, you could pull SCVs off your mineral line to fight, but after their "micro" interruption input from you, they would return to whatever the program deems most efficient and optimal in terms of "macro", be it mining, building, or whatever.
another idea is you could generate a game condition where each player has a given set up and inventory of units/structures on the field in a typical "mid game" scenario. you could then allow the macro bot to "play out" the situation without any micro input, and ideally the program would elucidate the most efficient next steps and overall macro progression based upon those circumstances...
|
|
On November 02 2011 07:12 FallDownMarigold wrote: I'm not saying it's feasible, but imagine if you had a program to optimize macro mechanics based upon a particular game's environment and progression. With 100% focus available for micro, all you really need to do is "scoop up" the units your program macros up (efficiently and logically, of course). SC2 would be an entirely different game, for an entirely different player. It wouldn't be fun to play competitively because of the loss in complexity and difficulty, but it would be fun to play as a "for fun" game, where all you are worrying about is microing armies around, engagements, etc.
One can dream...
Maybe not exactly what you mean but, the Total War series have battles without the economy part.
OT: This is really cool! I'm no programmer but I can imagine the amount of work put into this!
|
It shouldn't be too hard to detect that sort of spastic re-focusing in a replay. Therefore, I'd say it's not an immediate threat to the ladder.
|
id really like to see what this AI could do in the late game o.o seems like a crazy hard work to code something like this.
|
That is a most impressive program :o
But I don't see how it's dangerous for competitive play, it should be easily detectable in replays.
|
|
|
|