The Best way to make my game multiplayer

Discussion in 'Ruby' started by Diego Bernardes, Mar 11, 2008.

  1. Hi guys, i have done a game in ruby using gosu, its a side scrolling
    game, i want to make it multiplayer, well, i hope make it a mmorpg some
    day, so, now im caring about the network, need be something safe but
    consume low bandwidth as possible because of the server.

    I dont have any exp doing this, can anyone post web with the basics or a
    tuto or something to give me a start XD?

    What is best to work? UDP? TCP? Can i use DRb?



    thxx alot :)
    --
    Posted via http://www.ruby-forum.com/.
    Diego Bernardes, Mar 11, 2008
    #1
    1. Advertising

  2. On 11 Mar 2008, at 20:18, Diego Bernardes wrote:
    > Hi guys, i have done a game in ruby using gosu, its a side scrolling
    > game, i want to make it multiplayer, well, i hope make it a mmorpg
    > some
    > day, so, now im caring about the network, need be something safe but
    > consume low bandwidth as possible because of the server.
    >
    > I dont have any exp doing this, can anyone post web with the basics
    > or a
    > tuto or something to give me a start XD?
    >
    > What is best to work? UDP? TCP? Can i use DRb?


    You have two sets of considerations: gameplay and network utilisation.

    The gameplay concern is about making sure that one or more players
    aren't cheating so you will probably want to encrypt your traffic.
    Take a look at the Ruby OpenSSL library.

    If you're looking at rolling your own protocol I'd recommend doing it
    on top of RUDP as this is more efficient than TCP/IP with lower
    latencies, or if you can afford to lose packets go for UDP.

    Another attractive option would be to use the Rinda library which is
    built on top of DRb as that will make your code very simple to follow,
    but if I remember rightly DRb runs over TCP/IP so you may take a
    performance hit.

    For a very simple example of using OpenSSL encryption as part of a
    client-server application in Ruby take a look at the code portions of
    my Semantic Networks presentation at http://slides.games-with-brains.net/
    Eleanor McHugh, Mar 12, 2008
    #2
    1. Advertising

  3. Diego Bernardes

    Arlen Cuss Guest

    [Note: parts of this message were removed to make it a legal post.]

    Hi,

    The gameplay concern is about making sure that one or more players
    > aren't cheating so you will probably want to encrypt your traffic.
    > Take a look at the Ruby OpenSSL library.



    If I'm not mistaken, encrypting traffic isn't likely to prevent cheating, is
    it? Any player could modify the source.

    Arlen
    Arlen Cuss, Mar 12, 2008
    #3
  4. Arlen Cuss wrote:
    > Hi,
    >
    > The gameplay concern is about making sure that one or more players
    >> aren't cheating so you will probably want to encrypt your traffic.
    >> Take a look at the Ruby OpenSSL library.

    >
    >
    > If I'm not mistaken, encrypting traffic isn't likely to prevent
    > cheating, is
    > it? Any player could modify the source.
    >
    > Arlen


    yea, its to prevent hacking.


    Ellie, thx alot, you helped alot :)

    Hmm, the last question, there is any RUDP library to ruby? if not, im
    gonna try to make one :)
    About the speed, im making it a 2d sidescroller so i think at least in
    the client dont gonna have any speed problem, about the server i dont
    know, only the time gonna say XD
    --
    Posted via http://www.ruby-forum.com/.
    Diego Bernardes, Mar 12, 2008
    #4
  5. On 12 Mar 2008, at 09:38, Arlen Cuss wrote:
    > Hi,
    >
    > The gameplay concern is about making sure that one or more players
    >> aren't cheating so you will probably want to encrypt your traffic.
    >> Take a look at the Ruby OpenSSL library.

    >
    >
    > If I'm not mistaken, encrypting traffic isn't likely to prevent
    > cheating, is
    > it? Any player could modify the source.


    By itself no, and arguably with programs in Ruby where the source code
    is automatically available to all players then any one of them can
    change it. However whatever measures are taken in the game engine to
    prevent cheating are likely to involve including data calculated at
    runtime in the protocol and as sniffing protocols is trivial it's a
    good idea to encrypt the traffic.


    Ellie

    Eleanor McHugh
    Games With Brains
    ----
    raise ArgumentError unless @reality.responds_to? :reason
    Eleanor McHugh, Mar 13, 2008
    #5
  6. On 12 Mar 2008, at 17:18, Diego Bernardes wrote:
    > Arlen Cuss wrote:
    >> Hi,
    >>
    >> The gameplay concern is about making sure that one or more players
    >>> aren't cheating so you will probably want to encrypt your traffic.
    >>> Take a look at the Ruby OpenSSL library.

    >>
    >>
    >> If I'm not mistaken, encrypting traffic isn't likely to prevent
    >> cheating, is
    >> it? Any player could modify the source.
    >>
    >> Arlen

    >
    > yea, its to prevent hacking.
    >
    >
    > Ellie, thx alot, you helped alot :)
    >
    > Hmm, the last question, there is any RUDP library to ruby? if not, im
    > gonna try to make one :)
    > About the speed, im making it a 2d sidescroller so i think at least in
    > the client dont gonna have any speed problem, about the server i dont
    > know, only the time gonna say XD


    There isn't an RUDP library as such, but if you look at the bit-struct
    library you'll find examples of how to roll your own protocols and
    then it's a question of opening a raw packet socket. Details of that
    vary from platform to platform. You'll get best performance by
    implementing RUDP as a C extension, which should be similar to the
    standard library's UDP and TCP/IP libraries.


    Ellie

    Eleanor McHugh
    Games With Brains
    ----
    raise ArgumentError unless @reality.responds_to? :reason
    Eleanor McHugh, Mar 13, 2008
    #6
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Lt
    Replies:
    5
    Views:
    524
  2. Tlo
    Replies:
    5
    Views:
    703
  3. Replies:
    0
    Views:
    918
  4. vish_dude
    Replies:
    1
    Views:
    1,171
    mdtsdca
    Nov 1, 2007
  5. Replies:
    0
    Views:
    989
Loading...

Share This Page