Good day!
There are a variety of networking platforms available for Unity, I would like to solicit input regarding Photon, Bolt, or Unity’s built in networking in regards to my situation. I am creating a persistent multiplayer game with heavy FPS elements so hit-detection and lag compensation are critical. This game will eventually allow users to run a server locally or rent server space and run the server from there (the same paradigm as in games such as Minecraft, for example). Max CCU would be in the 100-150 range.
Given the above info, what networking package for Unity would you recommend? Obviously I would prefer a “one time purchase” with no additional overhead down the line.
“hit-detection and lag compensation are critical” depends more on how you implement your own logic to account for these things more so than your library of choice. Photon offers a redistributable license and with Unity you can do it for free. I’d recommend using a networking lib that doesn’t lock you into Unity if you plan to host people’s servers which would require you eventually write some pure C# serverside applications to provide that to users anyway.
Thanks for the input Glader. It sounds like–correct me if I’m wrong–you’d probably recommend Bolt for the long haul? I.E., since it comes with full source code in C#, it’d be the most easily altered down the line to accommodate the serverside apps you reference?
Obviously why I’m trying to avoid coding from scratch is simply the work hours involved. No need to reinvent the wheel if the heavy lifting has already been done.
I have never used Bolt so I’m not sure. I’ve used Photon Server and Photon Cloud as well as Unity’s builtin networking, and some others, but not bolt. If Bolt will allow you to write applications for the serverside both within Unity and outside Unity then that may fit what you want.
Bolt implements a lot of complex techniques which takes many months to do by hand already for you. Bolt currently requires you to run the server inside Unity also (akin to ULink for example), but if your goal is to build a “competitive” FPS style game it’s pretty much a non-issue as the servers for those types of games require the entire world state to be able o make authoritative decisions about it, including stuff like physics and animations.
Bolt has built-in support for authoritative movement, smooth interpolation of remote players, mecanim animations, hitboxes and lag compensated shooting against them, plus many more things. Which just work “out of the box” without the need to write any low level networking code.
There will be the possibility for running the bolt server outside of Unity also, most likely around Q1 2015 (February - March next year), but again it’s a useless feature for something like an FPS.
Originally, I started with Unity’s built-in networking. Then I started using Photon. I’ve been using Photon for a few years now and so far it’s been working for my little experimental games. I’d like to try Bolt in the New Year. So far, I like the fact that Bolt’s documentation appears to be very good with lots of clear examples.
Im in the same boat. Used Photon for quite a while now, but would love to try out Bolt, hey i already bought it. Problem is just that i don’t have time for it now