Search Unity

Multiplayer Networking Solutions Review: Photon, uLink, DarkRift, Forge, and PlayFab

Discussion in 'Connected Games' started by jpthek9, Jan 31, 2015.

  1. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Haha, yeah, we had proximity based updates in Forge Networking Classic. We are just porting the logic over to Forge Networking Remastered now. You basically can just set a radius in which you want people to update each other. If a client is outside of the radius (and it is a proximity message) then it will not receive the message otherwise if it is within the radius, it will receive and process the message. We also send a network message when a client leaves or enters the radius, this is good for turning off renderers and optimizing the performance so client's don't get slowed down processing useless information.

    Also no problem on the docs. They are a bit rough because they are incomplete, but we are working on finishing them up and continually adding each new feature to it. We also update the docs based on frequently asked questions as well as tips and tricks. So we might be turning them into web pages that can easily be searched in the future due to their size.
     
    F-R-O-S-T-Y likes this.
  2. Brendan-Vanous

    Brendan-Vanous

    Joined:
    Nov 7, 2014
    Posts:
    73
    Sorry I missed this one earlier. In fact, PlayFab does not run on Photon. We partnered with Photon to provide an integration with their service, to simplify auth and webhooks for titles. PlayFab itself runs on servers that we manage directly - here's our whitepaper detailing the PlayFab architecture (among other things - there's also a write-up showing the results of a 1 million concurrent user (CCU) test: https://api.playfab.com/pdfs/playfabtechnicalwhitepaper_2016.06.18.pdf.
     
  3. mofirouz

    mofirouz

    Joined:
    Jul 14, 2015
    Posts:
    27
    A little late to the party but I think Nakama could be something you guys might want to use. It's entirely open-source and free, supports realtime multiplayer and chat and persists messages in the database (unlike Photon which is just a message brokering system). The Unity Client is open-source and on the Asset Store.

    I'm one of the devs behind it, so you can ask me technical questions :)
     
    tng2903, Rod-Galvao and nirvanajie like this.
  4. KarloE

    KarloE

    Joined:
    Aug 26, 2013
    Posts:
    150
    Where do things stand these days with all of the solutions?

    Forge seems cool but I would like to try before I buy, and it seems there is no option for that.

    I am looking for a solution that can do an authoritative mmofps/open worldish type of server ran in the unity instance, no room based multiplayer needed. What is my best bet?

    Open source would be great, but I can live with closed source if I have to.
     
  5. KarloE

    KarloE

    Joined:
    Aug 26, 2013
    Posts:
    150
    What is going on with you guys, I sent an email but got no reply. Are you active on the project? Can I expect support if I buy it?

    Cheers
     
  6. PhilSA

    PhilSA

    Joined:
    Jul 11, 2013
    Posts:
    1,194
    The consensus for at least the last 2 years has been that none of the high-level solutions are great.

    However, I've started implementing networking using only the UNET LLAPI (NetworkTransport) and I'm very satisfied with it. By far my biggest problem with the HLAPI was the overly-loose spaghetti structure that it imposed, and all the confusion/pitfalls that came with it. Now that I can make my own structure, everything feels right and I'm glad I invested some time in making this

    Besides, if you really are making an "MMO", you can be pretty sure making your own networking system is the way to go
     
    Last edited: Apr 4, 2017
  7. KarloE

    KarloE

    Joined:
    Aug 26, 2013
    Posts:
    150
    Wow that sucks :)

    Well Im thinking about it yes, either that or I will use Lidgren or Raknet I think, still looking into it. How long did it take you to code your thing?

    Cheers,

    Karlo
     
  8. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,406
    We successfully implemented our initial version in roughly 1.5 man months, but we used Steam UDP API for the Low level stuff like reliable UDP etc
     
  9. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hi there, did you send it last week? We had a ton of new updates to Forge go out this last week so I didn't get around to responding to the emails until yesterday. Did you get my reply?

    Also I can let you in on our Discord chat server to evaluate and ask questions to our community directly. We have a ton of people who come from all of the other networking solutions (including UNET) that can tell you their thoughts directly. For the most part people are happy with our benchmarks, our community, and the fact that us developers are in the live chat every day to help out. You really are not going to find that anywhere else. If people have suggestions, we implement them, if people have problems, we fix them, if people want more docs, we write them. Our setup is not paralleled by any other solution and we don't (and will never) have a CCU cap.

    Check out the docs: http://docs.forgepowered.com/
    Check out the Jumpstart videos:


    I check the Unity forums every few days but will look out for your response :)
     
  10. KarloE

    KarloE

    Joined:
    Aug 26, 2013
    Posts:
    150
    Thanks for the reply, I got your email.

    Too bad there is no free version at the moment, but thats alright. Im gonna drop you a PM if I decide to check out discord. No rush here at the moment.

    Thanks
     
    Brent_Farris likes this.
  11. Rod-Galvao

    Rod-Galvao

    Joined:
    Dec 12, 2008
    Posts:
    198
    Wow. That's interesting!
     
  12. tobiass

    tobiass

    Joined:
    Apr 7, 2009
    Posts:
    2,241
    Late but I have to reply. With all due respect, I wouldn't know how to optimize stuff in Forge but I do know that it can be done in Photon (and PUN). If you need to do this, depends on each game.

    Everyone be careful with comparisons of pricing. Some metrics are really hard to compare to begin with and some are much harder to guess. Can you say how much traffic you're going to have? How many players need a relay in the end? Mobile games often need it and if one player is the host, a message might in fact travel from sender to host to everyone else (multiplied by players in the game and two times through relay).
    If you plan to host headless Unity instances yourself, be aware that you can't do this on a php/sql machine for some dollars/month. And you have to manage those instances (one per room/game).
     
  13. sammyben

    sammyben

    Joined:
    Nov 12, 2013
    Posts:
    7
    Hi there, any chance I could have a look at how you did your lockstep implementation on DarkRift?
     
  14. Jamster

    Jamster

    Joined:
    Apr 28, 2012
    Posts:
    1,026
    Look on @jpthek9 's profile, he has a GitHub repository somewhere for it :)
     
    sammyben likes this.
  15. stenfeio

    stenfeio

    Joined:
    Jan 18, 2015
    Posts:
    11
    Any architectural suggestions on how one could develop multiplayer gameplay without any of the middleware mentioned on this thread?
     
  16. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,406
    We did our networking using Steam UDP
     
  17. warlordmsm

    warlordmsm

    Joined:
    Jul 21, 2015
    Posts:
    5
    great article. I was wondering if you could say anything about Easy Anti-Cheat
     
  18. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    6,891
    Don't trust anything from the client.