Sure.

Here is some of the logic for the game server:

*

     o

       ChatEntity Movement ( players, AI, etc)

         +

           Unreliable

         +

           Update occur within milliseconds

         +

           Server Retains last message

         +

           Server side validation against cheating

     o

       In-Game Text Social ( Server message to client, client to client)

         +

           Reliable and time sensitive

         +

           Updates may occur roughly once per second or longer

         +

           Text Emotes

         +

           Delayed delivery system (player is logged out)

         +

           Friends list

     o

       Login Server

         +

           Provide license validation before user plays

         +

           Reliable

         +

           Confidential

         +

           Login Server specific Failure Handling messages

     o

       Security

         +

           Before login, establish encryption

         +

           Diffie-Hillman

         +

           Symmetric Encryption

         +

           Message Rate Limitation

     o Actions


**Command Interface (Client to Server )

**

 * *
         +

           Emotable Actions (/dance)

         +

           Take blue.sword

         +

           Give blue.sword to joe

         +

           Object identifiers for nouns

         +

           If red.goblin near a player is ID 30232 then client sends:

   kill 30232

   *

*
*

 *

   Voice

     o

       Channel based

*


On 6/9/2014 12:15 AM, Ted Dunning wrote:

Joe,

Can you define a bit more about what you are trying to do? Terracotta is a fine thing, but it doesn't usually give you want you have been asking for so far.




On Sun, Jun 8, 2014 at 9:13 PM, joe roberts <carl.roberts.zap...@gmail.com <mailto:carl.roberts.zap...@gmail.com>> wrote:

    Thanks Michael - this is a great and helpful explanation!  When
    you mention "stateless set of servers", do you mean something like
    Terracota?  If not, is there another solution that you would
    recommend?  I actually started reading about Terracota and I also
    run into this:

    http://www.smartfoxserver.com/

    Which seems to be a Java based game server that uses Terracota.

    Regards,

    Joe



    On 6/8/2014 11:18 PM, Michael Rose wrote:
    You could make Storm do what you want, but it's not going to work
    well for you. A normal client/server is vastly more suited to the
    type of workload you want.

    UDP may have less overhead, but overall a stall in processing is
    much more costly. In a datacenter, TCP is the way to go for
    reliable communications. UDP is popular between game client &
    server because of packet loss's effect on TCP RTT, and packet
    loss is common between consumers and game servers. Not as much
    between DC nodes.

    Storm's support for other languages isn't exactly anything
    special. You could effect the same interface in non-Storm code.
    Again, Storm can do processing in low-latency situations
    (<100ms), but it's not what you want. You really, really don't
    want Storm for this application. A custom application (yes, you
    can indeed use Netty UDP) will be much much better for you.

    If your game server is just running business logic, a totally
    stateless set of servers is really the way to go.

    Michael Rose (@Xorlev <https://twitter.com/xorlev>)
    Senior Platform Engineer, FullContact <http://www.fullcontact.com/>
    mich...@fullcontact.com <mailto:mich...@fullcontact.com>



    On Sun, Jun 8, 2014 at 9:07 PM, Ted Dunning
    <ted.dunn...@gmail.com <mailto:ted.dunn...@gmail.com>> wrote:


        Why do you think that UDP is faster?




        On Sun, Jun 8, 2014 at 6:27 PM, joe roberts
        <carl.roberts.zap...@gmail.com
        <mailto:carl.roberts.zap...@gmail.com>> wrote:

            To make it faster!


            On 6/8/2014 8:27 PM, Ted Dunning wrote:

            On Sun, Jun 8, 2014 at 12:12 PM, joe roberts
            <carl.roberts.zap...@gmail.com
            <mailto:carl.roberts.zap...@gmail.com>> wrote:

                Also, it seems Storm uses TCP via ZeroMQ by default
                -Is that right?  And if so, can it be switched to
                use UDP or UDT instead, perhaps by replacing ZeroMQ
                with Netty?


            Why would you want that?








Reply via email to