2009-02-27 15 views
2

Ich entwickle Open-Source-Cross-Plattform-Plattform für Nicht-Echtzeit-Multiplayer-Chat/Spiel-System. Wie Kartenspiele, Brettspiele, Turn-based, etc. Server werden serverseitig (nicht vom Benutzer Computer) erzeugt. Der Kunde hat diese Spielmodule oder lädt das Spielmodul herunter und führt sie dann aus.Gutes asynchrones TCP-basiertes Protokoll für Nicht-Echtzeit-Spiele?

Ich bin zu dem Schluss gekommen, dass das beste Protokoll "IRC-like" ist. Damit gibt es Kanäle für Chats und Spiele.

Zum Beispiel gibt es Kanäle

  • Lobby
  • Lobby.English
  • Lobby.Finnish
  • Lobby.Mygame -
  • Lobby.Mygame.English
  • für ein bestimmtes Spiel Chat Game.Server.Announcements - Wenn ein neuer Server erstellt wird, ruft ihn der Server hier an. Alle Kunden hören sich das an. Sie können eine Liste aller laufenden Spiele-Server erhalten.
  • Game.3636534.chat - spesific Spiel Chat
  • Game.3636534.game - Nutzer Befehle wie Kaufen X hier und Server senden reagiert auf sie

Einige Sachen, die ich

    in

    haben gesucht
  • XMLRPC ist nicht gut, weil Sie für neue Daten alle paar Sekunden
  • ICE abzufragen haben - Ziemlich gut, aber sollte ein bisschen mehr RPC freundlich
  • ActiveMQ/RabbitMQ und Es ist das Publisher/Consumer-System, nach dem ich suche. Problem ist, dass eine gute Benutzer-ACL fehlt. Im Grunde kann also jeder überall hin "hingehen" und Müll an den AMQ-Hauptserver senden.

Die unterstützten Programmiersprachen hierfür sollten mindestens C#, Java und Python sein. Verschlüsselung Unterstützung sollte auch da sein. Und natürlich kostenlos.

Antwort

2

Sie sollten sich XMPP ansehen, einen offenen Standard für asynchrone Nachrichtenübergabe. Es hat Unterstützung für Verschlüsselung, Firewall-Traversal und vieles mehr. Server und Bibliotheken sind für viele, viele Plattformen verfügbar, einschließlich der von Ihnen genannten.

Links zu Implementierungen und Informationen: http://xmpp.org/