README.txt
========================
Comsyste is a utility for evaluating the fairness of combat systems for
computer games by running simulations of fights under the given combat
formulae. It can output the results as win/loss records, a table of certain
statistics, or as a play-by-play account of every fight. It is the user's job
to analyze the output and then tweak the combat system to his/her own liking.
At this time, Comsyste only supports very basic mathematical expressions, but I
do plan soon to add in variables, if-else blocks, and other constructs.
Comsyste is currently hosted on Sourceforge at <http://comsyste.
sourceforge.net> and is licensed under the GNU General Public License. It was
written by John T. Wodder II (minimiscience@users.sourceforge.net) after
reading the very excellent lex & yacc primer at <http://epaperpress.com/
lexandyacc/>. Please do not e-mail the author with requests for help with your
combat system or other game mechanic; he has enough trouble dealing with his
own systems.
DISTRIBUTION CONTENTS
========================
COPYING - the GNU GPL, under which the source is licensed
Makefile - the makefile
OGL.rtf - the Open Gaming License, under which material used by example2.cst is
licensed
README.txt - this file
comsyste.l - the (f)lex input file
comsyste.y - the yacc/bison input file
doc/comsyste.1 - the manpage as a manpage
doc/comsyste.pdf - the manpage as a PDF
doc/comsyste.pod - the Plain Old Documentation source for the manpage
doc/comsyste.txt - the manpage as a boring text document
example1.cst, example2.cst - two example scripts
exprtree.c, exprtree.h - handling of parse trees for mathematical expressions
fight.c, fight.h - handling of monsters, tiers, & the actual combat simulation
NOTES ON COMPILING
========================
As this is my first open-source project, it may contain numerous
problems which prevent it from being compiled unaltered on certain platforms.
Comsyste was originally written & compiled on an iBook G4 running Mac OS X,
v.10.3.9, using version 3.3 of the GNU C Compiler, flex v.2.5.4, and bison
v.1.28, so if your platform or environment differs greatly, you might want to
take note of the following:
- Random numbers are generated using the BSD function random(), an improved
version of rand(). If your C library doesn't have this function, or if you
simply want to use a different pseudorandom number generator, you will need
to edit the call to srandom() on line 120 of comsyste.y and the call to
random() on line 87 of exprtree.c.
- Command-line options are parsed using the getopt() function. If you don't
have this, you will need to make quite a bit of changes to the main()
function at the end of comsyste.y.
- The makefile invokes flex with the -i switch, which makes the resulting
lexer case-insensitive. If your (f)lex implementation doesn't have this
option, now's the time to edit the makefile. (You'll also need to edit it
if you don't have flex or bison.)
That's all the potential incompatibilities that I can think of. Enjoy!
VERSION HISTORY
========================
v.1.0 - 30 June 2007 - first release completed & uploaded to Sourceforge