Update README files with new changes.

Also add changelog to top level readme
This commit is contained in:
mdiluzio 2014-12-29 21:57:52 +00:00
parent fc62785768
commit 286cc81f3c
3 changed files with 105 additions and 48 deletions

View file

@ -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

View file

@ -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.

View file

@ -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