mdiluz / ttrts

The Tiny Terminal RTS with programmable AI

Home Page:http://mdiluz.github.io/ttrts/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TTRTS

The Tiny Terminal RTS where the players write their AIs


Introduction

A simple terminal based RTS game that uses text files to communicate game state and unit commands.

TTRTS is from the ground up designed to be a fun way to practice programming. Any programming language than can handle file I/O can be used to make an AI for TTRTS, and this extensibility allows for any type of programmer to enjoy designing and playing against their friends.


Building TTRTS

Requirements

  • CMake - our build system uses cmake
  • Linux/OSX - currently no support for Windows, tracked with Issue #9

To Build

$ git clone https://github.com/mdiluz/ttrts.git
$ cd ttrts
$ ./bootstrap.sh
$ ./ttrts # To launch binary and display usage

Development

  • master branch always stores latest stable release
  • master/{hotfix} branches store in progress hotfixes for the stable branch
  • dev branch stores in progress development
  • dev/{feature} branches store features

Changelog

v0.4.0

  • Updated with network functionality
    • Game can now be hosted with ttrts --server option
    • Server can be connected to with ttrts --client
  • Updated command line interface with new launcher script
    • map file must now be specified with --map=FILE
  • Slight refactor of libraries to account for new run targets

v0.3.2

  • Fix bug when loading map files with walls
  • Fix ttrts on OSX
    • Install man files to correct location
    • Update usage of sed to be compatible with BSD as well as GNU versions
  • New maps and renames of old ones

v0.3.1

  • Upgraded install target to repository
    • libttrts static library binary in /usr/local/lib
    • ttrts headers in /usr/local/include/ttrts
    • bash completion into /etc/bash_completion.d/
    • man page into /usr/local/man/man6
    • maps into /usr/share/ttrts/maps
  • client now supports env variable configuration
    • TTRTS_MAPS for location of map files, defaults to /usr/share/ttrts/maps
    • TTRTS_GAMES for gameplay directories, defaults to /tmp/
  • Map files now have proper header
  • NOTE: This version is compatible with v0.3.0, but old generated mapfiles will need the additional header line added

v0.3.0

  • Additional functionality of walls
    • Walls are noted in gamestate file on new "WALL:[X,Y]..." line
    • Walls are impassable by all movement
  • Units leave an impassable wall behind after movement
  • Game can now end if no units are able to move
  • Various C++ api simplifications
  • Integration of perl api from ttrts-players

v0.2.0

  • All team references changed to player
    • Order file format changed to Player_#Turn#.txt
    • Unit descriptors now use pl: instead of tm:
  • Various other C++ api corrections and refactors

v0.1.0

  • First playable version of ttrts

Further Information

See the ttrts binary readme for full usage and game rules

See ttrts-players for examples of AIs

About

The Tiny Terminal RTS with programmable AI

http://mdiluz.github.io/ttrts/


Languages

Language:C++ 85.9%Language:Perl 10.2%Language:Shell 3.9%