💾 Archived View for gemini.thegonz.net › sggs › README.gmi captured on 2023-04-19 at 22:24:55. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2021-11-30)
-=-=-=-=-=-=-
A system for playing turn-based multiplayer games.
sggs makes use of a couple of features of the gemini protocol which aren't supported by all clients.
If you have problems, try a different client and/or see if you can implement the necessary features in your existing client.
Test streaming in your client: you should see the numbers 1-5 appear one at a time.
Hopefully everything is self-explanatory. Just follow the links and poke around.
I would be very happy to accept submissions of new games to be played on the system. This is meant to be easy. Games are implemented as commands which accept some arguments, write output to stdout, use appropriate exit codes, and store state in the current directory. There's no library to worry about, so you can easily use your favourite language. See the source code links from the help pages of the existing games for examples.
Detailed instructions on how your game command should behave
If you've written a game you'd like me to include, please first test it thoroughly (you don't need a running instance of sggs for that, just run it from the command line in a test state directory), then send the source along with any build instructions to <mbays@sdf.org>, licensed under GPLv3. Please make the code as readable as possible -- I will only accept it if I am convinced that it will not open a security hole.
The full source for the server is available below, released under the GPLv3. Getting it working may take some fiddling, but hopefully it's possible. Note that although I decided against using the AGPL to make it a legal requirement, it would still be polite to release the source for any modifications you make for your instance.
git bundle (use 'git clone sggs.bundle sggs' to clone from it)