I'm developing open source cross-platform platform for non-realtime multiplayer chat/game system. Like card games, boardgames, turn-based, etc. Servers are spawned server-side (not from users computer). Client has these game modules or downloads game module and then runs them.
I've come to conclusion that best protocol is "IRC-like". So that there is channels for chats and games.
For example there's channels
- Lobby
- Lobby.English
- Lobby.Finnish
- Lobby.Mygame - chat for one particular game
- Lobby.Mygame.English
- Game.Server.Announcements - When new server is created server shouts it here. All clients are listening to this. You can get list of all game servers running.
- Game.3636534.chat - Spesific game chat
- Game.3636534.game - Users send commands like Buy X here and server responds to them
Some stuff i've looked into
- XMLRPC is no good because you have to poll for new data every few seconds
- ICE - Pretty good but should be a bit more RPC friendly
- ActiveMQ/RabbitMQ and it's publisher/consumer system is something i'm looking for. Problem is that good user ACL is missing. So basically everyone can "go" everywhere and send any garbage to the main AMQ server.
The supported programming languages for this should be at least C#, Java and Python. Encrypting support should be also there. And of course free.