Wird DataSnap für bis zu 8 nicht-kommunikationsintensiven bidirektionale Multiplayer-Spiel geeignet sein?

StackOverflow https://stackoverflow.com/questions/1836204

Frage

Ich baue eine kleine multipliplayer, die die folgenden benötigen:

  • muss in Delphi geschrieben werden
  • muss Internetverbindung unterstützen (nicht nur LAN)
  • Arbeit über HTTP
  • eine Verschlüsselung der Pakete unterstützen (es kann benutzerdefinierte sein)
  • der Lage sein, Befehle an den Server senden
  • der Lage sein, Antworten vom Server
  • erhalten
  • der Lage sein, einen Server zu 8 Spieler anzuschließen
  • der Lage sein, komplexe Objekte zu übergeben (vielleicht JSON serialisiert) an die Server

Denken Sie, die neuen Delphi 2010 DataSnap verwenden in diesem Szenario erfolgreich sein können oder soll ich mit dem normalen alten TSocket gehen?

War es hilfreich?

Lösung

DataSnap kann alles tun, was Sie aufgelistet haben oben:

  1. DataSnap in Delphi geschrieben.
  2. Sie kann über HTTP über jede Verbindung, lokale, Netzwerk- oder Remote-Verbindung.
  3. Es wird über HTTP arbeiten, einschließlich der Unterstützung für Tunneling die HTTP-Verbindung
  4. Sie können den Datenstrom filtern wie Sie wollen. Das Produkt umfasst einen Kompressionsfilter. Daniele Teti hat geschrieben einige sehr schöne Verschlüsselung Filter .
  5. Sie können durch den Aufruf von Servermethoden
  6. Befehle an den Server senden
  7. Sie können eine Antwort vom Server über den Server Rückrufe
  8. erhalten
  9. Sie können ganz einfach verbinden acht Personen an einen Server
  10. Sie können JSON-Objekte übergeben. Das ist der Standardtyp zwischen Client und Server gesendet werden.

So Ihre Frage zu beantworten, ja, ich glaube, dass die neuen Delphi 2010 DataSnap können in Ihrem Szenario verwendet werden.

Andere Tipps

Wie Nick sagte, die Antwort ist Ja.

Bob Swart hat ein Whitepaper und produzierte einige Videos auf der aktualisierten DataSnap in Delphi 2010 die Ihnen den Einstieg helfen kann, erhalten.

Wenn Ihr Multiplayer-Spiel nicht viel Daten HTTP senden und DataSnap kann arbeiten. Wenn Sie eine schnelle Kommunikation benötigen, würde ich UDP verwenden und benutzerdefinierte Binärprotokolls. Sofern Sie einen Unternehmens-Firewall umgehen, die fast jedes Protokoll hält aber HTTP - und Unternehmen in der Regel nicht mag Menschen in ihrer Arbeitszeit zu spielen - eine Firewall blockiert eingehende Verbindung, nicht aufgeschlossen. Nur der Server braucht offene Ports Clients verbinden zu können. Und ich würde JSON vermeiden als auch - wenn Sie nicht Interoperabilität benötigen eine binäre Serialisierung ist viel schneller.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top