What is Code War ?
It is a tournament for programmers. Each participent writes a 'creature' program that will compete with the other creatures in a virtual environment defined on a server. It is a programming challenge for fun with the intention that everyone will learn from everyone else. The basic premise is that every part of the program is open-source after a contest has finished, so that participents can learn the winning techniques from each other.
What is the virtual environment like ?
This has not been finalized yet, but ideas include a few possible actions for your creatures. They can:
Move into any of the 8 directions in the grid or stand still.
Harvest food from a food resource.
Attack each other, which would cost some resources. Maybe get resources if they manage to kill another creature.
Duplicate themselves (i.e. breeding), which costs resources as well.
Die as a result of an attack, a natural hazard or lack of food.
Scan their environment for sources of food / foes / hazards.
This list is not comprehensive and further ideas are welcome. The world itself will be a grid with some wall tiles, some food tiles, some hazard tiles (things like holes would be static, but stuff like fire could move and spread).
What programming languages can be used ?
The aim is to provide for C++, VB, Java and C#. The precise architecture is not decided yet, but will be either COM or local TCP/IP. The server part will be written in C++. Before the first tournament, the server code will be posted here for inspection, as well as sample client creatures in each language we support.
How do I compete ?
You compete by sending your source code to the organiser of the event. The source code has to compile and adhere to the common interfaces that will be defined. If there is any cheating or hacking the environment, the entry will be disqualified. The organisers are yet to be decided but could probably include Gabriel and or myself. Alongside the code, there should be a description of the strategy employed and some documentation on how the program achieves this strategy.
How does the tournament work ?
The tournament will be on a weekly basis, or on a two-week basis, as decided by attendence and the participents. A simple schedule would be:
- Wednesday: deadline for submitting your creature code
- Thursday: tournament is run
- Friday: results are published, as well as the source code for the entries. The winner is notified so that he can start writing his article for the 'hall of fame'.
What is the current status ?
We are still in the planning phase and most importantly try and decide on the underlying architecture of the system. The rules of the Game are also up for discussion.