HomePage RecentChanges

This wiki was last modified more than half a year ago and will be deleted eventually!

TechnicalDetails

How DreamStones works …

DreamStones uses Python, PyGame? for the client and TwistedMatrix? for the network.

All actions are client-driven - there is no “game clock”. (There isn’t any multithreading either)

Network commands are sent in text (“MOVE 6 N” means “player 6 moves to the north”, etc.), XML (XML-RPC ?) is being considered.

Most game data is encoded in XML.

(Hopefully this will be filled in / reorganized later on)

Five types of communication

I will dump some of my analysis here:

Basically, you can have 5 kinds of network communication in the game (not all may be necessary):

Personally, I’m a great fan of reusing existing protocols, like Jabber for these kinds of things. I had some experience with Jabber before, and I think that its architecture is ideal for this use case.

Another option is to use http or ftp for the file download and upload, and some custom-made protocol for the interaction. This gives a benefit of all the http servers, proxies, caches, etc.

Yet another option is to use a custom protocol for everything.

Discussion

I’m using a custom protocol right now, but something like Jabber would be neat too. I had researched Jabber a bit with that in mind, even :) – EmileKroeger