Will Datasnap be suitable for up to 8 non-information bidirectional multiplayer games?

I am creating a small multiplayer that will need the following:

  • it should be written in Delphi
  • must support an Internet connection (not only LAN)
  • work through HTTP
  • support some packet encryption (this may be common)
  • be able to send commands to the server
  • be able to receive responses from the server
  • the ability to connect up to 8 players on one server
  • will be able to transfer complex objects (possibly serialized JSON) to servers

Do you think that the new Datasnap Delphi 2010 can be used successfully in this scenario, or should I go with the plain old TSocket?

+7
delphi delphi-2010 multiplayer datasnap
source share
3 answers

DataSnap can do everything you specified above:

  • DataSnap is written in Delphi.
  • It can connect via HTTP through any connection, local, network or remote.
  • It will work through HTTP, including support for tunneling an HTTP connection.
  • You can filter the data stream as you like. The product includes a compression filter. Daniele Teti has written some very nice encryption filters .
  • You can send commands to the server by calling server methods
  • You can get a response from the server through server callbacks
  • You can easily connect eight people to the server.
  • You can pass JSON objects. This is the default type sent between the client and server.

So, to answer your question, yes, I think the new Delphi 2010 DataSnap can be used in your scenario.

+10
source share

As Nick said, the answer is yes.

Bob Swart wrote a white paper and released several videos about the updated DataSnap in Delphi 2010 to get you started.

+3
source share

If your multiplayer game does not send a lot of data, HTTP and Datasnap may work. If you need fast connectivity, I would use UDP and a custom binary protocol. If you donโ€™t need to bypass the companyโ€™s firewall, which stops almost any protocol, but HTTP โ€” and companies usually donโ€™t like people playing during business hours โ€” the firewall blocks the incoming connection, not the outgoing one. Only the server needs open ports so that clients can connect. And I would also avoid JSON - if you don't need interoperability, binary serialization is much faster.

+1
source share

All Articles