There's a public spellcast server available at
during the conference. Feel free to
connect and start testing!
What is a HackFest?
- A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary. RFC1392, the Internet Users' Glossary, usefully amplifies this as: A person who delights in having an intimate understanding of the internal workings of a system, computers and computer networks in particular.
- One who programs enthusiastically (even obsessively) or who enjoys programming rather than just theorizing about programming.
- A person who is good at programming quickly.
The HackFest is a competition where hackers get to demonstrate their programming abilities.
What is the goal of the HackFest?
There are two separate categories to the competition, both of which relate to a game based on Spellcast. Note, that although the program to be used during the competition is meant to follow the rules of the original game as closely as possible, some features may not be implemented (or different). These differences will be clarified closer to the end of the competition. The two categories are:
- To develop an AI program which can play a game without human assistance.
- To develop a GUI program which allows a human to play the game
If you are not familiar with the game, it is recommended that you first try playing the original game
How will this work?
Prior to the start of the conference we will be releasing a client library which allows your program to communicate with a Spellcast server. It provides an API which allows a program to inform the server of the actions (making spell gestures, selecting where spells are cast) and see what other players are doing.
During the conference (and probably before too) we will have a server that you can use to test your robot against other people's bots (or people). You will have to submit the source code for your program and an explanation of how the algorithms you used work. On Friday and Saturday we will test the programs.
The winner of the AI category will be decided based on how well the program plays the game as well as on the ingenuity of the algorithms used. The winner of the GUI program will be decided based on which program the judges believe is the best combination of easy to use, looks good and is reliable.
IBM is contributing two Apple Power Mac® G5s each w/ dual IBM PowerPC™ processors to linux.conf.au to be used as prizes for their annual Hackfest. Certificates redeemable from Terra Soft Solutions, Inc. for the G5s will be awarded to the winners.
- Your program must be able to either
- Play a game of Spellcast against the server which we provide. OR
- Provide a user interface for a human to play a game of Spellcast against the server which we provide
You do not need to use the client library interface which is made available, but obviously must at least implement the protocol used by the library and server to communicate.
- Your program must be released under the GPL License. Copyright and license information must be included with your entry for it to be eligible.
- We will be compiling your program from source. If we can't work out how to compile it you'll be disqualified, so make it easy (see the next rule)! Also since we'll be reading the program source code, it will be to your advantage to format it well to make it easy to read.
- A Makefile must be supplied with the package and by default must generate
a program called "
spellcast_ai" or "
spellcast_gui" (depending on the category you are entering) in the current directory. The program should by default generate no output to standard output or standard error. Writing a small amount of information to a log file in the current directory is acceptable.
- The spellcast_ai and spellcast_gui programs should at least take the
-h hostname" to specify which spellcast server to connect to. AIs must also take a
-n usernameto specify which username that the AI will use when connecting to the server.
- Your program is not allowed to cheat (including exploiting bugs in the protocol, or interfering with other AI programs). If the judges see that your program that is cheating you'll be disqualified.
- Individual or team entries are permitted. There is no limit to the size of a team.
- Only one program per HackFest registration may be submitted, but an individual or team may register multiple times if they want to submit more than one program.
- If a team entry wins the HackFest, splitting the loot is up to the members of that team.
- All entrants must be registered paid-up attendees of linux.conf.au 2005 and must be present at the conference. Mini-conf only attendees may not enter.
- Linux.Conf.Au 2005 speakers and helpers may enter the HackFest.
- Linux.Conf.Au 2005 organisers may enter the HackFest but will not eligible to win any prizes. If an organiser wins, the prize will be awarded to the next best eligible entrant
- HackFest judges, their immediate family, their pets(no matter how cute) or imaginary friends may not enter.
- Your program source code and explanation has to be submitted by 12am AEST (GMT+10:00, Local Time in Canberra), Friday April 22nd 2005) (eg by sometime Thursday night of the conference).
- The winner of the AI category will be decided by the judges based on how well the program plays the game and based on the ingenuity of the algorithms used by the author(s). The method of evaluation and weighting of these factors will be chosen at the judges' discretion.
- The winner of the GUI program will be decided based on which program the judges believe is the best combination of easy to use, looks good and is reliable. The method of evaluation and weighting of these factors will be chosen at the judges' discretion.
- We reserve the right to change the rules, especially if it would make the competition more interesting/competitive.
- What programming languages am I allowed to use?
- The client library will provide a C++ interface, but you're allowed to use anything you want to. If you use something other than C++ it's up to you to work out how to talk to our client library, or implement the protocol directly in another language. Remember, since we have to build your program you don't want to make it too hard for us. Also note that the protocol may change, though we will do our best to inform entrants of these changes. It will be important to extensively test your program during the last couple of days of the competition
- What sort of resources can I expect when my program is running - eg how much memory, number of CPUs, etc.?
- This will depend a bit on what sort of computers we end up with. I'd recommend you make your program tunable. For much of the testing during the week people will be using whatever they can get their hands on - most likely laptops. When running multiple AIs on the same machine they will be limited for fairness.
- Can you tell me more about this Spellcast game?
- Here are some extra resources you may find useful:
- I've got more questions about the HackFest; who should I ask?
- You can email the HackFest judges at email@example.com.
You will need to register for the Hackfest competition. You can do so using this form
There is a mailing list available for asking questions about the Hackfest. It will also be used to make announcements about future developments for the competition (eg new code releases). You can subscribe to it here:
The latest version of the source code is available here.