AMazeBot 2011

It’s time again for another AMazeBot competition! What exciting new changes do we have in store this year?

Well, actually nothing significant in terms of the rules. There is a small addition to the API but this isn’t a major new feature. The addition of recharging last year was quite significant, and we want to allow more time for students to get used to it, and for us to see if it needs balancing. I may still add another maze type before the competition event, but that would be the extent of the changes for this year.

Instead, our focus this year is on opening the competition to other colleges! We feel this is the obvious next step in growing the competition.

For a couple years the prize money was provided by Mohawk, and under that situation we were understandably restricted to Mohawk students. But since last year we have independent sponsorship, and so we are now able to accept submissions from students at any Ontario college. For this first time we don’t expect to get many outside submissions, but we are hoping for a few at least. We’d like to set up a friendly rivalry among the colleges, to see who has the most dedicated and talented programmers!

What we are trying to do is create a snowball effect: by increasing our visibility and number of participants, we are hoping to attract more sponsors. With more sponsors we can offer a larger prize pool, which will then attract more participants and increase our visibility.

We are now in the process of communicating with some other colleges to spread the word. Promotion in general is a large task, one best undertaken by specialists. Professor Yendt and I aren’t particularly good at this; our field is mainly the technical side of things. So this is an opportunity to bring in some other volunteers to complement our efforts.

I’m not sure what we’ll do in upcoming years regarding new features in the rules/API. There was some discussion of possibly having multiple rechargers, and that seemed the only practical idea we had. Everything else seemed to be overly complicated, compromising our primary design criterion (keep it beginner-friendly). It may be that we have reached a plateau, or it may only be that we lack good ideas! If the latter is the case then perhaps our nascent community will direct us.

I do have a number of ideas for new features in the development tools, but they would require major rearchitecting of the code. I reckon we’ll tackle it eventually, but that’s beyond the horizon at the moment. Small steps!

AMazeBot 2010: Recharging

Every year we try to introduce some variation to AMazeBot, partly just to keep it interesting but also to force returning students to do at least some new work. In the past most changes have been fairly minor, such as adjustments to scoring, different maze types, and the like. There have been a couple of moderately significant changes, such as having 2 goal rooms that must both be visited (only done for one year) and the ability to scan all the empty cells ahead of the bot (the standard scan can only check adjacent cells). But the new feature for this year is definitely the biggest variation introduced so far—recharging.

Read the rest of this entry »

Posted in AMazeBot. Tags: . Leave a Comment »

AMazeBot 2010: Improvements to Batch Mode

The release date for the 2010 version of AMazeBot is quickly approaching; I expect that in 2 to 3 weeks the website will be updated and the devkits available for download. We who are developing it are quite excited, and we’ve heard that a number of students are also eager to get started on their new bots. I can’t yet announce any new features or changes we’ve made in the ruleset, but I can reveal some improvements to the batch testing system.

When I first wrote the Batch Module for 2008 I didn’t have much time to polish it. As a result, although it was functional it was somewhat unfriendly. It’s an important tool for the students however, perhaps used more often than the Developer Module. I had always intended to make a number of improvements, but failed to do so for 2009.  Now for the upcoming 2010 competition I have finally given it the attention it deserves. Here are a few things that I’ve changed.

Read the rest of this entry »

AMazeBot 2009 Completed

The 7th annual AMazeBot competition was held yesterday (April 1), and I declare it a success, with much fun had by all. There were 17 bots submitted by 23 students this year, which is the highest turnout yet. All bots managed to solve at least 1 maze, earning their authors a 5% bonus in one of their courses. In fact, every bot solved at least 3 mazes—very well done!

The notorious Conficker.C even made an appearance, and though the worm was ineligible to win prize money, it did put in a respectable performance, possibly frightening some of the other bots in the process. But in the end it was vanquished by a sleepy kitten, a Dalek, and a mouse.

I can now reveal a couple of the things I had been working on: the new design for T-shirts which were given to all competitors, and the title screen used in the show. Also, this was the first year in which a custom (i.e. hand-drawn instead of procedurally generated) maze was used, and it proved to be the most difficult of the 5, exhausting an astonishing 13 bots.

AMazeBot 2009 T-shirt.

T-shirt design.

AMazeBot 2009 title screen.

Title screen.

The Concentric maze.

Concentric maze.

The complete final results are posted on the official website, and soon (eventually?) there will also be photos from the event.

Some of the competitors will be graduating this year, but  many will be able to enter again next year, including the current champion who has taken 1st place for 2 years. Will he be able to claim the title a third time, or will he be dethroned? Will some mutation of the worm or another of its ilk arise again to threaten all good hard-working bots? Will there be a custom maze so insanely convoluted as to foil every single bot? All shall be discovered in a year’s time!

As for what new features might appear in 2010, I cannot at this time make any comments, other than to dispel rumours that there will be a minotaur.

Evolution of AMazeBot

The AMazeBot is less than a week away! The deadline for students to submit their bots is tomorrow, and the competition takes place on Wednesday. Even at this late stage I’ve been making some minor tweaks to the system, which has delayed me from describing all the major changes I made when I rewrote it last year. I’ll attempt to do so now.

The original Amazebot system consisted of only a single module that was used both for writing bots and in the competition show. This module was contained in a library that could not be run independently, instead relying on students’ code for the main function. A compiled Amazebot program would create a window with a maze, run the bot through it while drawing its path, and then exit writing the results to a log file. The mazes were procedurally generated based on a seed value which was obtained from an ini file. For the show, a script was prepared which, for each of the 5 rounds, did the following: modify the ini file to specify the seed for the round, execute each bot program in turn, and process the log file to create an HTML file showing the bot rankings.

This system worked adequately, but there were a number of deficiencies. The solutions to these resulted in the system being split into 3 modules, each described below.
Read the rest of this entry »

Posted in AMazeBot. Tags: , . Leave a Comment »

AMazeBot

It’s been over 2 months since my last post! In that time my attention has mostly been devoted to the Amazebot programming competition. I’ve been doing several activities related to it: updating the software, running workshops for beginners, and designing a promotional T-shirt. When I discovered that I had a few hits from people searching for “amazebot” I felt I should capitalize on this. The competition takes place just a month from now, so perhaps it’s a bit late for that but at least this will all be in place and ready for next year!

The Amazebot is an annual competition run at Mohawk College, open to all students (though most entrants are from Software Engineering). Competitors must write a program that will navigate a virtual robot through given mazes as efficiently as possible. It was started in 2003 by Professor Mark Yendt, in an effort to show students a fun side of programming. The first 2 competitions were done in C++, and thereafter switched to Java.

While I was in college I entered 3 times, and (I must beg pardon for this boasting) I won first place all 3 times. It wasn’t all just talent though–I put a lot more time into it than most, and I believe that effort is what really paid off. Back then the system was rather primitive, both in terms of the tools provided for students to develop their bots, and the quality of the visual presentation during the competition itself. I had several ideas for improvement, and after I graduated Professor Yendt graciously allowed me to rewrite the software from scratch. My version was first used in the 2008 competition and was well received by both entrants and spectators. You can see the evolution of the system in these 3 screenshots:

amazebot2003

2003

amazebot2005

2005

amazebot2008

2008

The basic concept has remained the same over the years though. The maze is constructed on a grid of 44 × 44 cells, each of which can be either open (floor) or closed (a wall). This is simpler to deal with than some other types of mazes, in which walls are drawn only between cells. Instead of escaping the maze, bots must attempt to reach a 4 × 4 cell goal room. A bot can perform a few different actions: it can move forward or backward, turn left or right, and look into the cell ahead or to either side of it. Each action costs a certain number of points–this represents energy that a real bot would have to expend to do anything. The challenge is that bots start out without any information about where the walls are–they are given only the location of the goal room. They must explore and discover the layout of the maze as they go along in order to find a path to the goal. There are 5 rounds in the competition (each a different maze) and bots with the lowest overall scores win.

I’m planning a series of posts to discuss in detail how the system works, new features I’ve introduced, and the competition itself. I’ll also offer tips and tutorials for students getting started.

Posted in AMazeBot. Tags: , . Leave a Comment »
Follow

Get every new post delivered to your Inbox.