PDA

View Full Version : A Free Training Partner / Test Dummy



jli
01-15-2013, 10:17 PM
So, I decided that I want to try and put my ~3 years of programming random stuff to use. Recently, I've put a pause on all the Pascal/C++ projects and experimented a little with AutoIt (partly because I really need a break from all the semicolons, and partly because it's fun to quickly be able to make programs that do cool stuff, like play minesweeper or something). Anyway, that's enough background; I should stop before you guys all TL;DR.

When playing Stick Empires, I often want to try out experimental strategies in countering popular builds like giant spam, spearton rush, speartons + archidons, allbowtross spam, etc. This forum is a great source for such countering strategies, but it's always good to practice using them. The only issue is that I can't really get a feel for how effective these strategies are because not everybody uses the strategies I want them to use, obviously. There's the whole friend system, but that doesn't work either when said friends aren't online. Of course, you can always play in campaign mode, but you don't get to use all of your units until you beat the eclipsors, at which point you have lost the chance to test any strategies against Order involving allbowtross. In addition, you start with more miners, units, etc.

Here's my proposal. Until the awesome SE developers make a "practice mode" of some sort, I can (with approval) put together some AutoIt codes and create an SE bot. Because of the huge amount of OCR code required to actually "see" units, gold, mana, pop count, etc, it would suck at actually playing a game of SE, but great for testing out certain builds that don't involve micro (because this bot has about as much micro as an intoxicated monkey).

Here's how the program would work:
1. I give the code a "build configuration" (basically a list of units/upgrades to be trained in order (e.g. "miner miner prayer prayer minerHustle castleArcher"))
2. The bot will try and follow the instructions using those nice convenient AutoIt functions like send(), mouseClick(), mouseMove(), pixelChecksum(), etc.
3. Immediately after the build is complete (no more units/upgrades in the list left to train), the bot will hit the attack button.
4. Execution terminates. The program doesn't even stop to micro.

Here's how the program would be implemented in SE:
1. Someone (maybe me) with the ability to have a computer unused for long periods of time makes an account
2. I give that someone the build config
3. I or that someone posts the account's IGN and code on here
3. That someone runs program on unused computer all day long, accepting challenges and playing games

For those who have a heart attack whenever they see the word "bot": This bot will only play in friendly matches. It will not open random seeks. Therefore, it is the player's own choice to play against it and they are very much aware that they are not playing a human.

Of course, right now this is just an idea and I want to know what you guys think. The actual bot won't be nearly as stupid obviously.

For those who TL;DR: I feel like we really need a "practice mode", so my proposal is to make a friendly bot that you can add and challenge and play against to test yours strategies against a defined build.

xvdaemonicxv
01-15-2013, 10:24 PM
Wow. Just wow. That's a lot of work man. Hey, come join me at http://stickempiressonsofsaints.webs.com/ I wana hear more about it :)

I bump dis.

Triss
01-16-2013, 04:13 AM
The Bot should have an option mode.
Here is the options(my suggestions):

Guerrila(Hit n' run method)
Heavy Units(Spearton/Giants massers)
Air technician (Air units)
Defender (Defending his base)
Aggresive (Rushers)
Ranged Master (Full of ranged units)
Massers (Massing type units)

Also there should be 5 levels of difficulties:
Easy
Normal
Hard
Insane
IMP0SSIBRU!!!!

Probably like dat.:p

DragonFrost
01-16-2013, 07:09 AM
Wait, can you pick your own strategy to fight? As in the opposing player selects what the bot makes?

jli
01-16-2013, 08:28 AM
The Bot should have an option mode.
Here is the options(my suggestions):

Guerrila(Hit n' run method)
Heavy Units(Spearton/Giants massers)
Air technician (Air units)
Defender (Defending his base)
Aggresive (Rushers)
Ranged Master (Full of ranged units)
Massers (Massing type units)

Also there should be 5 levels of difficulties:
Easy
Normal
Hard
Insane
IMP0SSIBRU!!!!

Probably like dat.:p

Ok, so here's the small issue with that: the computer won't be able to control/move around units (I haven't found a good way to "see" units on the screen). Difficulty levels might also be a little difficult to implement. Think about it: what exactly constitutes "easy" or "hard" in a clear, well-defined, easily executable algorithm?


Wait, can you pick your own strategy to fight? As in the opposing player selects what the bot makes?
Not *yet*. The idea right now is that I or someone else that hosts the bot will watch this thread. Any suggestions for build configurations can be read and considered for plugging into the bot. When you play the bot, it tells you what it's going to send at you, so you know what the build is before you start doing stuff. I have this tiny idea in the back of my head that it might be possible for the human player to send a custom build configuration through the messaging system, but haven't worked out how to implement that yet.

Of course, for both of the above, if they are implementable, I would most definitely put them in as they do add to the challenge/realism.