I'll come right out and address the elephant in the room when talking about this project. Unison does not comply with the EULA of the MMO game (speaking of that, the enforceability is questionable). That is why I will not publish the game's name; there are many popular MMOs out there—they cannot sue me on the grounds that I might be doing something in their game.
Now that the large animal has been ushered out, we can get on to the fun stuff. On a high-level, Unison makes use of a custom-built addon to get information out of the game and the plan is to use the standard Windows messaging system (that's a mysterious Windows API thing, not a chat program) to get instructions back into the game by simulating key-presses and clicks. If necessary, I can make use of VMs to completely abstract away any way for the MMOG to sniff around the system for the bot.
The ultimate goal is to have a system where a full group of bots takes down the hardest dungeons with no human intervention. Of course, that is a long way from where I am at currently. So far, I have only been able to get a few messages out of the game here and there, but considering how many things have to line up just to get that, I'm proud of the progress.
Unfortunately, that progress has backpedaled lately: I wrote most of the C# code during Spring Break, and I completely failed on documentation. I have no idea how some of the code sections work; or, in some cases, I understand, but I ask myself, "Who wrote that crap?" Therefore, I have learned my lesson: put a comment everywhere, to the point of excess.
My current road map:
- Take screenshots within a program. Done.
- *Get messages out of the MMOG. Buggy, but it was done.
- *Get messages into the MMOG. I know the how, but lots of work to get it to work.
- Click buttons.
- Be able to have the game at any location on the screen. The framework already has this in mind.
- *Control movement. I can already move, just not controllably.
- Combat.
- Chat.
- *AI goal system.
- Network with other bots.
I will get it done; but, at the moment, it is slightly overwhelming. That is why I have done the road map and those smaller goals. I hope that will help with the large amount of things to do.
The name was chosen because of the goal to have many copies of the bot working in unison together.
It will all be worth it when my bot sends me a text message saying, "The big boss in the really hard dungeon has been killed. He dropped: The Super-Duper Sword and The Scepter of Awesome."
No comments:
Post a Comment