English 中文(简体)
Will Datasnap be appropriate for up to 8 non-communication intensive bi-directional multiplayer game?
原标题:

I am building a small multipliplayer which will need the following:

  • it must be written in Delphi
  • must support Internet connection (not only LAN)
  • work over HTTP
  • support some encryption of the packets (it may be custom)
  • be able to send commands to the server
  • be able to receive responses from the server
  • be able to connect up to 8 players to one server
  • be able to pass complex objects (maybe JSON serialized) to the servers

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

最佳回答

DataSnap can do all that you ve listed above:

  1. DataSnap is written in Delphi.
  2. It can connect via HTTP over any connection, local, network, or remote.
  3. It will work over HTTP, including support for tunneling the HTTP connection
  4. You can filter the data stream however you like. The product includes a compression filter. Daniele Teti has written some very nice encryption filters.
  5. You can send commands to the server by calling server methods
  6. You can receive a response from the server via server callbacks
  7. You can easily connect eight people to a server
  8. You can pass JSON objects. That is the default type sent between client and server.

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

问题回答

As Nick said, the answer is Yes.

Bob Swart wrote a white paper and produced some videos on the updated DataSnap in Delphi 2010 that can help get you started.

If your multiplayer game doesn t send much data HTTP and Datasnap may work. If you need a fast communication, I d use UDP and custom binary protocol. Unless you have to bypass a company firewall that stops almost any protocol but HTTP - and companies usually don t like people playing in their working hours - a firewall blocks incoming connection, not outgoing. Just the server needs open ports to allow clients to connect. And I d avoid JSON as well - if you don t need interoperability a binary serialization is much faster.





相关问题
determining the character set to use

my delphi 2009 app has a basic translation system that uses GNUGetText. i had used some win API calls to prepare the fonts. i thought it was working correctly until recently when someone from Malta ...

Help with strange Delphi 5 IDE problems

Ok, I m going nuts here. For the last (almost) four years, I ve been putting up with some extremely bad behavior from my Delphi 5 IDE. Problems include: Seemingly random errors in coride50.bpl ...

How to write a Remote DataModule to run on a linux server?

i would like to know if there are any solution to do this. Does anyone? The big picture: I want to access data over the web, using my delphi thin clients. But i´would like to keep my server/service ...

How convert string to integer in Oxygene

In Delphi, there is a function StrToInt() that converts a string to an integer value; there is also IntToStr(), which does the reverse. These functions doesn t appear to be part of Oxygene, and I can ...

Quick padding of a string in Delphi

I was trying to speed up a certain routine in an application, and my profiler, AQTime, identified one method in particular as a bottleneck. The method has been with us for years, and is part of a "...

热门标签