From 286cc81f3cee868e173bdd45e6ac7b2cd920c66a Mon Sep 17 00:00:00 2001 From: mdiluzio Date: Mon, 29 Dec 2014 21:57:52 +0000 Subject: [PATCH] Update README files with new changes. Also add changelog to top level readme --- README.md | 36 +++++++++++++-- source/game/README.md | 17 ------- source/ttrts/README.md | 100 +++++++++++++++++++++++++++++------------ 3 files changed, 105 insertions(+), 48 deletions(-) delete mode 100644 source/game/README.md diff --git a/README.md b/README.md index a1abd86..57ba61f 100644 --- a/README.md +++ b/README.md @@ -19,10 +19,40 @@ TTRTS is from the ground up designed to be a fun way to practice programming. An $ cd ttrts $ ./bootstrap.sh $ ./ttrts # To launch binary and display usage - + +----------------------------------------------------------- +## Development + +* [master](master) branch always stores latest stable release +* master/{hotfix} branches store in progress hotfixes for the stable branch +* [dev](dev) branch stores in progress development +* dev/{feature} branches store features + +----------------------------------------------------------- +## Changelog + +## 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 a la +* Game can now end if no units are able to move +* Various C++ api simplifications +* ttrts now integrates +* Integration of perl api from [ttrts-players](https://github.com/mdiluz/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](source/ttrts/README.md) for full usage and game rules +See the ttrts binary [readme](source/ttrts/README.md) for full usage and game rules -See [my ttrts-players repository](https://github.com/mdiluz/ttrts-players) for examples of players +See [ttrts-players](https://github.com/mdiluz/ttrts-players) for examples of AIs diff --git a/source/game/README.md b/source/game/README.md deleted file mode 100644 index 4b61793..0000000 --- a/source/game/README.md +++ /dev/null @@ -1,17 +0,0 @@ -TTRTS Gameplay -================= - -The game takes place in a series of simultaneous turns on an arbitrarily sized 2D board. - -Each player is in control of a set number of starting units, and each turn receives data on the status of the board. - -Each player must then issue a command to each unit in their control. - -All commands are evaluated simultaniously. - -All attempted movement to the same square by two or more units will fail. - -Friendly fire is enabled by default. - -A player wins when all opposing units have been destroyed. - diff --git a/source/ttrts/README.md b/source/ttrts/README.md index 4805313..478fa65 100644 --- a/source/ttrts/README.md +++ b/source/ttrts/README.md @@ -1,58 +1,102 @@ # ttrts - Tiny Terminal RTS v0.3.0 -## SYNOPSYS +## SYNOPSIS ttrts MAPFILE ## DESCRIPTION ttrts is a tiny terminal based RTS where that uses text - files as order lists to control it's units. + files as order lists to control it's units This means that any user, program or cat that can read - and write to text files can play the game. - -## USAGE - When invoked, ttrts will set up a full game and output a - single file representing the current gamestate into a - local directory called `ttrts_{GAME_NAME}`. - - This file can be read in and interpretted by human, robot - or cat. ttrts will wait for orders files to be placed in - it's current working directory. - - Once orders have been set for each player taking part - ttrts will calculate the new game state and output a new - gamestate file for the next turn. - - This process repeats until a winner is chosen! + and write to text files can play the game ## OPTIONS MAPFILE - File to read in the initial game state from --------------------------------------------------------------- +## USAGE + When invoked, ttrts will set up the game in a local + directory called `ttrts_{GAME_NAME}` -## GAMESTATE FILE FORMAT -### Name + The GAMESTATE files in this directory can be read and + interpreted by human, robot or cat. + + ttrts will then await ORDER files from each participant + + Once all ORDER files have been received ttrts will + calculate the turn and output a new GAMESTATE file + + This process repeats until the game is over + +----------------------------------------------------------- +# TTRTS GAMEPLAY + +## RULES + The game takes place in a series of simultaneous turns + on an arbitrarily sized 2D board + + Each turn, the client outputs a GAMESTATE file and + waits for an ORDER file from each player + + All commands are evaluated simultaneously with friendly + fire enabled by default + + The game is over when any of three conditions are met - + * All remaining units are controlled by a single player + * No units are left (draw) + * All units left are unable to move (draw) + +## UNITS + Each unit occupies a single tile on the board, facing + in a compass direction (NESW) + + Units will only accept orders from their owner + + Units can receive only a single order each turn + + Units cannot occupy the same tile as other units/walls + +## ORDERS + F - Move unit [F]orward one space, leaving a wall + + This wall will remain until the end of the game, + blocking movement to that tile + + Movement orders have no effect if impossible, eg. + * Attempting to move outside of map + * Attempting to move on to tile occupied by unit/wall + + L/R - Rotate unit [L]eft or [R]ight + + Unit will rotate clockwise or counter-clockwise, + this order cannot fail + + A - [A]ttack in straight line in front of unit + + Attack will continue forward until unit can't progress, + all units within the path of the attack are destroyed. + +----------------------------------------------------------- +# FILE FORMATS + +## Gamestate File Turn_{TURN_NUMBER}.txt + ### Contents ===== ttrts v{MAJOR}.{MINOR}.{PATCH} ===== NAME:{GAMENAME} SIZE:[{X},{Y}] TURN:{TURN_NUMBER} - ... {any extra properties could go here} + WALL:[{X},{Y}][{X},{Y}][{X},{Y}]...{repeat for all walls} ~~~~ UNIT:{ID} pl:{PLAYER} vs:{VIS} dr:{DIR(NESW)} ps:[{X},{Y}] ... {continue for all units} END -## ORDER FILE FORMAT -### Name +## Order File Player_{PLAYER_ID}_Turn_{TURN_NUMBER}.txt + ### Contents ORDER:{ORDER_CHAR} id:{UNIT_ID} ... {continue for all orders} END -### Orders - F - move unit [F]orward one space - L/R - rotate unit [L]eft or [R]ight - A - [A]ttack in straight line in front of unit