Search Unity

  1. Calling all beginners! Join the FPS Beginners Mods Challenge until December 13.
    Dismiss Notice
  2. It's Cyber Week at the Asset Store!
    Dismiss Notice

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
    Sure thing, if you still have access to Slack you can send me a message there and I'll add you to the private Alpha group too :)
     
    tatoforever likes this.
  2. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    3,917
    @farrisarts,
    Can you send me please the Slack Link (I think I still have access to it but don't remember the link to the group).
    Regards,
     
  3. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    No problem :) I'll send it in a PM so we don't hijack this thread
     
    tatoforever likes this.
  4. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    CarterG81 likes this.
  5. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,283
    so even if you hast yourself with Unet you need to pay these high rates? its like 10 more expensive than photon, thats great for guys who started to develop a mmo when it was supposed to be free when you host it yourself:p
     
    CarterG81 likes this.
  6. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    3,917
    At that point yes, Photon is cheaper and they host/manage everything for you. But even if Unity host everything (which I don't really care atm) I'm not willing to pay for the amount of users playing my game. Server use and traffic it's OK, but not players. That's the reason why I'm still giving Forge a chance, because I can't simply rely on such ridiculous prices per current/concurrent/active (whatever) players. :D
    Even worse, your users cannot host servers of your game. Which means, if your userbase gets big, prepare yourself to pay a lot of money (5000$ per month for 10 000 CU).
     
  7. kleinfb

    kleinfb

    Joined:
    Sep 21, 2012
    Posts:
    93
    Can anyone really list a well-know, "successful" real-time multiplayer Unity 3D game that actually uses one of those listed networking solution, or any other?
     
  8. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    3,917
    Rust uses uLink but I read somewhere they wanted to use something else. Don't remember the reason and where I heard about it sorry.
     
  9. Deleted User

    Deleted User

    Guest

    Rust uses raknet, not the build in raknet, a self written wrapper for raknet.
     
  10. kleinfb

    kleinfb

    Joined:
    Sep 21, 2012
    Posts:
    93
    This is pretty crazy, it's actually a very rare situation to have (a decent real-time multiplayer game in Unity 3D). I'm trying pretty hard to get somewhere amidst it all, but it's very tough.

    Even Unity's own solution does not allow me to have the networking running on a server of my own. All I seem to find is material to the legacy Networking Services.

    Unity's own servers make it nearly impossible to have a game running in a satisfactory way in some places around the globe.

    Am I really missing something?
     
    CarterG81 likes this.
  11. mhernandez88

    mhernandez88

    Joined:
    Jul 20, 2016
    Posts:
    13
    I am astonished at the complete disrespect for companies like Photon and their desire to charge CCU. While I admit they need some better pricing models, more supportive for the person that achieves massive success. However, my experience in the Tech Startup industry has shown that nothing is free, and in fact a freaking $3k license or whatever the pricepoint is a drop in the bucket.

    For those individuals that are thinking, "I can run my own server, and my machine at home, with <insert any networking solution here> and it will be good." Firstly there are laws against this, secondly, how will you handle network or machine failure.

    For those individuals that are thinking they are saving on CCU costs. Please keep in mind.
    Electricity to operate a server. Electricity to operate multiple servers.
    Business Zoned building for running servers.
    Local Network Management for those servers.
    Network Monitoring tools and time.
    Server Costs.
    High Bandwidth Internet


    Another Gripe: The only people who discuss CCU per server, and ask for benchmarks, are people that don't understand the benefits of cloud and distributed computing and commodity hardware.


    If I was going to run an MMO, you better damn well know, I would be running something like Photon Server, on Amazon EC2 in an Amazon VPC, with Amazon ASG managing the servers, and Amazon RDS (postgres) for relational data storage, with some sort of mesh of Load Balancer instances. Hell I might even use Amazon ECS instead of (EC2/ASG).

    I would be more than happy to PAY for all of these Services. Why, because I know that if my game is successful, it will work, and it will SCALE.

    And if not successful, well guess what I scale down to the minimum required infrastructure. Support it as long as feasibly possible. Open up a funding page, and run it.

    THEN GUESS WHAT. ZOMGZORZ .. I can use my Photon License for my next project.

    This framework I built, can be used for all my projects, can probably be MultiTenant, which MEANS
    OMG what, if my next game is successful, my previous game can piggy back on the servers.

    Please for the sake of this community, everyone, start taking your craft seriously. Share knowledge. Share techniques. Share Code. Make things Reusable. PAY for good services. Use sensible practices. Get funding

    As far as Photon Cloud, you are trusting them to handle the infrastructure for you, and also use globally distributed servers to best server any geographic region.

    As far a Forge vs Ulink vs Unet, vs photon, vs pun, vs bolt, vs whatever: Use whatever WORKS. The number one things for indie or small companies is to use whatever works and deal with the rest later.

    The honest truth is MOST of us will not be successful. For those whom are, their problems will be many, and it wont matter what decisions you made early on, because they will all be mistakes, no-one gets it perfect, no solution is perfect. Your ability to adapt, your ability to trust in services, your ability to learn, will be what keeps you successful.
     
    GMT and g8minhquan like this.
  12. mhernandez88

    mhernandez88

    Joined:
    Jul 20, 2016
    Posts:
    13
    BTW, funders on Kickstarter dont care what networking solution you are using. They don't care that you have minimized ccu overhead, but severely decreased your scaleability, and increased your cost of infrstructure. Funders don't care. They only care about one thing. Can you get your game out in time. Can you deliver on the features you promised. Can you make us happy.
     
    GMT and Tiny-Tree like this.
  13. FuzzyQuills

    FuzzyQuills

    Joined:
    Jun 8, 2013
    Posts:
    2,869
    +1 because no matter the networking backend, the NETCODE and server capacity is what makes or breaks a game, ESPECIALLY fast-paced ones like fighters.
     
  14. PhilSA

    PhilSA

    Joined:
    Jul 11, 2013
    Posts:
    1,193
    Hold on, what do you mean by that?

    Is UNET really limited to being run only on the Unity Multiplayer service thingy? You can't host your own servers or host it on Steam?

    Obviously I was able to host my own server while testing but is there some sort of legal limitation I don't know of?
     
    Last edited: Aug 23, 2016
  15. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,741
    I will refrain from poking fun at the seemingly exaggerated reaction of mhernandez88.

    Instead, I will simply question their credentials. Because this sounds like a rant from someone who barely knows what they're talking about.

    You realize that you can run Forge, which has no CCU cost, with Amazon...right?

    Also, who is this person who believes they're going to run everything at their own home? Please be specific, otherwise we are forced to assume this is an imaginary strawman, and thus that portion of your rant needless.

    You do realize that by paying for CCU's with services like Photon, then using Amazon, there is absolutely no correlation between paying Photon & paying Amazon right? Last time I checked, they are two separate entities. So the entire "Use Amazon!!!" part of the rant is pretty much irrelevant to the entire conversation. To reiterate: It's irrelevant because you can hook up Amazon with any solution that allows you to use a third party setup, regardless if it charges for CCU (Photon) or not (Forge).

    It's been years since I last checked the details about packages like Photon, but once again I am scratching my head as to the purpose of your rant.

    Photon charges via CCU, and unless I'm mistaken has no traffic costs associated afterwards (you aren't charged twice). That's great, but...

    Really? The price of Electricity to operate a server?

    The entire foundation of the business model of Amazon, Photon hosting, or ANYONE hosting is to profit. Now, networking is extremely complex. Charging for this or that? Even more so.

    Here's a vague & random example, but one I read recently.
    Company1 may charge X for Service-Y, while Company2 gives Service-Y away for FREE because they have all this extra stuff (ex. upload bandwidth) to give away because they charge X for Service-Z (ex. download bandwidth). They're able to give it away for free/pennies because it has a cost of $0 to extremely low, as it's "extra". All their business costs goes to Service-Z. Company1 can't compete with that, because their costs are much higher for Service-Y. However, they are more competitive in other aspects because of how they're setup & who they provide services to. The example I read, talked about a company that provided to a large neighborhood where >90% of their bandwidth was download, not upload, because it was mostly Netflix/Youtube streaming. This allowed them to give away their upload services for free/cheap, and profiting greatly because of it. Because they were selling what was essentially $0/cost for a ridiculously low price or made up for giving it away by attracting/growing the business in other ways.

    Some companies charge via subscription, with unlimited bandwidth. Some charge by bandwidth consumption. Some charge by CCU. Some by a combination of charges/usage & rates.

    This means that every host has its own costs, its own rates for its services, and they all differ. To calculate the best deal, is not as simple as "Go Photon & Amazon! You're stupid otherwise!!!" It takes a lot of research to find out what rates different businesses offer for different services, and a lot of knowledge to know what exactly you need. (ex. if you are trying to promote your crowd-funded game via a website, you may see next to no traffic - until one day it gets upvoted thousands of times on Reddit, resulting in tens of thousands of users in a single day, crashing the website & insuring you lose nearly all of that opportunity. By the time you fix the problem, the reddit thread is long since dead. This happened to Project Zomboid when they got big on Reddit. Another time later, Pirated copies of the game soaked up their bandwidth, charging them a good chunk of change for absolutely no gains.) They didn't know this would happen. They taught others it can by talking about it.

    But even that requires due diligence. Research.

    TLDR: Multiplayer sucks & you're a business owner when you become a gamedev, so suck it up & do some math. Research business stuff (i.e. Eat More Maths).
     
    Last edited: Aug 24, 2016
  16. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,741
    So it's not super simple as to say "Do this! Do that!" If you want to just spend whatever without having to do much research? Sure, go ahead and pay a lot to get the best services, guaranteed security, and all that. You may just end up paying a lot more than you need to though.

    Overall, this takes a lot of research (you're not just a gamedev, you're a business owner when you want to sell your game.) From what I've seen, most gamedevs seem to not want to become business owners.

    They are satisfied with giving away 40% of their revenue to a publisher, or 30% to Valve just to get on a cluttered platform & still never see the light of day. Others, like Minecraft, did everything themselves & got to soak up 97% of all revenue, paying for costs themselves (or paying a "fair enough" fee to their provider or servicer.) I've seen companies that do just as much for 9% of each sale, as Valve does for 30%. And sales to actually prove the gamedev made MORE profit with them than they did Valve. Yet gamedevs mindlessly give their money away to Valve.

    I see bandwidth discussions & Pro-Photon arguments to be very similar to this "mindlessly give your money away for no reason!" philosophy of new business owners. Which is fine, if you want to be just a gamedev & stay as far away from business owner as you possibly can. Just don't cry when you lose 20% of your revenue for no actual gains, because you wanted to be lazy or got scared of handling everything yourself (business owner style).

    Personally though, I don't understand why GameDevs, as frugal human beings, don't simply do the research to figure out what balance they're most satisfied with.

    I don't understand because
    You could mindlessly give away >40% of every sale to Publishers, Vendors, Hosting Providers, etc.
    You could do EVERYTHING yourself, and end up suiciding over the stress of doing it all, taking a full 97% - as cheap costs as possible.
    Or you could do anything inbetween, such as taking 91% by using this service, or 85% with that service, or 70% with that Vendor.

    But every programmer should know that 10% of tens of thousands of dollars is a lot of money. So that 3%, that 9%, that 30%, can be a huge chunk of change. (10% of 10,000 sales of a $10 game, is $10,000). It doesn't take a genius to multiple any of those numbers. To see the difference between giving away 10%, 20%, 30%, 40%.

    • Transform 10% to: 30% for Valve/GoG; 8% for Kickstarter; 9% for FastSpring services; X% for Itch.IO
    • Multiply 10,000 sales / monthly users by 2x to 100x; your costs could also increase 2x - 100x; or not, depending
    • Change $10 to $20, doubles that amount you lose, or perhaps you have FEWER total players & thus LOWER costs, but MORE money in total unit sales. If you double the price of your game, and it cuts the # of users by 50%, you make MORE money bc lower bandwidth costs. If you're using an "Unlimited" service? You make the same money. Cost is not lowered.
    • Compare Photon $175/month for unlimited CCU, with other service's costs / month, which could very well be much cheaper or more expensive.
    Etc.

    See the difference? See the complexity? See the incredible amount of nuance in what one gamedev needs and the other doesn't? All the business strategies that can matter when calculating profits?

    And for what?

    Some of these Publishers claim a lot, but are they really all that good compared to what you could do? Some of these providers handle nearly everything for 9%, so you're paying 21% extra to Valve for a CHANCE to get Featured. If you get featured, it's well worth it. If you don't though? You're one of the thousands of other games on Steam no one ever buys. But that Publisher may eat all the bandwidth / hosting costs, while you hosting yourself will have to take it out of your pay & deal with any issues that arise. (All relevant to conversation, as hosting costs don't just include Gameplay usage, but web hosting, matchmaking, buying the game, etc.)

    So when you have all these business costs on top of server costs & web bandwidth / hosting costs? How much are you taking home? How much are you stressed? How much additional work did you have to do?

    How much are you able to put back to grow your business at the end of the day, to make the games you ACTUALLY want to make?

    Every % counts.
    Every hour of work saved counts.
    Every bit of stress removed counts.

    But everyone needs to do their due diligence & research what they find most acceptable, before mindlessly taking the most expensive package just to "rest easy". (As if there's some known correlation between a temporary down server & some issue you have to fix & loss of sales that have already occurred, in an industry where refunds are aggressively refused.)

    You're not locked into one approach either.
    And hell, why even argue like it's only a choice once? You could host everything initially, and when all the buzz dies down around your game, pass everything off to someone else. You're then soaking in all that extra revenue initially, which is the biggest chunk of all of it, and then passing the rest off to someone else so you can worry less, and still rake in a good amount. (ex. Hosting everything yourself or with a cheaper service, then once the first week/month is over & sales dip, pass it off to Steam, Photon, Forge Cloud, Amazon, w/e.)

    I honestly don't get why this isn't a thing for gamedevs. Day-1 Sales are supposed to make up the bulk of all sales. So why not release Day-1 yourself, getting 91% to 97% minus costs, and then after sales die down, release it on Steam/GoG, transfer hosting, choose service to automate / maintain, whatever.

    Maintenance is forever, but research needs only happen once before making up your mind.
    Day 1 / Week 1 sales are a big deal. Big enough to make that extra work doing things as independently as possible worthwhile, before passing it off to someone else or an automated system.

    TLDR: Gamedevs often suck at business because being a business owner is a lot of work. It's up to you how much responsibility you take in, but try not to be intimidated. Do your research before deciding to give your money away.
     
    Last edited: Aug 24, 2016
  17. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,283
    you made a gigantic post but you just missed the point: no one is going to use an unproven solution to make a game at the scale of a mmorpg. there is many mmorpg done with Photon Server because the technology is just based on the requirement for hosting lot of player.

    ccu cost < development time. people doing business dont want to take risk. and they dont care about paying 1000$ usd to host all their infrastructure
     
    LeGiangAnh and Megaphone_ like this.
  18. tobiass

    tobiass

    Joined:
    Apr 7, 2009
    Posts:
    2,241
    Wow. That escalated quickly. Again :)

    I am missing an important factor here:
    To actually consider if some pricing is OK for your project or not, evaluate what you are buying.

    If you compare any "hosted-game-server service" with "hosting yourself" just by pricing, you're missing something entirely: To host yourself, you actually have to do hosting. Rent and run machines all over the world, ramp them up, shut some down, estimate usage and prices, mix on-demand and monthly rentals, etc. Once you setup a few machines, you install and update your game/server and monitor the machines that *should* run but don't always for some obscure reason.

    You can do that but it's not developing games. If you save money, depends on how stable and lean your work is.


    Mind you, I'm not even saying that you should not do this. Just be aware of what you get into.
    You should be sure that you can pull it off without a lot of hassle and without "surprise" costs and problems.


    My colleague recently posted about our pricing. Might be interesting in this context.

    TL;DR: If you compare hosted solutions with self-hosted ones, be sure you understand what you get in both cases.
     
  19. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,741
    Thanks for the patronizing reply, but I didn't miss any point. I simply disagree with what seems like a low information user.

    Your entire post seems like a mindless support of Photon, for absolutely no reason whatsoever. You didn't address a single point I made, and simply ranted with nonsense.

    First off, alternatives to Photon are hardly "unproven" solutions.

    Second, you can't say "no one" because that's just an asinine assumption. Any company or user could take a package like Forge & do whatever they want with it. You know why?

    Full Source Code!
    You don't get that elsewhere.

    And to say "no one would do that" is a bit silly, since companies are using Forge to make multiplayer games.
    Arguing whether or not it's a MMO is simply amateur. The very definition of that term is self-determined (mere opinion as to the criteria). And as I said, it's the only networking package (native to Unity) that gives you Full Source Code. I'd be skeptical of any company that claims to use be an MMO, that uses Photon, that could not also be an MMO with other networking solutions (ex. other assets listed here). Anything AAA would have their own system, or have enough money to buy full source code to closed source systems. No one cares if they choose this or that, or photon or not.
    There are legitimate reasons for choosing ANY package. Any form of hosting.
    That's why they all exist (or not).

    Also, this thread isn't about MMO's. It's about all types of multiplayer games. And MMO's are more complicated than other games, but still share a lot of the same architecture as authoritative server games. You're just talking about scale, which is relevant, but your claims that others are "unproven' are simply incorrect. Have you even USED any networking assets, besides Photon? If not, how would you even know?

    Once again, this is an asinine argument. Who are "People"? And why do you speak for all of them?
    Ah that's right, you don't. And they aren't one "people".

    "People doing business" ranges from solo developers with no money to their name, ranging to AAA companies with billions. To lump them all in as not caring about infrastructure? This is just plain dumb. Because it's wrong. Even AAA
    care about their bottom line. In fact, it's common to hire people exclusively just to find ways to reduce costs. Reducing costs, such as handling deals with providers & crunching the numbers. Just like I suggested.

    I more than covered the reason we shouldn't mindlessly assume what you JUST mindlessly assumed. I am fully confident you didn't even read what you're responding to. You think that's a gigantic post? How does your mind handle game development if your head hurts not reading that?



    No, it really didn't. It was just a reply & some thoughts as to why Photon isn't always the right choice. Calm down, and please stop attempting to marginalize everyone who disagrees with your product. If your product is quality or your marketing is solid, your business will do fine.

    I encourage everyone to not be intimidated by dense posts or intelligent thought. It's really not that big of a deal. Do your own research.
     
    Last edited: Aug 25, 2016
  20. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,741
    This should clear up any confusion. Although I'd like for a Unity rep to confirm this post or sticky it. So make that request if it seems legit.

    http://forum.unity3d.com/threads/unet-seems-fine.427415/#post-2763031
     
    PhilSA likes this.
  21. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,741
    Just to bump- this seems to have been an unanswered question that was lost in this thread after that weird pro-photon shill rant.
     
  22. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,283
    you answered about someone talking about MMO, then giving some example out of context of some developer that use photon cloud and complain against the fact they had overpriced billing because of piracy. well this is just bad planning, if we are talking about mmo you do not use photon cloud and you have some login/control. i stopped reading because of all the nonsense. but i agree about one thing, full source code and solution like forge are good for solo developer.
    yes i did as it is my main job since few year, when i say unproven it mean no mmo game has been released using forge yet and some feature are not working because unfinished and bug,
     
    Last edited: Aug 25, 2016
  23. tobiass

    tobiass

    Joined:
    Apr 7, 2009
    Posts:
    2,241
    I am calm. Please don't accuse me of saying that Photon (or any product really) is always the right choice. I never said anything like that. I take it personally when you claim I would be marginalizing other opinions.
     
    Last edited: Aug 25, 2016
  24. TehGM

    TehGM

    Joined:
    Nov 15, 2013
    Posts:
    89
    Hi!
    I am currently working on a small multiplayer FTL-kind game. I already asked a different question about it HERE.
    Anyway - besides that one little thing I have solved (for now at least), I came across another 'wall': networking choice.

    I want the game to be server authorative, with rooms up to 4 players. Player client shouldn't host the game - reason being I want the game to have 2 vs 2 and All vs All PvP modes. Also, running server authoratively and separately would allow me to do some fancy things - fair Reward Crates drops etc etc.

    My limitations are:
    1. current budget - I'd like to check the solution before paying for it. My current budget is limited, and considering my game is far from being finished, I don't want to pay a lot for it yet, especially since I'm a student.
    2. need for custom server logic - this is the requirement for authorative part.
    LITTLE less critical limitations:
    3. cloud - while not essential later (hopefully), for development purposes it'd help a lot
    4. AssetBundles - while this could be avoided using Custom Serialization and separate editors, AssetBundles would allow on-demand resource loading.
    5. dependency on Unity classes - MonoBehaviour mostly - while I could make Non-MonoBehaviour Ship class as DLL for server and Ship class in Unity that takes data and events from it, instantiation could prove little more difficulty. Still doable, but still hassle, too.

    I do NOT need any physics, however some spatial acknowledgement on the server would be nice. I am able to simulate it more or less on server, though.

    I've read the topic and I'll surely take a look at Forge etc, however it'd be nice to get some advice, too.

    Running Unity instances headlessly would easily solve issues 4 and 5. I hear Forge is good at it, but I'd still like to hear some suggestions.

    I've taken look at Photon - and while Cloud would be great for testing and development, setting server instances, even headless unity instances, could prove some difficulty.
     
    Last edited: Aug 28, 2016
    CarterG81 likes this.
  25. clever

    clever

    Joined:
    Oct 11, 2012
    Posts:
    35
    stay away from uLink, they seem to have quietly closed shop and now my investment of 550 Euros has gone with the wind since their platform does not support IPv6 only networks (required by iOS)
     
  26. Vedrit

    Vedrit

    Joined:
    Feb 8, 2013
    Posts:
    505
    Some really long posts here.. I'll just chip in my 2 cents.
    I'm one of those developers who, for the time being, want to host everything themselves. I even built a low-end host for it.
    Something that I haven't seen mentioned is host OS compatibility. My host runs on Linux (Ubuntu) which Photon outright does not support as a server host. The others seem to because they run in an instance of Unity which, of course, does support Linux.
    There's also the complexity of the networking solution to take into account. UNet can get up and running (though perhaps not perfect) in a matter of minutes. I spend 2 days fiddling with DarkRift and could not get a server that I scripted to turn on and accept connections from within a Unity instance. I downloaded a trial of Forge, but haven't spent any time with it, so can't really say anything about it or the others.
    And the complexity of the networking solution is important. If it has a steep learning curve, every line will be a challenge, and so there will likely be tons of bugs to work out, and slow down development.
     
  27. Jamster

    Jamster

    Joined:
    Apr 28, 2012
    Posts:
    1,026
    I'm sorry DarkRift didn't work for you, we never did get to the bottom of whatever issue you had :(

    I hope you'll come back and try DarkRift 2 when it's released, hopefully you'll have a better experience!

    Jamie
     
  28. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,406
    I want to warn about Forge, its just too buggy and unstable. The reliable RPC is not reliable, etc. And the code base is a mess with memory leaks and bad written code.
     
  29. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,741
    What version are you using?

    I ask because I find the last part the most strange. I found the code very clean & easy to understand. So much so, the first time I looked at it, I fixed a bug myself & added in a new feature in a few minutes.

    Not saying it's perfect. Just curious about your experience / more details.
     
  30. Vedrit

    Vedrit

    Joined:
    Feb 8, 2013
    Posts:
    505
    I'm still keeping an eye on DarkRift2, but it's a low priority until I find someone experienced on the matter to tackle networking
     
  31. justtime

    justtime

    Joined:
    Oct 6, 2013
    Posts:
    339
    Forge is really bad thing. A lot of bugs, absolutely terrible support! And now i am looking for a new network solution for my game. What can you say about latest Bolt ?
     
    Last edited: Nov 6, 2016
    AndersMalmgren likes this.
  32. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,406
    Sorry missed this reply, we were using the latest version but not the Redux, the orginal version
     
  33. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,455
    Thanks for the post.
    I am a rookie when it comes to mulitplayer networking.

    I am wondering if my perspective is right, hopefully you can help, as it is a little off topic.

    In order to have a multiplayer game you need first a Server, then a Lobby, then a player. Each needs to commincate across the server. Using a server can be an expensive feat, not only in cost but lag.


    As such, to build a 2 maximum players, per room, in a game that really only monitors 1 transform at a time ( a golf game so swing club, hit ball), this is quite a light weight game when it comes to network demands.

    I am wondering, due to the size of my game, what are the financial costs to me across the server? Is it just the number of players using the the server or is it coupled with how much information is being sent across the server?

    Also, is my game, running on X server, effected by your game running on X server??



    Thanks for any insight you can provide.

    Rennie
     
  34. FuzzyQuills

    FuzzyQuills

    Joined:
    Jun 8, 2013
    Posts:
    2,869
    I haven't been too sure myself to be honest. It mostly depends on the kind of game... For racers/fighters, P2P would be viable. For shooters, either P2P or dedicated server.

    MMOs though? If you're only on unity personal, that won't be happening if you're using UNET.

    That's all I can give for now, learning UNET after using the old system's a bit of a curve for me... :D
     
  35. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,741
    If you (anyone) want to make a MMO, then three tips:

    1. Don't use Unity. That's a horrible idea.
    2. Dont use UNET. That's infinitely worse an idea.
    3. Get ready to learn or work, because you'll need to know all there is to know, so you can do it all yourself. The right way. From the start.
     
    TechDeveloper and Cypherronin like this.
  36. FuzzyQuills

    FuzzyQuills

    Joined:
    Jun 8, 2013
    Posts:
    2,869
    :D Love this one. Very true.
    If anything, making your own engine ENSURES you know what you're doing, as that is NOT an easy task. (I still have my own in the works, and it's not quite ready for prime time yet)
    That + MMO project idea = possibly over a year of development time.
     
    CarterG81 likes this.
  37. stefanplc

    stefanplc

    Joined:
    Feb 21, 2015
    Posts:
    66
    Any thoughts on Unity Multiplayer vs Photon Unity Network for a mobile MOBA like game?
     
  38. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,741
    Yesterday I upgraded my big project to Unity 5.5, update all my assets, and that included implementing Forge Networking Remastered.

    It took me 2h 17m to go through the documentation & do some of the examples. Wanted to read through it fully to know how to upgrade. Pretty simple stuff, so most of that time was just double-checking / triple-checking for no reason.

    Upgrading was a pretty big hassle through, since I had tons of code from Forge original. Compile errors when upgrading to the new package prevented me from using their Editor Window required to generate network code, so I had to first go through and comment out enormous amounts of code from tons of different scripts. It was a pretty big mess.

    Then having to hand-input everything in the Unity Editor was a PITA for me (the documentation seemed pretty insistent on NOT creating my own code, and never touching any generated code.). I usually automate mundane tasks like this. For a new user, it would be perfectly fine. In fact, better than before- I like it. But having to update hundreds of RPC's by manual inputting them into a UI... it was a lot of work.

    7h 23m later, and I had the majority of everything converted over. I am still working on transitioning over, so I can't test everything, but so far from what I can tell it's working pretty well and I do like the changes.

    Before I test to see if it's a flawless transition for all my networked game logic (not much of the logic changed, just some syntax), I have to redo how the PlayerCharacter is created.

    In UNET and in Forge, I had to do some hack-y code to make sure it all worked because of some timing issues. One of the most frustrating things about both of those packages. (And something that UNET at the time failed to even complete. At least Forge worked after such a headache. I hate UNET).

    Now with Forge Remastered, it seems I don't need any of this hack-y code. So I have to clean it up and "do it right" this time. After that, I'll test it all and see how it goes. If all goes well, I'll be done in a few hours (today). If it only takes 2 work days to upgrade (10-16h) then that's not bad. Not easy at all, but definitely a lot faster than any bad scenario.

    If I weren't upgrading from old forge (pre-remastered) then I'd probably love all of this. The changes give a lot more control, simplify things too, and overall just seems A LOT more efficient. But since I have to do all that headache work & mundane tasks, I just see it as a lot of busy work.
     
  39. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,406
    How much memory do remastered allocate each frame? Even after we fixed the memory leaks in the old version it allocated around 10k per frame which put alot of unnecessary strain on the GC. Well, and then it was the unreliable "reliable"-RPCs offcourse.

    I would be supercareful with Bearded man and make sure these things work in remastered
     
  40. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    The problem with Forge Networking Classic (FNC) was that it focused on being 100% integrated with Unity, including making everything work like magic (as many developers would like it to). We realized that putting so much effort into Forge being an easy to use system in Unity and completely integrated made it almost not a focus. All of the effort went into mirroring the things people liked from other networking solutions, while making it work with Unity, while still trying to make a working multi-threaded networking system.

    In comes Forge Networking Remastered. We actually wrote the entire system without even opening Unity at all. Every action can be unit tested, we completely removed reflection, and we made everything moc-able. No more static references or singletons driving the network. We created a completely new architecture around making network objects as a micro-object within the system rather than some global hive mind. We continued to make sure that our transmission and communication used correct standards for validation and especially completely thread safe. Most of the reflection code in the previous caused the overhead you've seen.

    After we completed writing FNR, we then opened up Unity and created code generators and hooks to turn Unity into a 3rd party of Forge Networking. With this approach, FNR can be tested like never before, it is easier to debug, easier to modify, and easier to extend :).

    Since you are a previous owner of Forge Networking you actually have 100% access to FNR. I would like to invite you to come give it a try and let us know what you think and possibly what will make it even better. We have a very positive response from those who come from FNC and even from those who left FNC because of the inability to work with reflection or some other general problem. We did listen to every complaint, every issue, even every point people brought up simply because they didn't take the time to go through documentation. We considered issues that people had, to be our own fault and so we did our best to fix those issues. :)
     
  41. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,406
    Hi, we moved to our own network solution so at this point I do not have time to invest in looking back at Forge since we are happy with our own solution, but thanks.
     
  42. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    No problem! :D The option is always available for if you'll need it.
     
  43. MrLucid72

    MrLucid72

    Joined:
    Jan 12, 2016
    Posts:
    671
    PlayFab runs off Photon servers -- but they can also be utilized with whatever. They are a BaaS ("Helper") to other services such as UNET/Photon/Forge/etc.


    Here is a comparison between BaaS (PlayFab vs GameSparks):


    (Spoiler: PlayFab wins, but barely)
     
  44. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,741
    I'm complete with my upgrade from FN to FNR, and everything is working fine. Took me two full workdays to upgrade (16h), so not so bad.

    My code is cleaner than before, and Forge Networking Remastered is definitely a step up from original FN.

    I definitely have confidence in the asset & developers again.

    Responses from the developers to any questions or issues is also very fast once more, so that is very helpful. Plus I really enjoy using SLACK, the community, and viewing Trello (what theyre working on, bug & feature tracking).

    I'm now updated to
    Unity 5.5 (can't wait for 5.6!)
    Forge Remastered RC6

    I'm also looking forward to checking out Master Server when I'm ready.

    Right now, it's back to working on gameplay! Networking is done for now! :)
     
    Brent_Farris likes this.
  45. F-R-O-S-T-Y

    F-R-O-S-T-Y

    Joined:
    Mar 22, 2013
    Posts:
    239
    If I wanted to create a fast paced FPS game, similar to Quake 3, without authoritative moving but authoritative shooting model, which one would be the better option?

    I've dropped UNET because its payment plan seems to be too expensive, plus the fact that I can't write my own serialization code throws me off(only when using RPC's, which I believe create overhead?). I've now taken up PUN and am implementing it at the moment but since I am at the early stage, I could easily switch to something else. Reading several pages on this post I suddenly became interested in Forge.

    As I understand, if I use Forge, I would need to host my own servers, however I would not have that problem with PUN.
    Then again, the low bandwidth that Forge seems to offer is very tempting plus that it is open souce, would let me modify the serialize functions the way I want them to be modified.

    Taking this for example, http://gafferongames.com/networked-physics/snapshot-compression/, could I implement these bandwidth optimization techniques with PUN in its OnSerialize methods? Are these techniques already implemented? If not, then since forge is open source I could implement these optimization techniques by myself. Am I correct on this one?

    The only reason I'm not jumping straight onto Forge train is because it would be another new system I would need to learn and I am already familiar with PUN, which saves my development time.

    Thanks,
    Frosty!
     
    CarterG81 likes this.
  46. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    @F-R-O-S-T-Y
    Hi there, I am not here to advertise Forge to you but to answer the questions I can answer about Forge in your post.

    You will have source code access which will allow you to modify any part of Forge, however in Forge Networking Remastered we actually provide what we call Frames in which you can write binary serialized data however you like in the Binary frame type. This also gives you access to sending the message to specific players, to proximity players (working on finishing proximity now), all players, server, etc. We wanted to make sure that people can serialize data the way they want and not have to follow some set method we come up with alone. We currently have a couple of users who use Binary frames exclusively for their game (with some RPC calls here and there as well).

    I can understand that haha, we have had a few users who tell us the same thing. We are finishing up our documentation for Forge Networking Remastered right now and will be working on video tutorials in the future. However, if you want to take a look at the documentation to see what the learning curve will be, please let me know and I can send you a copy.

    Sorry, I've never used PUN, but one of our team has used it, I'll see if he knows a way for you to send some custom data in PUN.

    Edit: I'll just attach the work in progress documentation PDF here
     

    Attached Files:

    CarterG81 and F-R-O-S-T-Y like this.
  47. emarwell

    emarwell

    Joined:
    Jan 3, 2017
    Posts:
    1
    Hi guys. I'm starting today with Unity and i'm php and java developer, now i'm studying Unity and 3DS Max, but my desire is make a MMORPG game, and still don't know what server/framework is best for that, i've looked for SmartFox and Photon Server but i still don't know wich is better for a MMORPG. I want something like 3D but with 2D view and a little server with low cost and don't using much bandwidth, maybe even a 100 connections of Photon or SmartFox can be sufficient.
     
  48. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,741
    I made a reply to your comment here:

    https://forum.unity3d.com/threads/is-mmo-why-mmo.287326/page-2#post-2905578

    It's not all that helpful, but it's a start. I also watched those UNITE talks on my phone, mostly just the audio (while I do other stuff, like chores or driving).
    A great, informative way to pass the time & get into that gamedev mood.

    Although I strongly advise anyone looking to make a MMO to really get down & dirty with their game design.
    I ask in that thread's OP what defines an MMO, why we want MMO, how we can achieve MMO, and do we even need as complex a network structure as many MMO's have to achieve what we (and the user) wants from an MMO. (The answer is that sometimes we DEFINITELY need that MMO server structure; sometimes we actually don't & can save a ton of time/money changing some of the design.)

    https://forum.unity3d.com/threads/is-mmo-why-mmo.287326/

    I hope it helps at least a bit. I know it didn't answer your actual question.
     
  49. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    305
    PUN has some benefits that work to its system that may work in ours but in a different way. That being said, PUN makes a payload from a package that you would then use to sync up with the room that you are currently in. Depending on which version of photon you are using turn-based vs real-time you would then send this dictionary payload from one end to the other. The problem with this is the data cap that is being stored on the server then needs to sync this giant dictionary to everyone else on the network. From my experience I had a lot of problems with disconnects and interruptions that was not sustainable in the long term for what I needed. Sending basic information is relatively easy with Forge and you can choose what to sync across the clients compared to just everything at once. The difference with Forge is that you would have to network your system in a way that would be optimal to your app/game. Photon gives you the spring-box method where it just generally works for whatever but it doesn't have the necessary optimizations that would make it go another step further. This also compared to the fact we are full source code and no CCU which makes it so that scalability for the future is in your hands and not Photons.

    Each has it's own benefits, for some relatively small game with only 4 players you can get away with prototyping on Photon; but in my opinion, I believe that as long as you build your game networked to support multiple different networking solutions you only make it that much stronger to swap to an alternative solution when you face a problem with your game/app that is not easily solved in one of the solutions you have. Forge is very extensible that you can program your app/game in such a way that you can hotswap networking solutions if you do it just right.
     
  50. F-R-O-S-T-Y

    F-R-O-S-T-Y

    Joined:
    Mar 22, 2013
    Posts:
    239
    Wow, this proximity thing seems interesting. And thanks for the docs!


    In what kind of situations did you receive these disconnects and interruptions? When there were more than 4 players?