H-uru / Plasma

Cyan Worlds's Plasma game engine
http://h-uru.github.io/Plasma/
GNU General Public License v3.0
205 stars 81 forks source link

Support loading server keys from a file #10

Closed dpogue closed 13 years ago

dpogue commented 13 years ago

Right now the server public keys are hardcoded, making it difficult to have a single build that can connect to multiple servers.

PlasmaClient has a mechanism for loading keys from a file, which branan has expressed an interest in porting over.

cwalther commented 13 years ago

Has any thought been spent on designing a standard format for a file describing a shard or a list of shards, containing a human-readable description, server addresses, and keys?

It would be nice if anyone could publish info about their shard, or about a list of known shards, by HTTP, in a single format that every client understands, so that nobody would have to type in server addresses or keys by hand or convert between configuration files made for different clients.

It seems to me that what Hoikas does for WhoM (http://mud.hoikas.com/shards.xml) could work well for this purpose. It's XML, which is easy to read in environments where an XML parser is available anyway, and imposing a bit more restrictions on the XML could also make it parseable by a simpler parser for environments where no XML parser is available by default and introducing one would be overkill. A different format like PlasmaClient's could be chosen too. Standardizing on one format is what seems key to me.

If I ever get around to writing my hypothetical iPhone KI chat client, I'm going to need such a thing. I'm imagining something like a cached list of shards in the client, and some buttons "Update shard list from hoikas.com", "Update shard list from kolleegium.ch", "Update shard list from enter URL here".

branan commented 13 years ago

PlasmaClient uses a ini-based system, which makes it easy to embed in Plasma (which can already parse ini files and run commands from them). XML parsing is also already in Cyan's code, but we'd have to add the right local parsing code for the particular XML format.

All in all, I think extending the code that already parses the .fni files and graphics.ini is the best way to handle servers.

zrax commented 13 years ago

This should be implemented in master now. You will need to put an appropriate server.ini in the game's root (a sample is provided in source), or specify the path to one with the /ServerIni path-to-ini-file switch.