Search Unity

Benchmarks? Where? What can UNet do that's different from the RakNet implementation.

Discussion in 'UNet' started by Christian-Tucker, Jul 26, 2015.

  1. Christian-Tucker

    Christian-Tucker

    Joined:
    Aug 18, 2013
    Posts:
    376
    I've never been a fan of the implementation of networking in Unity, prior to 5.1 - Therefor whenever I needed networking done I've always written my own servers, but the state-synchronization by professionals is a major plus for any one-man team working on a large project.

    Currently I'm debating between writing my own engine using HTML5 or using Unity, because of the release of the new networking system. I have a large amount of experience when it comes to creating the cookie-cutter MORPG content for games. Combat, Quests, Guilds, well that sums up every game ever that has been labled a "MMO" right? It's really simple when you think about it.

    I see a lot of posts talking about the UNet master-server, or miniature hosting sessions. (Everything the RakNet implementation could do with ease) and I'm just curious if there's a larger-scale to this networking implementation.

    Obviously when it comes to a server, the hardware is always a bottleneck, but I've held 3-4 thousand concurrent players on emulation servers that I've created in the past on a 2GB non SSD machine using unoptimized SQL code and a large table index (Which ate memory)
     
  2. Christian-Tucker

    Christian-Tucker

    Joined:
    Aug 18, 2013
    Posts:
    376
    Gonna bump this back up to the top.
     
  3. Leoo

    Leoo

    Joined:
    May 13, 2013
    Posts:
    96
    Bump!
     
  4. Deleted User

    Deleted User

    Guest

    Well its networking, so anything that raknet can do, so can unet.
     
  5. Christian-Tucker

    Christian-Tucker

    Joined:
    Aug 18, 2013
    Posts:
    376
    This is the most ridiculous post I've seen in quite awhile.
    Do you know anything about networking?

    A networking implementation can drastically change the throughput of an application. Does the server handle streams on multiple threads and careful handle synchronization and prevent thread contention? Does the server share the same thread for accepting connections, and handling stream data? Does the server share the same thread for Network and Disk I/O? Perhaps the server uses the old-school thread-per-connection model. Considering UNet uses a RUDP implementation, it seems an asynchronous event group would definitely scale better.

    The difference in implementations greatly effect the amount of messages in/out that a server can handle, considering the average movement update for games such as arpg's averages at about 100ms(Tera used 25ms update intervals during beta, not sure about now, which is 40(n)+40(?!1) messages per second, however on average that's (at a bare minimum) 10(n)+10(?!1) messages per second being handled by the server just for movement alone. This excludes any type of interaction, ghost packets, etc.

    Then again, considering it's "Networking" and "Networking can do anything other networking can do" I guess I should bypass all of this resource intensive stuff and host my game on a telnet server.