Double Blind

I’ve started mocking up what the XML descriptions and control scripts for Thousand Parsec single-player mode would look like in a /usr/share/tp context. The idea is for the servers, rulesets, and AI clients to provide their own descriptions of what they are and what they need, as well as a common interface that clients can start them with. This way, none of the components are bound to each other’s specifics. The design is admittedly very UNIX-centric currently. Feedback, as always, is appreciated.

The client itself (possibly via a client library) populates the single-player wizard based on the XML parameters. Select a server in the Server dropdown box, the Ruleset dropdown box is populated with that server’s rulesets; select a ruleset, and the AI Client box is populated with compatible AI clients. A few other standard parameters exist (port, number of AI clients) along with additional parameters brought in from the XML files. The control scripts take care of actually passing this stuff as arguments to the server and AI clients. Interestingly, this entire process doesn’t appear to require using the administration protocol at all.

However, I have been banging around this idea of saving and loading games (for post-GSoC implementation), which would definitely need an admin connection to work, along with cooperation from stateful AI clients.

Another relevant post-GSoC idea is adding UNIX IPC socket connections to tpserver-cpp and the protocol libraries, both for player and admin connections. This would be used by the game clients for single-player mode and by the admin clients for local administration. The server XML file and single-player stuff would need to be generalized to specify a connection type rather than defaulting to standard TCP.

Jul 26th, 2008
Comments are closed.