Hello everybody. One thing that I haven't seen discussed yet is the exact goals of GTP. It probably seems obvious to everybody what these goals are, but perhaps not everybody's view is exactly the same, so I think it would be good if we could put together a goals document that we can all agree on. Then when we discuss features and commands, we can always refer back to the goals document and use it to help us decide whether or not these commands fit our goals well. Maybe we could even put the goals document on the "lists.lysator.liu.se" web site? In any case, it seems like it would be nice to have a place where more or less permanent documents that we have already agreed on are kept.
Anyway, here's my first attempt at a goals document. It's a combination of what I think are goals and what I have seen discussed here in the past week or so. ********************************************************************* GTP Goals
Part I - Functional Requirements. These are the actions that our command list must allow go programs to perform.
1. Usable to play games vs. other programs head to head. 2. Usable for regression tests on programs. 3. Usable for playing go on a server.
Part II - Implementation Goals. Constraints that we must follow when designing the exact command list.
1. Simple to implement and debug; all ASCII. 2. Possible to create bridges that let GMP programs play head to head vs. GTP programs. 3. There must be a minimal command set that is exactly enough commands to play head to head, no more no less! All commands required for regression tests or server play should be optional extensions that programmers need not implement.
Part III - Necessary Auxiliary Programs. These are programs that we (the GTP designers) must write for GTP to be successful. All must be open source.
1. An example program that implements the minimal GTP command set properly and can play a legal game (similar to the goDummy program for GMP). 2. An arbiter to be used in head-to-head games, communicating to both programs, judging legal/illegal rules, etc. Should the arbiter know how to score a game? 3. A GMP-to-GTP bridge to allow GMP programs and GTP programs to play against each other.
********************************************************************* So what does everybody think? Anything I left out/shouldn't have included/got wrong?
PS - Hopefully this message will make it to the mailing list in plain text - I think my mailer is set up properly, but I may have made a mistake that will make it send HTML mail. My apologies if this happens, I'll make sure to fix it if it does.