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