February 16th, 2016
Crusader Bot: Playing Crusaders Without Playing 

We were reading all your tweets that we came across a rather curious profile called @CrusaderBot on Twitter. It immediately piqued our interest.

Crusader Bot plays Crusaders of the Lost Idols all by itself without the need for (much) human input and then tweet about its progress.

The Crusader Bot creator, Jeff Sumner, is an avid board gamer, programmer and agile coach from Austin, Texas, who likes to play Lost Idols after his kids are tucked in bed. We asked him about his project.

Jeff and his family

What is @CrusaderBot?

Crusader Bot is a Python program I wrote, which plays Crusaders for me from start to reset. It takes over the mouse and keyboard and plays it as if a person was playing. Every time it resets, it sends out a tweet to @CrusaderBot.

How did you come up with the idea for @CrusaderBot?

I wanted to complete my daily clicker quests and was contemplating downloading an auto clicker. Instead, I decided to write my own. I had attended a talk by Al Sweigart, and he had created a program which played Sushi Go for him. I highly recommend his books, as well as his Udemy course which is just a lecture series covering the same material that it is his book. The book and course are designed to teach even non-programmers how to code.

I stopped my current project, and began working on a program which would clear out my three daily quests for clicking a thousand times because:

After clearing out my clicker quests, I made the bot activate its powers and level up Werewolf and Hermit every few minutes. Next the program would move the mouse around to gather resources and move to the next area as quickly as possible. Today, the bot gathers resources, activates powers, buys skills, and resets once the bots stop advancing. Each time it resets, it sends out a tweet to @CrusaderBot.

What is your goal or what do you hope to achieve with @CrusaderBot?

I enjoy learning new technologies, I wanted to figure out how to use Python to control the mouse and keyboard. I took my bot to lots of silly places, just to figure out the technologies. It uploads screenshots to Imgur, and to Twitter. It accepts input from an IRC channel, Twitter, and the keyboard. I got it broadcasting on Twitch.tv briefly. I even tried getting image recognition to work. And of course, I also wanted to get MORE idols!

There are a number of improvements I could make next. Interactivity with other users, and general gameplay improvements but it currently earns about 28 idols per hour, and I think I could improve that to about 34 idols per hour, only it would take a fair bit of effort so I'll probably just leave it as is.

What decisions does @CrusaderBot make that a human player wouldn't do?

None really, it's not an AI, it just follow my instructions. They are more or less the following:
  • Gather resources, and click a little bit (Clicking a lot seems to crash flash occasionally)
  • Every minute - level up Hermit and Werewolf.
  • Every 5 minutes - Power up all the skills.
  • Every 10 minutes - Level all, then Buy skills, stop once they have all been purchased.
  • Check to see if we have stopped auto-advancing. If so, use your buffs and keep going a little further.
  • Stop leveling Werewolf and Hermit and start doing level all. If you get stopped again, reset.
The one thing it seems to do far more efficiently than human players is not getting stuck. Spending five days trying to complete the hard to get objectives is much less rewarding than my bot doing 20 resets, and earning another 1500 idols, and hundreds of chests, so it hasn't gotten very far in the max levels quest. It got to level 361 in the early days before I learned to reset early and often.

What are the biggest challenges creating @CrusaderBot?

The biggest challenge was figuring out how to do keyboard I/O with Python. Creating new threads, and getting the right packages installed was a pain. I've had several dead ends that I had to give up on, such as using image recognition to identify where things were, it worked but only with one screen size and resolution. But these shouldn't scare anyone thinking about learning programming to write a bot like this, none of the biggest challenges were things that needed to be done.

What are the latest updates for @CrusaderBot?

I made an improvement when using buffs. Turning on Power Boost, Siphon Power or Accuracy lets me go an additional couple boss levels. Using a Time-turner at the end then nets me a few extra idols for the run.

My bot has now made it as far as level 546, thanks to the awesome power of talents.

Check out @CrusaderBot on Twitter and follow along to see how it get's on.