Search Unity

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

Discussion in 'Multiplayer' started by jpthek9, Jan 31, 2015.

  1. tobiass

    tobiass

    Joined:
    Apr 7, 2009
    Posts:
    3,070
    @jpthek9: We are in contact via private message. It is a manual process, so you need to send us some data.
     
  2. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Say what you will about Photon and uLink, but as far I am aware they are the only ones where their scalability has been proven on a real and launched game.

    Yes I built Bolt and there are a few games launched in on it also, but this discussion seems to be mostly about large scale/mmo style games, and Bolt was built for 2-128 players per server/room and doesn't really ever intend to compete in the 'massive' market segment.

    In my book it counts for a lot to actually know that the technology you pick for your game works and has been proven in a real environment, so even if the new competitors to photon, ulink and smartfox for the 'massive server' segment might promise a lot so far none of them have been proven to actually work in a real life scenario.

    I know for one that if I was tasked with building an MMO today I would go for Photon Server.
     
    jonkuze likes this.
  3. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    What do you mean by 'scalability'?
     
  4. GraphXCreations

    GraphXCreations

    Joined:
    Jul 6, 2014
    Posts:
    121
    he meant of easily deploy other servers which will intercommunicate between then to hold more massive player counts in one single game.

    i did not know about photon already being used in a large scale mmo, i am interested on checking it out.


    so far for large proven scalable commercial mmo server tech , i know of is wargaming,net BigWorld server., which is used in World of tanks and world of planes, also has over a dozen of proven release titles around the globe, mostly are from china.

    i know BW server does not work for unity out of the box, but hold on a sec. look at kbengine which is a clone of BigWorld server which can be used for unity. it may be worth to check it out if you want a massive large scalable server.

    good thing is you wotn have to spend a single dime to use it since i is open source server. and it is being under appreciated so far.
    i personally have used it and looks like BW , feels likes BW, even behaves like BW, hell the api is the same as BW.

    i worked with BW engine for like 4 years in a project before so i know it is pretty much a clone.
    if you a python junkie then kbengine is for you, even tho the server is a C++ server it has python for server side scripting, very easy to work with.

    kbengine has not been proven yet in any large project, but being a clone or a ripoff of BW server it wont be necessary to wait until it is proven since you might expect same or close results as BW engine server.

    this engine was build by a Chinese team who worked with BigWorld server games and source code, so they pretty much made their own clone/ripoff based on the same principle of BW engine.
     
    Ghosthowl likes this.
  5. BFGames

    BFGames

    Joined:
    Oct 2, 2012
    Posts:
    1,543
    Disclaimer: i am not a pushing photon onto anyone haha :D

    But a really interesting MMO project using Photon Server that is being developed at the moment is Albion Online, a sandbox mmo for cross-platform. Already got a lot of players for their paid Alpha.
     
    jonkuze likes this.
  6. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Anything from simply scaling the low level networking code itself to support several hundred (or even thousand) players at the same time, but also to more complex things like zoning your world, etc.

    I'm not trying to complain over all these new networking solutions for "massive" games popping up for Unity, it's just that when you pick one it's dangerous to just look at what is promised by the developers in the future or what they claim what their solution can do for you, when most (all?) of them except the well established ones (SmartFox, Photon, uLInk) have never been used in a real game, or even run in a proper simulated environment with as many clients as they claim to support.

    If you're serious about building a large-world game that can support a thousand players at once, I would never put bet the success of my project on an unproven technology. Photon, SmartFox and uLink are proven to work in many games.

    All I'm saying is that if you're going to claim that your networking solution is the 'next mmo' solution for Unity, you'd better back that up with some hard data, actual proof of it supporting that many players in a somewhat complex environment with NPCs and players interactions, etc. Otherwise you're just taking a guess, and anyone in here can take a guess.
     
    Meltdown and jpthek9 like this.
  7. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    I 100% agree. The best way to know for sure is to try it out yourself.
     
  8. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Yeup, though I think the statements saying "go with what works" is a bit too obvious for most. I'm quite sure that hardly anyone needs to be told to "go with what works". If they are on a new system it is probably because they tried to go with the working name, but found that for their particular needs it just doesn't do that "just works" part for them. New guys like Forge will show over time their value. However we must remember one underlying fact about the newer networking systems. Most of the time they are created because of the lacking of something that is needed. If current standards are not acceptable for what is needed in a new project, or are hard to work with then usually that gives rise to a new system.

    You also would need to consider why the developers themselves are creating a new system. Some create them just to be a networking system. Then there are those other ones that create their networking particularly for a product that they wish to see come to life. Often you will find that even just one person who is passionate enough about something they want to see will work harder to make that product as beautiful and flawless as possible. I would never discourage people from doing R&D (research and development) themselves for a system. My advise would be, try out all possible options to find out what best suits the need for your project and team. If you just do not find anything acceptable, create the system yourself or fall back on the one that is known to just work.

    Scissors can cut my lawn perfectly, they are proven devices, so I should never look for any other devices and test them out? All in all, if a system has the features you need, you have tested it and you love it, why would you just go with "ol' faithful" rather than spending time to make this particular system valuable, it already seems to be on it's way.

    The added beauty to the new networking systems is that they are very dextrous. The reason the current names can't move and add features like the swift newcomers is because they need to continue to support the older version and their huge user base. They can't just add features on the fly without doing TONS of quality testing. This makes the well known systems very slow, especially if they were not originally built on scalability (I'm talking feature scalability not user scalability). A new well designed system can not only learn from the systems that came before it, but they can plan for the scale that they see out in the wild now.

    I don't claim to know what the other networking systems are doing. However I do know the Forge team fairly well. We have a proven track record in our forum post to scale extremely fast. Our team includes those who have been working in Unity since the earliest version of Unity. Our team also has those who work at the second largest gaming company on the Facebook platform in the world. We personally have deep experience with Unity as well as working with products that have a DAU in the millions. But when we go home, we are passionate indie developers who are making indie games with our indie networking solution.

    Most of us here are indies, I think it should boil our blood to say "go with what works" and "don't trust the new guys". Well, because, most of us are just that, the non-AAA new guys on the block with a dream of our own.
     
  9. tobiass

    tobiass

    Joined:
    Apr 7, 2009
    Posts:
    3,070
    @GraphXCreations: Nobody else seems to care but I really got annoyed by that post promoting a rip off software. I wonder how you would feel when someone promotes software which is ripping off your work if that ever happens.
    Also, I wonder how you can recommend some software just by being the "same api as"?! Anyone can copy someone's api easily but that doesn't mean my solution is worth spending time on. I doubt you used that engine to make an as successful MMO.
    That post was just awful, sorry.


     
    Deleted User likes this.
  10. GraphXCreations

    GraphXCreations

    Joined:
    Jul 6, 2014
    Posts:
    121
    Sorry if that annoyed you tobias,
    it sure was not my intention, i am not promoting anything,
    i just mention that as far as i am aware of, BigWorld engine to me is the only proven commercial to license mmog engine up til now,
    i know that is a fact and you know it too. i personally have used it for a project i got hired fom a studio for almost 4 years. and that is why i know about it, that is when i realized what a true scalable awesome 1st world class networking engine i had worked for quite a while, hell, Hero engine and the others out the are peanuts compare on how robust BWT server is, but that is just my honest opinion since i spent 4 years of my life working with it on a day to day basis.

    which that brought or might or raised some others the question: what does BWT engine have to do with unity, BWT has its own client and tools. that is when Kbengine popped up.

    a ripoff does not mean illegal or pirated , that engine has been around for probably same or longer than photon.
    so it is not new.
    even tho if that ripoff was illegal or a pirated BWT server, dont you think that wargaming.net with its hundreads of millions of profits from World of Tanks game could not afford high end lawyers already and would of taking it down for good after all it is just being developed buy a a few non profit networking gurus individuals.?

    i mentioned it feels ,looks and behaves like BWT even the api naming is almost the same, but does not mean the source code is a copy and paste of BWT server.

    take a look at Chinese first ever commercial 30 million funded and built by ChangYou games open source unity exact clone engine.
    genesis-3d.com.cn
    it feels behaves looks like unity but is not unity. yes it is not an original but a clone or ripoff of unity but is not a pirated copy.


    if you annoyed because it it is in theory a viable alternative for unity to build a very large mmo game and full source code available to anyone and free of charge as of free beer with all the mmo bells and wistles out of the box:
    multiplatform, dbmanager,auth server, AOI, room or open world etc......
    then iam sorry , it sure was not my intention. i would of choosen it, because i would of feel at home since coming from BWT project for so long. but no. it just not what iam looking for.
    i am looking for a unity physics aware server, so neither kbengine or photon or smartfox can out of the box or will ever can.


    but hey, lots outhere dont care about unity physics based server. in my case i do.

    again, sorry if you felt annoyed by my comment, it sure was not intended for that.

    so far my candidates for my next personal multiplayer project is between massivenet server(free open source mmo unity server)
    or Forge, forge might be the winner since it is heavily supported and is being tailored almost with all features i am looking for.

    cheers.





     
    Ghosthowl likes this.
  11. tobiass

    tobiass

    Joined:
    Apr 7, 2009
    Posts:
    3,070
    @GraphXCreations: Thanks for getting back to me about this. In the end, I don't know how much time went into which platform. I mistook the post for promotion of a clone and was probably overreacting. I apologize. No hard feelings.
     
  12. GraphXCreations

    GraphXCreations

    Joined:
    Jul 6, 2014
    Posts:
    121
    sure, no prob bro, no hard feelings.

    same here, i sometimes over react, and i am pretty sure i did in this thread.
    my apologies to you and everyone too.

    after all, we all share the same interest in the unity community, making awesome games :)

    cheers.
     
  13. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,822
    Wow, what an interesting thread!

    I'll chime in here and add my 0.02f...

    Over the years I've been developing my monster truck game on a part-time basis, and I've evaluted most of the Unity multiplayer options available.

    What I decided is that I absolutely must have the server running in a Unity instance, as I found a physics aware authoritative server worked best for my game and the gameplay experience. In fact I had a working prototype of the game running in uLink, and it was pretty sweet, being able to run 250 headless Unity instances on an entry level server with no problems.

    My problem with uLink though is no support for Windows Store Apps and WP8, 2 platforms I would certainly like to publish my game to, I've found uLinks community very poor/limited though, although their support is excellent, but sometimes they take a while to get back to you.

    Right now I'm evaluating Forge, @farrisarts is probably sick of my daily emails I'm sending with all the physics issues I'm having with the beta :D, but the support has been excellent and very personal, and I'm really hoping they pull it off. For now Forge has my vote as the networking solution that best fits my needs.

    I'll go a step further here and move onto the backend as a service front...

    I've done a lot of research in this regard, and have come to fall in love with Azure Mobile Services. Having the ability to do Entity Framework Code First development of a remote, scaleable database in C# and Visual Studio, and being able to manage your virtual servers to auto scale based on cpu or api request load in availability sets is very powerful, and actually very easy to manage in the Azure portal. So I get the ability to have virtual server images fire up and down automatically, based on configurable loads, and Azure Mobile Services will automatically scale up and down the SQL databases used behind their web api to serve my client's data needs.

    I've looked at Amazon (powerful, but seems overly complicated), and I've looked at Playfab, GameSparks etc, but I found their services not flexible enough when it came to the database design/relational model side of things. However, these services are a great offering if you don't care about those things and you want a more out of the box approach.
     
    jpthek9 and JohnTube like this.
  14. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    @Meltdown: Just curious, is there a reason you did not choose to go with Bolt? It solves everything that Forge solves + a lot more and is stable without any major bugs.

    I am genuinely curious, not trying to start a 'Bolt vs. Forge' debate, just want to know Meltdowns reasoning and if there's anything I can do to improve Bolt.
     
  15. any_user

    any_user

    Joined:
    Oct 19, 2008
    Posts:
    374
    @fholm Bolt looks interesting. We've used uLink for two projects and while it worked in general, not everything is great about it. I haven't read all of this thread, but the reason why we started to work with uLink/uLobby (around 3 years ago) was the ability to start (unity) game instances on the fly as they are needed. Is that possible with Bolt or any of the other solutions?
     
  16. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    When you say 'on the fly' what do you mean? Does uLink have tooling to automatically spin up/down new instances?
     
  17. any_user

    any_user

    Joined:
    Oct 19, 2008
    Posts:
    374
    It's not completely automatic and it's technically not part of uLink, but in the uLobby/uZone tools of their unitypark suite. With uLobby you can create a custom master server (just another unity app) that handles instance management through the uZone API to keep track of instances and build your logic around it, when to start one etc. It's not a perfect solution, but I wouldn't know how to do that without it. I used uZone/uLobby with uLink in Krautscape and uZone/uLobby in combination with built-in Unity networking in Drei.

    While it worked on these projects, I never liked that these libraries are depending on each other, I'd love to see a more lightweight and flexible way to do it.

    http://developer.muchdifferent.com/unitypark/uZone/GeneralUsage
     
  18. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,822
    @fholm, I did give Bolt a look, but according to this page it doesn't support WSA or WP8, which is a requirement for me.
     
  19. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,822
    Another thing I like about Azure is the Powershell intergration, I can easily script new instances based on certain conditions.
     
  20. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Not to nit pick but it is a bit unfair to claim that it solves all the same + more. Here are a few things that Forge currently offers in its beta where Bolt would need to add in order to support "all the same":

    1. Windows Phone 8.1
    2. Windows 8.1 Store
    3. TCP, this is required for any real multiplayer games for Webplayer, see Unity's Webplayer Documentation
    4. Custom multi-threaded HTTP and Rest API
    5. Built in cloud player accounts, currency and coins API (This Beta will be released later this week)
    6. Bare Metal - Unity independent server with full developer plugin support
    7. Lan Discovery? (not sure on this one)
    8. Various other small details/features
    We do not have support for Nat Hole Punching because our system is designed currently for master server instances (the industry standard for secure server gameplay) and not Peer-2-Peer games. We already have this in place though it is on a lower feature priority and hasn't been released.

    We understand that bolt has a couple other features that we have not yet gotten to, however those features are not the heaviest requirement for master/server features.

    Once you achieve these and a few more then you will be correct in stating that it solves "all the same", but until then, please refrain from this false claim. Also the stability issues are known in both of our platforms, I notice by browsing your main forum post you have stability issues as well. It is a bit unfair to claim "stable without any major bugs". I must say that I am a little insulted by your belittling of our system. Our beta release to developers is only about 3 weeks old after all, bugs are expected. The difference is that we blow through fixing bugs and adding features at a very high velocity because of how well our base architecture is designed if I do say so myself.

    Please do not take this as an attack of your system and more of a defense for Forge.
     
    sluice, Mikeedee, Cranick and 2 others like this.
  21. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Yeah that'd be correct, demand for WSA/WP8 is very low in general, but have started work on it, it will be out ~mid march. Thank you for replying.
     
  22. slava_pankratov

    slava_pankratov

    Joined:
    Jan 17, 2015
    Posts:
    47
    pun is awesome and the price is nice, but please add an ability to use serverside code (maybe even physics calculation). This would help to prevent cheating - and that's what (sometimes) makes a difference between just a slightly profitable project into a really profitable one. Thanks!
     
  23. ROBERTJS3

    ROBERTJS3

    Joined:
    Nov 12, 2014
    Posts:
    4
    @jpthek9 or anyone else who may know. What is the best option for a multiplayer boxing mobile game? I am starting to realize the potential issues with needing split second reactions over the network. I will be using the cellular networks and am wondering which solution is best for this scenario where small packets of info are sent. And what is the cost of that particular option? Thanks for any help
     
  24. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    For a boxing game, you could design it like a first person shooter. I'd recommend using an authoritative server design so games can remain consistent and harder to cheat. You probably won't want to host every game on your servers, so you can have players host games. Forge will let you and your players host authoritative servers. Bolt and uLink can also work.
     
  25. ROBERTJS3

    ROBERTJS3

    Joined:
    Nov 12, 2014
    Posts:
    4
    Forge seems like a possible fit. Do you think I may have issues with client-side prediction using an authoritative server as far as response time is concerned? Or would having, let's say, a big wind up to each punch eliminate that?

    I'm still trying to learn the basics of networking and what I have read this is what one potential issue is the response time. Just want to learn the best possible option before I even begin so no time is wasted in development. Thanks
     
  26. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    Yeah, response time is an unfortunate disadvantage of authoritative server but there are many latency compensation algorithms. Actually, if your game isn't very competitive and you don't have to worry about hacking, you should simulate movement, etc. on clients and send that information out which is also possible with Forge.
     
  27. Prominence

    Prominence

    Joined:
    Feb 14, 2010
    Posts:
    95
    Any suggestions for a high-speed racing game? Preferably something that easily allows lobbies, and something that can read and translate inputs quickly, with up to 10-12 racers a lobby. And weapons. Am I over-concerned due to the small number of racers or no?
     
  28. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    Never made a multiplayer racing game before so I'm not sure how they sync at high speeds. It could be the same as syncing in an FPS which Forge will work for.
     
  29. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,315
    all the frameworks will works for a racing game, the only thing is you need low ping so host server yourself, no logic on client, send inputs server tell client physics result
     
  30. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Any type of multiplayer fighting game should be developed using a deterministic simulation and a simple socket library. Any other solution than a deterministic simulation incurs to much overhead due to interpolation/extrapolation, which ends up with the game being unplayable when it comes to something as time critical as a fighting/boxing game.

    This is how all well-known fighting games are built, and this is how we built the one I worked on. You don't need Bolt, uLink or Forge for this, you need a simple socket library (Lidgren, UdpKit, RakNet, etc.) which lets you send packets as fast as possible without any delay.
     
    BlankMauser likes this.
  31. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    Yes, well-known multiplayer games including Halo, Cod, SC2, etc. made by large AAA game studios use deterministic simulations but deterministic simulations are often costly and unnecessary. Plus, it can get very complicated with latency masking and actually getting the simulation to run deterministically.

    I'm assuming that Robert isn't part of an AAA game studio and just wants to make a fun, simple game for mobile. There's no need for him to use a lockstep model.

    By the way, I see no reason why simple position syncing with interpolation wouldn't work. If anything, local simulation would make response time instant. With a bit of latency prediction or maybe a fixed packet reception acknowledgement time, players would run around just as smoothly as compared to in a lockstep simulation.
     
  32. Velo222

    Velo222

    Joined:
    Apr 29, 2012
    Posts:
    1,437
    Very interesting read. Thanks for your assessment jpthek9.

    I still havn't gotten to look at multiplayer at all yet, but I'm attempting to make an RTS game (similar to your project I think). Knowing what networking solutions tend to work best (or better) for certain game genres is pretty important. Currently, it seems most networking solutions cater to FPS games, since they seem to be the most prevelant.
     
  33. ROBERTJS3

    ROBERTJS3

    Joined:
    Nov 12, 2014
    Posts:
    4
    @fholm @jpthek9 This is very interesting feedback, thank you guys. I clearly need to do some more research but am feeling overwhelmed as to where to go. Just don't want to spend a ton of time on the wrong method, or a method that will be overly costly (I do have some to spend, up to a few thousand dollars specifically on networking).

    So if you were me and starting out on a project with a relatively tight budget which approach would you choose to ensure the lowest latency (at least low enough where it will not be noticeable in a fairly responsive fighting game, I am not going for lightning quick fighting as it is large clunky robots) for the lowest cost? I am not overly concerned about hacking (maybe I should be). Thanks for any help.
     
  34. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    Oh, if you read that article I wrote on the lockstep model, it's very outdated and I haven't gotten to correcting it. Instead of thinking of the server as another peer, think of it as a server. Have the server send a steady stream of packets to clients and have the clients send their inputs to the server (but not a steady stream). The server is kind of like an authoritative server but instead of sending positions, health, etc., it sends the input of all players for that frame.
     
  35. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    Hacking on mobile is a lot less common than hacking on PC so you're right to not be concerned about it. The simplest method is to use Photon Cloud which will network your game right out of the box. It is, however, quite costly ($1500/month for 500 concurrent players if I remember correctly) and routes everything through a server so there's increased latency. Actually, you could use Unity's standard networking which will work perfectly for games with not too many players. To be honest, I think that solutions like Forge and Bolt that allow for authoritative servers are overkill.

    With Unity's standard networking, just sync positions and rotations with a network view (rotations can be synced with just 1 float for the y rotation for a boxing game) and send an RPC whenever a player shoots, deals a punch, etc.. Be mindful that RPC's are expensive so if you have an automatic weapon, it'd be better to send information about the shooting in intervals.
    I.e.
    1. Player 1 started shooting
    2. 200ms later: still shooting; dealt 30 damage to player 2
    3. 200ms later: still shooting; dealt 20 damage to player 2
    4. 200ms later: shooting stopped; dealt 40 damage to player 2
     
    Last edited: Mar 5, 2015
  36. Prominence

    Prominence

    Joined:
    Feb 14, 2010
    Posts:
    95
    Oh, huh. Thanks. Alrighty, then.

    (Just to be safe, can anyone else concur with this? Just asking for a second opinion.)
     
  37. Deleted User

    Deleted User

    Guest

    Interesting. How would you deal with rooms and matchmaking using just a simple socket library though?
     
  38. Kaiserludi

    Kaiserludi

    Joined:
    Jan 21, 2009
    Posts:
    94
    Hi jpthek9.

    No, you don't remember it correctly. Photon Cloud is not nearly that expensive.
    The price varies between the different Photon Cloud products and for 500 CCU you would pay 89$/month with Photon Realtime, 59$/month with Photon Turnbased and 42$ month with Photon Chat. 500CCU for the avarage game mean roughly about 10.000 daily active or 200.000 monthly active users or 400.000 downloads. 500CCU with about 500msgs/s per room also cause about 5TB(!) of traffic per month.
    As you can read at https://4sysops.com/archives/amazon-ec2-pricing-for-dummies-part-3-bandwidth-and-instance-costs/ 1 single TB of data traffic (just the traffic - this is additional to the base prices) with Amazon EC2 already costs about 135$.
    So compared with the traffic costs that you could easily end up with when just buying a server license for some networking middle ware and hosting it yourself, the Photon Cloud hosting prices are actually really low.
     
    Last edited: Mar 9, 2015
  39. Ap0C552

    Ap0C552

    Joined:
    Feb 7, 2015
    Posts:
    43
    Just wondering why you did not mention unity's built it RakNet in your comparison?
     
  40. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    Never used it. I wish some posts could be pubic edited so others could post their experiences on the OP.
     
  41. Ap0C552

    Ap0C552

    Joined:
    Feb 7, 2015
    Posts:
    43
    I guess I should have worded my question differently. Why did you not consider looking at Unity's networkng API before looking at 3 party solutions?

    I am about to start the networking side of my game, and it will be my first foray in implementing a multiplayer game. I immediately looked at the unity RakNet as my initial approach. I am doing the same RTS style networking that you mentioned.
     
  42. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    A lot of the other networking solutions are very similar to Unity's standard networking with a some extra features like matchmaking, data storage, dedicated servers, etc.. There's no reason why you shouldn't use Unity's standard networking though.
     
  43. ROBERTJS3

    ROBERTJS3

    Joined:
    Nov 12, 2014
    Posts:
    4
    @jpthek9 @Kaiserludi So Photon may be a reasonable solution for my game then if it's that cheap. Have you used it personally Kaiser or have knowledge on it working well with a semi twitchy game like boxing? Thanks
     
  44. Kaiserludi

    Kaiserludi

    Joined:
    Jan 21, 2009
    Posts:
    94
    @ROBERTJS3:
    As you can see from my forum signature I am one of the engineers at Exit Games, the company, that develops Photon.
    Photon is a general solution for online multiplayer. The genre of the game doesn't really matter (PUN is targeting room-based types of games with from 2 up to maybe 16 players per room (aka instance or match) and is not very well suited for open-world MMOs like WOW, but this is not a general limitation of Photon).


    However you will have to add your own convergence algorithms to handle bad latencies, as which convergence algorithm works best is something that is highly genre- and sometimes even game-specific.

    For some examples of games that successfully use Photon for their multiplayer, please have a look at https://www.exitgames.com/en/Realtime/Showcase
     
  45. FuzzyQuills

    FuzzyQuills

    Joined:
    Jun 8, 2013
    Posts:
    2,871
    A question to all: is there any free alternatives to any of these? o_O Still waiting for UNET to come out for Unity 5.x, so I have been looking around for a solution myself.
     
  46. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    I haven't tested DarkRift on my Amazon EC2 server yet but it works like a charm locally and there's no reason why it wouldn't work. Here's a demonstration test of DarkRift used for an RTS: http://forum.unity3d.com/threads/dphysics-and-lockstep-framework-demonstration.318829/.

    Many of them have trial versions that are free but unfortunately, they have to make money eventually to keep bringing the spiffiest content possible.
     
  47. FuzzyQuills

    FuzzyQuills

    Joined:
    Jun 8, 2013
    Posts:
    2,871
    That's true. :) Point being, it's going to be a while before my game's in a good state to have networking added to it, so hopefully by then UNET will be out. (The game's actually very playable and mostly bug-free, but not all the game elements are in yet... :D)
     
  48. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    That's great! I recommend building your game around multiplayer from the ground up though. You'll knock a whole bunch of bugs out of the way before they ever have the chance to exist.
     
  49. hanger

    hanger

    Joined:
    May 28, 2014
    Posts:
    4
    uLink (Improved version of the old built-in Unity networking)

    I've worked with uLink before, in its early days. I realize now we would have gotten more out of them if we fully switched over to all their products (especially uZone), but we just used uLink. Very clean implementation. A couple tricks: If you don't need physics on the server, turn your tick up to 10 seconds (Time.fixedDeltaTime) to effectively disable movement. You can still do raycasts this way. At the time, we used windows servers because Unity couldn't build to Linux, but now it can, and Linux boxes are cheaper (and a lot simpler to use for server work).

    Mostly we've moved away from uLink for other games because we haven't needed realtime servers lately. I never really liked the idea of Unity instances on a server because the more you want it to scale, the less it resembles Unity. But uLink is a good solution for small or realtime games. And I'd definitely use it if the server is hosted by players or I was doing something peer-to-peer.

    Player.IO (Upload a C# DLL and run in heavily sandboxed rooms)

    We used Player.IO (now Yahoo GamesNet) for a while. Funny how the people most involved with those projects tended to quit. It is pretty easy to get something going on that platform, but you're locked in to a fairly restrictive environment and it's extremely difficult to work with unsupported services.

    Photon Server (Host your own C# DLL as a server)

    I really like Photon Server right now. Haven't shipped anything on it, but it feels pretty close to the metal. I'd be wary about worrying about the protocol too much. Again, I don't have much practical data, but it seems to have extremely optimized network libraries, so you should be able to get a lot more people onto one server. It is, however, pretty much just a heavily-optimized implementation of a protocol. (Well, a family of protocols.)

    Currently working on an async/await implementation of rooms in Photon. The default Lite controller leaves a bit to be desired.

    Took a look at Albion's blog for the mention of Photon and I'm not surprised they say "Photon offers a lot of functionality, but we are using only the most basic stuff, i.e. we are using it only as a message transport layer. Most of the actual network logic is very specific to our game."

    There's a good writeup on Das Tal that explains a little about their architecture using Photon. (He was nice enough to talk to me. I should probably mention they've got a Kickstarter going right now.)

    The part about Photon that I found the hardest was figuring out how to deploy the dang thing. It runs as a Windows service and has this little icon you have to click to control it. I just now discovered that one of the staff replied to my question back in December about how to deploy it. (I guess I gave up after hitting the refresh button for 2 days.) Anyway, my quest for Photon deployment was part of what let us to use PlayFab.

    PlayFab (Platform that hosts Photon servers and backend services)

    To do a server right, you need people to watch the servers, writing scripts to monitor them, scaling things. If you're rolling your own using AWS, a lot of that's you. We found PlayFab pretty early, but we've only just really started using them. They've got a clean API, great Photon integration (they mostly advertise Photon Cloud, but they support both pretty well). They are kind of expensive for an indie developer, but they do a lot, and it's a pretty fair pricing model. Mostly they just have a lot of pieces that we were looking at building, our roadmaps coincide and they're very responsive. I don't like to rely on roadmaps, but the platform is open enough that we can always fill any gaps ourselves if need be.
     
    Last edited: May 29, 2015
    JohnTube likes this.
  50. justtime

    justtime

    Joined:
    Oct 6, 2013
    Posts:
    424
    Hi, guys. What network solution is good for 3d slasher like Rune ?