{"id":20606128,"url":"https://github.com/rudymatela/tankode","last_synced_at":"2025-04-15T02:41:33.115Z","repository":{"id":68739051,"uuid":"85884293","full_name":"rudymatela/tankode","owner":"rudymatela","description":"A programming action game.","archived":false,"fork":false,"pushed_at":"2024-02-15T09:58:17.000Z","size":750,"stargazers_count":14,"open_issues_count":0,"forks_count":2,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-28T14:23:03.929Z","etag":null,"topics":["action-game","action-programming-game","bash-programming-game","c-programming-game","game","haskell-programming-game","lgpl","programming-action-game","programming-game","robocode","robots","ruby-programming-game","tankode","tanks"],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rudymatela.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-22T22:57:38.000Z","updated_at":"2024-02-15T09:58:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"d2da2ba8-d1ce-4bdb-84dd-19b42b0a4443","html_url":"https://github.com/rudymatela/tankode","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rudymatela%2Ftankode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rudymatela%2Ftankode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rudymatela%2Ftankode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rudymatela%2Ftankode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rudymatela","download_url":"https://codeload.github.com/rudymatela/tankode/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248996795,"owners_count":21195785,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["action-game","action-programming-game","bash-programming-game","c-programming-game","game","haskell-programming-game","lgpl","programming-action-game","programming-game","robocode","robots","ruby-programming-game","tankode","tanks"],"created_at":"2024-11-16T09:32:38.890Z","updated_at":"2025-04-15T02:41:33.095Z","avatar_url":"https://github.com/rudymatela.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"Tankode\n=======\n\n![Tankode logo](https://user-images.githubusercontent.com/3999598/27097071-fdf62eca-506a-11e7-9bf8-f15c06e6df20.png)\n\nTankode is a programming action game.  The goal is to write a program to\ncontrol a robot: a tankode.  Tankodes battle in a virtual arena: they must fire\nat enemies and dodge bullets.  The last tankode standing wins.\n\n![Tankode demo](https://user-images.githubusercontent.com/3999598/27097041-e832814c-506a-11e7-9b2d-3b28e1f7915b.gif)\n\nThe game has a simple API for Haskell, C, Ruby and Bash.  Example tankodes are\nprovided with the game package.\n\nThe game has been designed to be programming-language independent.  Tankodes\nread-and-write to-and-from standard input-output following the very simple\n[Tankode Protocol].  So, it is very easy to add new language bindings.\n\nThe game is open-source, and licensed under the [LGPLv2.1].\n\n\nTankode is a work in progress\n-----------------------------\n\nTankode is work in progress under active development:\n\n* __Expect it to crash often for now;__\n* _Linux-only at the moment;_\n* _Documentation is not great for now;_\n* Code needs a major cleanup.\n\nSee the [TODO list] for more details.\n\n\nTankode compared to Robocode\n----------------------------\n\nThe Tankode game is very similar to, and inspired by, [Robocode].\nDifferences include:\n\n* Robocode Java and .NET only, Tankode is designed to be language independent;\n* game physics;\n* game graphics;\n* battlefields are not necessarily square, and can have obstacles;\n* tankodes cannot query their their `x` and `y` coordinates,\n  if needed, those need to be calculated based on initial position and movements.\n\n\nPre-requisites\n--------------\n\nTo compile and run Tankode, you'll need:\n\n* [GCC], [glibc], [GNU Make]\n* [mesa], [glu], [freeglut]\n* [openal], [freealut]\n* [GHC], [cabal-install], [haskell-cmdargs]\n* [haskell-LeanCheck]\n\nYou probably have half of the above already installed.\n\nOn [Arch Linux], the following should be enough to install everything:\n\n\t$ pacman -S gcc glibc make\n\t$ pacman -S mesa glu freeglut\n\t$ pacman -S openal freealut\n\t$ pacman -S ghc cabal-install haskell-cmdargs\n\t$ cabal install leancheck\n\nOn [Ubuntu] and [Debian] variants, alternate calls to `apt-get install` should be\nenough.\n\nIn the future, we should provide packages for installation of Tankode and its\nlanguage bindings on several systems (e.g.: Arch Linux \u0026 Ubuntu), so that users\nneed not to worry about dependencies.\n\n\nRunning the Tankode default example\n-----------------------------------\n\nFor now, to compile and run Tankode, run the following commands:\n\n\t$ git clone https://github.com/rudymatela/tankode\n\t$ cd tankode\n\t$ make\n\t$ make -C runner/display/sounds download\n\t$ make -C runner/display/sounds unzip-and-link\n\t$ make run\n\nSee the [Makefile] to try to learn how to run your own examples and custom made\ntankodes.  Future versions should have better instructions and steps than this.\n\n\nCredits\n-------\n\n[Sound effects] were kindly provided by [Little Robot Sound Factory] under the\n[CC-BY 3.0] license.  Little Robot does not necessarily endorses their use in\nTankode.\n\n\n[Tankode Protocol]: doc/tankode-protocol.md\n[Tankode Display Protocol]: doc/tankode-display-protocol.md\n[TODO list]: TODO.md\n[Makefile]: Makefile\n\n[Arch Linux]:        https://archlinux.org\n[Ubuntu]:            https://ubuntu.com\n[Debian]:            https://debian.org\n[GCC]:               https://gcc.gnu.org/\n[glibc]:             https://www.gnu.org/software/libc/\n[GNU Make]:          https://www.gnu.org/software/make/\n[mesa]:              https://mesa3d.org/\n[glu]:               http://freeglut.sourceforge.net/\n[freeglut]:          http://freeglut.sourceforge.net/\n[openal]:            https://openal.org\n[freealut]:          https://github.com/vancegroup/freealut\n[GHC]:               https://www.haskell.org/ghc/\n[cabal-install]:     https://www.haskell.org/cabal/\n[haskell-cmdargs]:   https://hackage.haskell.org/package/cmdargs\n[haskell-LeanCheck]: https://hackage.haskell.org/package/leancheck\n\n[LGPLv2.1]:          https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html\n\n[Little Robot Sound Factory]: http://www.littlerobotsoundfactory.com\n[Sound effects]: https://opengameart.org/content/8-bit-sound-effects-library\n[CC-BY 3.0]:     https://creativecommons.org/licenses/by/3.0/\n\n[Robocode]: http://robocode.sourceforge.net/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frudymatela%2Ftankode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frudymatela%2Ftankode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frudymatela%2Ftankode/lists"}