Giter Club home page Giter Club logo

tankode's Introduction

Tankode

Tankode logo

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.

Tankode demo

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 a work in progress

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.

Tankode compared to Robocode

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 and y coordinates, if needed, those need to be calculated based on initial position and movements.

Pre-requisites

To compile and run Tankode, you'll need:

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.

Running the Tankode default example

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.

Credits

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.

tankode's People

Contributors

rudymatela avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

tankode's Issues

Not an issue, just a hack to store README images.

Not an issue, just a hack to store README images. Features:

  • Keeps the repo history clean, without binary blobs for the images I want to appear on the README;

  • Saves GitHub bandwidth, so images aren't redownloaded after every clone.

Used to be that I stored images on releases, unfortunately, that does not work anymore.

Images

tankode-400x200
tankode-logo-colour-400px

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.