Generals.io Bot API: Build bots to play against humans
dev.generals.io
dev.generals.io
For the last several weeks I've been an avid generals player. For awhile I was even ranked #7 on the FFA ladder. And I have to say that this is the second change in about a week that has left me confused about who generals is trying to appeal to. Maybe the bots will be fun for humans to play against but I doubt it. Maybe this will be a benign change and the quality of the bots that play generals on the non-bot servers won't improve much from what they are now. But either way why is an ad-supported game encouraging bots to try and take it over? What happens when the bots become so good and so prevalent that humans can't hope to compete? Why would anyone want to play?
Though I guess in the end I don't really care all that much as the recent changes to the movement scheme have really put me off the game. High level play used to be about feints and visibility, cutting off your opponents tendrils whilst building your own, pulling their forces away from your king while trying to find theirs. It really had a nice balance. Now, not so much.
I don't want to seem too sour. I had a lot of fun with generals [thanks devs] but now I'm in search of a new favorite game.
PWG
1. This was implemented directly to combat the prevalence of bots on the EU & NA servers (and the annoyance some players were facing when they were just playing AIs all the time), where you're now not allowed to bot on. Players have the option of choosing whether or not they wish to play against bots, but if they wish not to they can still play on the NA and EU servers.
2. We're supported by ads, but that doesn't mean we want to stop people enjoying the game in their own ways. We still have tens of thousands of players daily on the other servers, so a few tens of pounds on a bot server for people to compete in programming against one another doesn't seem too problematic.
And, to address your movement concern, it was a tough decision to make. But we wanted to allow everyone to enjoy the game, even people with lag or on mobile devices (where control is significantly harder). If you dislike the new movement settings, you are able to disable them in the options menu.
Thanks! Keep up the great work ;)
The point I was implicitly making is that setting up a new server for bots and declaring "no bots allowed" on the main servers is not quite enough.
We're hoping that people consider the reason we're trying to limit their access to the main ladders and do the honourable thing of keeping the bots in the bot ladder. It's slightly harder than just changing the URL, which we hope will help dissuade individuals.
(I wasn't using a bot if it wasn't clear.)
so you can believe me when I say that I was a pretty good player that spent a lot of time playing your game.
> This was implemented directly to combat the prevalence of bots on the EU & NA servers (and the annoyance some players were facing when they were just playing AIs all the time), where you're now not allowed to bot on. Players have the option of choosing whether or not they wish to play against bots, but if they wish not to they can still play on the NA and EU servers.
Respectfully, yours is not the first game to have these types of problems. People grief and cheat in every online game where it's possible. Creating bot-only servers will not curtail bot use on non-bot servers. It will instead give people who grief and cheat stronger bots that they can pull down from github or wherever and adapt to play on non-bot servers.
They only thing that will stop people from using bots in bot free zones are technological countermeasures. Captchas being the classic example of such technology.
> If you dislike the new movement settings, you are able to disable them in the options menu.
That fact that you suggest this as a way to address my concerns makes me wonder if you actually play your game outside of testing it to see if a new feature works.
When you changed the way players can move you not only changed how I play the game but how everyone else plays against me. Essentially, with this latest revision you've created a substantially different game. Using the option to limit how I move without it changing how my opponent's move would only serve to put me at a disadvantage. It would not roll back the clock to the make the game be like the old game I liked.
All of the tactical nuance that the game used to have was based on timing and multitasking. High level gameplay steamed from getting inside your opponent's head and trying to force them into mistakes. The key to doing that was to realize that if an opponent is trying one thing they most likely aren't doing something else. If you could get them to focus on the wrong thing you gained the advantage. In my opinion the old game had a great balance between strategy and execution. If you weren't good at both you couldn't win. The new control scheme throws that particular balance out window. It's hard to describe in words because it's a million little differences that add up to a whole but suffice it to say that games now to me feel less like a sword fight and more like people running at each other with pots on their heads.
I think the primary difference is now that moves can be infinitely queued, whereas in the past moving into an enemy's territory took time and concentration. Now, if I know where enemy cities are, I can order them to be attacked within a few seconds. Previously players were required to constantly expend time and concentration on each move, making multitasking and balancing a much more fine dance.
The new system tends to favor troop numbers above all, prioritizing strength over strategy. Before the update, if I had 2/3rds the troops of an average opponent by the time an 8v8 was down to a 1v1, I had about a 50% chance of winning. Now it's _maybe_ a 10% chance.
Personally, I feel that this falls under the category of mechanical skill, because you can play just as well with this movement style as you can in the previous style, it just requires less ability to click and press a key exactly every 500ms.
You can still get in your opponents' head; all that effectively changed is that movement in opponent territory is faster.
I support the developers' decision to simplify the controls of the game. Although might break the strategies of a group of power users of the game, it's best for its growth in the long run.
What was changed? I don't remember how the game worked when I first tried it.
It takes away a key advantage in obtaining territory.
My example is just anecdotal. I used to play and, in just 300 moves was able to tell a full story. Of how I advanced, beat a certain enemy through an interesting battle. How I went into unknown territory and was surprised by what I found. There really was a cohesive narrative and nice story-telling in the previous version. This is what made the game fun, fundamentally. Mini stories of kingdoms locked in war, with interesting battles.
Now, the stories are not told well. Since I am queuing constantly, I am not even paying attention to where my general is most of the time. I am half-blind charging on my bull hoping I run over a general. And likewise, if I am on the defensive there is nothing to do but hope the huge army does not snake through and hit my general. The sense of a story was largely destroyed.
And that's why I think the game is less fun now, even if it is not so obvious why.
* The playing field is relatively limited, just a little larger than Go. This makes it much more approachable than StarCraft as you will not need a server farm to get started.
* It has a fog of war, so a bot needs to handle uncertainty and have a memory.
* It's controlled through a web API and allows total freedom for the bot implementation by that.
* There are very competitive humans players.
* There is already a very huge dump of replays to train on.
I really hope this will get traction and establish as an ongoing AI competition. Also it will be very interesting, when the first bots will be better than the top humans here.
EDIT: Well, I tried, Vzhou beat me to fixing it.
However, because Generals is an RTS, bots might have a pretty steep advantage (although movements take a good bit of time, so it's not as bad as it could be). Does anybody know how bad this is in real play?
I'd be interested to see if a bot will be able to always defeat players, waiting for what will happen with this latest release.
Unlike a player, where you have a decent chance to juke their stack and cap them (and then have a great chance to win), many dumb bot implementations would just aggressively trade 1:1, basically guaranteeing that you're both screwed.
I got up to rank #3 on the FFA US server, and spawning next to Simple Bot would mess me up more than spawning next to an 80+ (back when it topped out at ~86).
That, and the terrible latency handling (if your internet is acting up a tiny but, you basically have no chance to win), was what made me stop playing eventually.
Also we've significantly reduced the impact of lag by allowing you to queue up moves, even in enemy territory. Although all real-time games need a certain amount of reliability in your internet connection to work, I think we've recently reduced it significantly. Although, of course, any suggestions you have for improvement would still be useful!
http://dev.generals.io/replays
It contains 200,000 games of varying levels, so should hopefully make good training data.
If you copy & paste the example bot verbatim, does that work for over 10 rounds? As far as I know we've got tens of bots working at the moment and I haven't heard this strange problem from anyone else.
I was able to connect, join a game, send chat messages, just couldn't stay connected.
I basically just converted the JS tutorial on the site to ruby style.