Tankode is a programming action game. The goal is to write a program to control a robot: a tankode. Tankodes battle in a virtual arena: they must fire at enemies and dodge bullets. The last tankode standing wins.
The game has a simple API for Haskell, C, Ruby and Bash. Example tankodes are provided with the game package.
The game has been designed to be programming-language independent. Tankodes read-and-write to-and-from standard input-output following the very simple Tankode Protocol. So, it is very easy to add new language bindings.
The game is open-source, and licensed under the LGPLv2.1.
Tankode is work in progress under active development:
- Expect it to crash often for now;
- Linux-only at the moment;
- Documentation is not great for now;
- Code needs a major cleanup.
See the TODO list for more details.
The Tankode game is very similar to, and inspired by, Robocode. Differences include:
- Robocode Java and .NET only, Tankode is designed to be language independent;
- game physics;
- game graphics;
- battlefields are not necessarily square, and can have obstacles;
- tankodes cannot query their their
x
andy
coordinates, if needed, those need to be calculated based on initial position and movements.
To compile and run Tankode, you'll need:
- GCC, glibc, GNU Make
- mesa, glu, freeglut
- openal, freealut
- GHC, cabal-install, haskell-cmdargs
- haskell-LeanCheck
You probably have half of the above already installed.
On Arch Linux, the following should be enough to install everything:
$ pacman -S gcc glibc make
$ pacman -S mesa glu freeglut
$ pacman -S openal freealut
$ pacman -S ghc cabal-install haskell-cmdargs
$ cabal install leancheck
On Ubuntu and Debian variants, alternate calls to apt-get install
should be
enough.
In the future, we should provide packages for installation of Tankode and its language bindings on several systems (e.g.: Arch Linux & Ubuntu), so that users need not to worry about dependencies.
For now, to compile and run Tankode, run the following commands:
$ git clone https://github.com/rudymatela/tankode
$ cd tankode
$ make
$ make -C runner/display/sounds download
$ make -C runner/display/sounds unzip-and-link
$ make run
See the Makefile to try to learn how to run your own examples and custom made tankodes. Future versions should have better instructions and steps than this.
Sound effects were kindly provided by Little Robot Sound Factory under the CC-BY 3.0 license. Little Robot does not necessarily endorses their use in Tankode.