Search Unity

  1. Full schedule for #UniteBerlin is now available! Featuring talks on our roadmap, hands-on labs and much more! Check it out!
    Dismiss Notice
  2. Unity 2018.1 has arrived! Read about it here
    Dismiss Notice
  3. Scriptable Render Pipeline improvements, Texture Mipmap Streaming, and more! Check out what we have in store for you in the 2018.2 Beta.
    Dismiss Notice
  4. ARCore is out of developer preview! Read about it here.
    Dismiss Notice
  5. Magic Leap’s Lumin SDK Technical Preview for Unity lets you get started creating content for Magic Leap One™. Find more information on our blog!
    Dismiss Notice
  6. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

Unity 2018 - Capable of an MMOFPS 900-1200 players possible?

Discussion in 'General Discussion' started by D12Duke1, May 17, 2018.

  1. D12Duke1

    D12Duke1

    Joined:
    Feb 14, 2016
    Posts:
    23
    Good evening / morning.

    The question is very simple yet BEYOND complex.. Does Unity, in it's current state, posses the capability to support an MMOFPS that ranges from 900-1200 players?

    I know the Engine with proper techniques graphically can easily handle 1200 characters moving. The netcode, the options involved in optimizing said netcode; Can the engine handle it? Be as technical as possible please.

    Cryengine and 40000 migraines will ensue if this engine can't handle it.
     
  2. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    4,507
  3. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    11,370
    Yes, but you will have to build your own networking solution or license one intended for this purpose. I believe the LLAPI is capable of handling the sort of load you're describing here, but the HLAPI is only intended for very small populations and doesn't scale well at all (HLAPI memory leaks like crazy beyond 4 to 8 players and is technically incomplete).

    For an existing solution I don't know. I have spent a small amount of time researching the ways to develop an MMO and the only solution I'm aware of that would be able to handle a population like you're describing in the same vicinity would be SpatialOS by Improbable. They've advertised it here before and it's being used in some existing games like Worlds Adrift.

    https://improbable.io/
     
    landon912 likes this.
  4. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    5,697
    The question implies that you expect this kind of thing out of the box, which no engine will provide to you. The more appropriate question is something like "Does Unity allow me to integrate my own networking solution to build an MMO?" - and the answer is yes.
     
  5. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    2,244
    "Are you capable of writing that tight of net code?" is the real question.

    You'll have to ask yourself the same question for Cryengine as well, since out of the box support for 900+ connected users to a single server for a twitchy FPS style MMO isn't part of the base Cryengine either.

    Normally you'd develop a solution where you'd drop the number of connected users to a single server to a much more manageable number, but still have a large game world across a cluster of servers.
     
    Last edited: May 17, 2018
  6. Quingu

    Quingu

    Joined:
    Jan 30, 2013
    Posts:
    564
    900-1200 players on a single map in real-time, like in Planetside 2? That would be hard in raw C++.
     
  7. D12Duke1

    D12Duke1

    Joined:
    Feb 14, 2016
    Posts:
    23
    I've done a LOT of research on it and it seems Unity is the most flexible! Cryengine is a close second but doesn't have the amount of support that Unity does. This is going to be one hella expensive undertaking :)

    Thank all of you for the feedback!!
     
  8. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    10,477
    Are you even remotely open to the idea of doing something smaller first? Because that's what I'd suggest.
     
    verybinary likes this.
  9. Zuntatos

    Zuntatos

    Joined:
    Nov 18, 2012
    Posts:
    435
    Depends a lot on the draw distance. 1000 players seeing eachother is hell. You're sending 1000 * 1000 -> 1M updates. If those 1000 players on average see 15 players, you're only sending 1000 * 15 -> 15K updates. If some are idle, the number lowers more. Though of course you still have the worst case scenario (everybody bunches up in a corner, rip your server).
     
  10. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    1,827
    You need a dynamic tick rate. If 200 players are in close proximity then you use a lower tick rate than for those in another place on the map thats only 15 players in close proximity. This only affects what the server sends though, the clients still need to send at maximum tick rate to the server.
     
  11. Ostwind

    Ostwind

    Joined:
    Mar 22, 2011
    Posts:
    2,611
    Not sure how you came up with the numbers but I guess you are talking partly about peer to peer like architecture? you wouldn't do things that way in a large scale MMO. Each player sends their info to the server and server packs it out in to a single tick update per player depending on distance, visibility, importance. Update count should not really go up with the player count but rather the size unless you need to split updates.
     
    Ryiah likes this.
  12. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    2,876
    For this scale literally everything needs to be custom. You will more or less only be using unity for lighting and base rendering.

    Here's Epic talking about some of the techniques they used for 100 players in fortnite.


    You're talking about 10x larger scale. To achieve good quality in something like this, you're going to need some extreme practices and will be using almost nothing stock from unity.
     
    Ryiah and Zuntatos like this.
  13. Zuntatos

    Zuntatos

    Joined:
    Nov 18, 2012
    Posts:
    435
    Yeah that's true. I mostly meant 'data size' not so much 'packet count' though, I could've been clearer.

    Also true, I didn't really think about that. Though that'll only get you so far in a FPS before it degrades the gameplay unacceptably.