Multiplayer In Unity3D - The REAL Options? (NEW unity networking & more?)

Поделиться
HTML-код
  • Опубликовано: 27 сен 2024

Комментарии • 354

  • @NunSuperior
    @NunSuperior 2 года назад +526

    Multiplayer isn't as hard as you think. It's much much harder.

    • @Rainysummer55
      @Rainysummer55 2 года назад +3

      How so? Im new to this and planning on getting started on it

    • @richardbeare11
      @richardbeare11 2 года назад +35

      Take the complexity of every mechanic in your game, then multiply the time and complexity by 2, or 3. Deciding when, and how, to sync game objects (e.g. who's the owner? Who effects what objects and when? What happens if someone joins late? How/when do you update/sync objects/params without bogging the network) scripts variables/params, debugging/testing with multiple machines. Just like anything, it seems simple conceptually, until you start needing to implement it yourself haha.
      It's totally worth doing, but start small! It can be a fun process if you are patient and persistent.
      Actually, I'll pitch this: If you want some help to get off the ground, I offer 1 on 1 sessions (developer support) as a side hustle (I used to work as a Unity instructor at Circuit Stream). There's also some great tutorials on PUN. I use PUN and it's great if you are making basic stuff with smaller #s of players and don't require super low latencies.

    • @creepybrainz4840
      @creepybrainz4840 2 года назад +18

      @@Rainysummer55 im working on online game for mobile.. The multiplayer system is too easy don't listen to people that say multiplayer is hard.

    • @gameacode1075
      @gameacode1075 2 года назад +3

      @@creepybrainz4840 I agree with you it’s not easy but that’s normal gamedev is never was easy , I think that people are generally programmed from other’s, and they say it’s hard even they didn’t experience itself.

    • @cahydra
      @cahydra 2 года назад +2

      Oh no, well it can't be that bad right?

  • @360axe
    @360axe 2 года назад +77

    Congrats on another excellent video Jason!
    The timestamps to help out everyone are:
    00:53 UNnet (Deprecated)
    01:34 Mirror uMMORPG
    03:08 Stream (video sponsor)
    05:01 Photon Fusion - Bolt - Pun
    07:05 Unity
    08:47 Fish-Net
    10:16 Dark Rift 2
    11:00 Smartfox

  • @wiglord
    @wiglord 2 года назад +34

    Working on a small scale (playercount) social mmo using fishnet. I have worked with mirror and ummorpg/2d in the past, but switched over to a scratch build co-op system with MLAPI back when it was first coming up, where I learnt most of my multiplayer coding. But the rapid changes during its development made me seitch back to mirror where i discovered fishnet. After switching to fishnet the first thing I discovered was just how smooth the server auth/client prediction was and how much nicer it felt than anything I had built previous. Haven't gone back. I have tested out basic builds with 8 players and over 250 AI all moving around on a live server and it was still just as smooth.

    • @StudiozYT
      @StudiozYT 2 года назад

      Thanks for the incite! I will definitely look into fishnet

    • @holdthetruthhostage
      @holdthetruthhostage 2 года назад

      I think Epic Online Services is the best option no limits free

  • @achery323
    @achery323 2 года назад +14

    Using Nakama at the moment as our internal teams found that the most useful for our applications over others mentioned in the chat. What stands out there is needing multiplayer control across different platforms all in the same session like Unity and a website all synchronised.

    • @aibor_io6871
      @aibor_io6871 2 года назад

      Oh nice, I was planning on using Nakama for a later project, how is it working for you?

    • @achery323
      @achery323 2 года назад

      @@aibor_io6871 Working really well. It's much better now with developing TypeScript modules instead of Go for the team. I'd recommend using the command pattern to simplify things a lot on the client end or JSONPatch if you want to maintain the full game state centrally. Depends on your application. Hope that helps!

    • @aibor_io6871
      @aibor_io6871 2 года назад

      @@achery323 Thank you , this was quite helpful , thank you will look into the command pattern

  • @ImperialMarque
    @ImperialMarque 2 года назад +1

    I've Used Mirror and Pun 1 and 2 and I love PUN personally.

  • @sdhority
    @sdhority 2 года назад +4

    Straight up read my mind. Was literally combing through your videos for some multiplayer stuff this morning. Thank you!

  • @Jinjer188
    @Jinjer188 2 года назад +9

    recently I've been using Nakama for all my games. Paradox is apparently using it for their grand strategy games. it doesn't have fancy features like physics simulation, prediction, lag compensation, etc. But it's performant, open source and easy to use. It's perfect for small games, turn based or any game that doesn't require physics sim or complicated animations like first person shooters. Photon is definitely easy to use /setup , but it gets expensive fast! Nothing beats open source! :D

  • @sunnyboy7358
    @sunnyboy7358 2 года назад +3

    FishNet is definitly the best and easiest solution ! Server Authoritive movment ? Just drag the script in, connect your input and the transform output aaaaand done.... God i love this asset !

  • @AEjlersen83
    @AEjlersen83 2 года назад +28

    The last one I used was Quantum from Exit Games. The guys that made Photon and Fusion. It was a different experience, since you make all the game logic in Quantum and not in Unity. However, when you get used to it, it feels like making a single player game.

    • @ryanharbert9415
      @ryanharbert9415 2 года назад +10

      Quantum is awesome. Its deterministic so you only have to sync inputs instead of trying to sync everything in the game constantly. It makes anticheat, replays, reducing lag and data sent, and more incredibly easy. Same patterns that they use to make Overwatch incredibly smooth.

    • @dworm123
      @dworm123 2 года назад +2

      @@ryanharbert9415 Does it have authoritative server? Is it viable for games simulated on server side with unity only for front end?

    • @ryanharbert9415
      @ryanharbert9415 2 года назад +6

      @@dworm123 Yeah but you don't necessarily need it. Inputs are all validated so the cheating player will only mess up their own experience.

    • @bidyo1365
      @bidyo1365 2 года назад +1

      @@ryanharbert9415 thank you for your first message, I now have an idea in the future about to make an online game smooth as possible 😯... because in the future I want it to be smooth as possible... because I have tried to play a private server that has very ugly outcomes when you are lagging, all things are like freeze and freeze while that same game but other private server when I am lagging, I can still move and hit players which is much better then after my ping came to normal the player that i hit on, just get killed and they are shock haha
      that's the kind of network I want, instead of those movements of players that are basing on your internet 🤮

    • @CasualTS
      @CasualTS 2 года назад

      Yeah it seemed intriguing. I want to check it out at some point. The only thing is finding the time to evaluate it, and I'm definitely worried that it's so different it won't integrate with any other Unity libraries.

  • @r.gtz.4521
    @r.gtz.4521 2 года назад +128

    Jason, I was really looking for not-outdated multiplayer options that would integrate well with unity and have been avoiding the subject (because I expected it to be a huge ordeal). with these options though, I at least have a starting-off point that I can focus on. thanks!

    • @publicalias8172
      @publicalias8172 2 года назад +2

      Fusion is a gamechanger really, bringing AAA options available to smaller studios at a great price it's huge.

    • @dominuse-sports2764
      @dominuse-sports2764 2 года назад +1

      ya I have to agree with "public alias" look at photon fusion, it is the future for indie devs not ready for backend dev.

    • @TheOtherClips
      @TheOtherClips 2 года назад

      @@publicalias8172 I tried it and it seems like a mess... You had better luck with it? Mostly I find that it lacks the input checks that a closed source project requires and it just throws nullpointers when I do something wrong with references to lines in code I can't see.

  • @mundovtor
    @mundovtor 2 года назад +7

    I actually use node js to make a server and a socket io client in unity to connect to it. May not be the best system, won't work fast, but it's my system and I love it. It's quite easy to set up too and It's flexible as hell.

    • @unhealthytomato3219
      @unhealthytomato3219 2 года назад +1

      can you define wont work fast? I am thinking of using something similar and I would like to know if I can stay on websockets or move to another solution

    • @mundovtor
      @mundovtor 2 года назад

      @@unhealthytomato3219 it's more of a theory as everything about web sockets seems to be more centered in online chats and stuff. I've done tests with up to 5 players with a basic player that moves and talks to npcs and it works great, the latency seems fine too. If you are not going to use it for an mmo I'd say its great, especially because you do all the logic :)

  • @cradle_of_chaos
    @cradle_of_chaos 2 года назад +21

    I've been using Unity's Netcode for GameObjects: it's now quite stable although still in pre-release and is very similar in its design to UNet/Mirror. The bite sized samples and Boss Room are useful too and regularly updated but looking for specific examples is still less easy than with Mirror as the solution is more recent. All in all I'm OK with my choice and hoping that the (very responsive) Unity networking team will make performance improvements, client-side prediction and NavMesh integration their priorities over the next few months!

    • @mikekozlov3484
      @mikekozlov3484 Год назад +1

      9 months later, still nothing from this is implemented.

    • @cradle_of_chaos
      @cradle_of_chaos Год назад

      @@mikekozlov3484 Performance markedly improved in the last few months.
      The team has also started exploring the facilitation of host migration (see GitHub issues) but yes, for client-side prediction and even better performance currently FishGames is still the solution of choice.

    • @mikekozlov3484
      @mikekozlov3484 Год назад

      @@cradle_of_chaos Yep, rewriting my proto from Netcode to FishNet right now.

  • @UeliMcStueli
    @UeliMcStueli 2 года назад +4

    I use DarkRift 2 and I'm really happy with it. The Support in the Discord Server is very fast and the community is great (grows every day).
    DarkRift 2 is very easy to setup and to use. You can make a console based server or a headless unity server (build the server directly in unity).
    And there are other cool functions ready to use :)
    The devs of DR2 have some cool plans for the future :D

    • @Haxel0rd
      @Haxel0rd 2 года назад +1

      I looked at DarkRift too, looks solid indeed! The only reason i went with Fishnet in the End is because DarkRift at time was not free, and i didn't see if it has client side prediction. But definately still on my list!

  • @yashikgulati3757
    @yashikgulati3757 2 года назад +30

    Jason, I really love your content and has helped me a lot in game development. I just want to give you a small feedback for your videos. The red rotating light is a little distracting. Just a thought you might consider. Keep posting videos , we love it.

    • @buffoverflow
      @buffoverflow 2 года назад +7

      lol, so I am not the only one that gets hypnotized by that thing...

  • @howl2339
    @howl2339 2 года назад +1

    Aw man, i can't stop looking at the lamp, it is the third time i look at the video XD

  • @maxkratt
    @maxkratt 2 года назад +26

    I've been building a game in Mirror, and once it "clicks" it becomes very easy to make good progress. I'm now converting the project to FishNet and I've been enjoying FishNet as well. Mirror's community is bigger currently, and there are more resources available for it, but FishNet's community is increasing steadily and the developer is a great guy who is eager to listen to suggestions and offers lots of help.

    • @GemTappX
      @GemTappX 2 года назад

      What's your game about?

    • @maxkratt
      @maxkratt 2 года назад

      It's a remake of Notch's entry to the 22nd Ludun Dare, Minicraft. I'm using it as means to learn networking in Unity. I think it's good to get a grasp of the basics before attempting to build my own game.

  • @tailwindmechanics7454
    @tailwindmechanics7454 2 года назад +8

    Mirror also have a dots focused solution that seems cool. This was well timed for me also as I'm currently trialing Mirror, its been fine so far. Being that I don't have any major network requirements, all I'm looking for is a service to just get out of the way and that won't break the bank. Most of the work for me at least is building a robust abstraction in order to prevent the networking app from polluting the other codebase systems. And Mirror is actually worse for that than PUN, but both are guilty. I'll try fishnet next, then fusion

  • @njs-tv6565
    @njs-tv6565 2 года назад +6

    Ive been using Photon Pun for a month now for a multiplayer shooter, I think an important thing to mention is that photon aint free if youre planning doing anything other then prototyping , the costs monthly spike pretty quickly if youre getting more then 100 ccu's

  • @re4727
    @re4727 2 года назад +1

    I love how we could experience througout Jasons videos how his room evolves. Im from the "big white lamp in the corner era". You guys?

  • @PitiITNet
    @PitiITNet 2 года назад +1

    Jason, you seriously are the start. Thank you for letting me know about Fish-Networking - I will definitely dig deeper into it! :)

  • @ShinichiKudoQatnip
    @ShinichiKudoQatnip 2 года назад +2

    I have been waiting for such a curated video for so long now 😭
    Thank you so much ❤️

  • @hunterdyar
    @hunterdyar 2 года назад +10

    I’ve had students make multiplayer VR experiences easily (easily enough for students) with Normcore. Not sure how well it’s documented since it’s not super widely used, but the creators have gone to release a vr esports title, Nock, for the quest.

    • @nootherkyle
      @nootherkyle 2 года назад

      how you verified with such low sub count ?

    • @TheGamerzXChannel
      @TheGamerzXChannel 2 года назад

      could you give some more feedback since the normcore itself is not widely used and it looks nice from what i checked their docs. Im trying to build a VR game either probably in Normcore or FIshnet, any suggestions? :)

  • @ElatedBlue
    @ElatedBlue 2 года назад +2

    So glad this video came up; I've been trying to decide on how I want to handle multiplayer in my game 🤔

  • @stefan429
    @stefan429 2 года назад +23

    Having used both fishnet and mirror, fishnet Def seems like the better choice atm. Much more performant and stable (fn docs provide ways for you to test and prove this yourself)

    • @GemTappX
      @GemTappX 2 года назад

      What kind of game are you developing with fishnet?

    • @andriusbendoraitis3171
      @andriusbendoraitis3171 2 года назад +4

      The way fn docs compare themselves to mirror in the docs is so disingenuous though. Makes me wonder what's the quality of the provided tests.

    • @FirstGearGames
      @FirstGearGames 2 года назад +5

      @@andriusbendoraitis3171 Can you please elaborate? Far as I am aware everything in the documentation is true. If there is outdated information about Mirror please let me know and I'll fix it. Please keep in mind I only update Mirror's information based on store releases.
      But if you are curious about the tests, run them yourself. I've provided all of the information to do so with the results.

    • @andriusbendoraitis3171
      @andriusbendoraitis3171 2 года назад +1

      @@FirstGearGames I mean, I'm sure all your claims in the docs are correct at least to some level. They just seem like they were written to fill a page with nice green text, rather than to genuinely explain the differences and advantages of Fishnet.
      Phrases like "Fish-Networking uses 93% less bandwidth, a very drastic difference!" makes me feel like you are heavily overselling something. (Unless it is actually a representative number in real-world scenarios, then hats-off, bright future for Fishnet!).
      Sorry for being vague, I don't really have the time to test everything rigorously, to give you more specifics. Best of luck with the project!

    • @FirstGearGames
      @FirstGearGames 2 года назад +6

      @@andriusbendoraitis3171 I've been hearing Mirror supporters (not implying that's the case here) say this for awhile. The only discrepancies which may exist are if Mirror updated their product with a feature or improvement I was not aware of. Being that I do not use Mirror anymore, I encourage others to notify me when this becomes the case. I'll try to summarize an explanation to your concerns in few words as possible...
      The features comparison only glazes some of the features FishNet has compared to Mirror. I've left many other unique and quality of life features out because it was difficult to give them a name without creating a large description of what they do. As you pointed out, it's mostly just feature titles without a description of why they are helpful. Though, seeing someone actually spell that out for me makes me believe I should improve upon that as soon as possible.
      The performance comparisons are also very real. The part you mention of 93% less bandwidth is specifically about RPCs, which the documentation states. If you are looking for an actual real-world scenario benchmark you can check out fish-networking.gitbook.io/docs/manual/general/performance/benchmarks/fish-networking-vs-mirror - how to test this yourself is found with the results. There is also a #user-benchmarks channel in my Discord where naturally, users can post findings of their own tests.
      Here's the summary on my benchmarks by the way:
      - Client FPS: FishNet clients achieved 70% more FPS than Mirror.
      - Bandwidth: FishNet used 67-78% less bandwidth than Mirror.
      - Server Performance(200 CCU): FishNet retained 92.6% server performance, while Mirror retained only 16.8% performance.
      Let me know if you have any questions.
      PS: I've been in the process of updating the documentation. If you want to review the full changes please check back a few more days from now.

  • @jTinVR.
    @jTinVR. 2 года назад +4

    the best thing with pun has to be the google results, most questions/solutions have been answered via google, testing fusion and fish atm so far fusion is winning

  • @GiantBean
    @GiantBean Год назад +2

    I have used Mirror, Colyseys, PUN and FishNet. I hated Colyseys didn't care for PUNs pricing and didn't do more then play with it before moving on. I accomplished a lot with Mirror and I am really liking FishNet so far. I would recommend Fishnet to anyone looking to get into networking but it still (Nov 2022) needs more documentation and you may need to play with other tools like mirror just to understand some networking basics.

  • @foolishgamer5084
    @foolishgamer5084 2 года назад +1

    Tom Weiland, who also has a channel on youtube just released Riptide networking. I have used it successfully to create authoritative server multiplayer. Its free and easy. You still need to implement client prediction and lag compensation on your own, but the plumbing is all there.

  • @MartinHolan
    @MartinHolan 2 года назад +1

    Hey, I'm kind of new into online multiplayer and started my game with Photon Pun, which I find quite easy to use. In early phase I've decided that I would like game to hit Steam and utilizing Steamworks features (not expecting any success, but want to proof myself that I'm able to finish the project) and thus now changing it to Mirror due to existence of Steamworks libraries for Unity.
    I believe it's always important to understand what are the options and select proper tool for the right job - thanks Jason helping us all with this understanding 👍

  • @ziedsioud3313
    @ziedsioud3313 2 года назад +7

    I am currently working with Fusion on an FPS game, I've started when fusion was still in beta, and now there is a stable official version, it's kinda have everything needed for a fast paced game with the tick rate system, it s confusing to use at the beginning but once you are used to it you won't have any trouble doing what you have in mind

  • @ВасилийПотапов-ч3ч
    @ВасилийПотапов-ч3ч 2 года назад +1

    Hey, nice vid, thanks! For us - we are using Smartfox. I don't know about others libs, but smartfox provides cross-platform support, which is what we need for our projects - used for pc, mobile and almost all consoles

  • @AmfistomosAtlas
    @AmfistomosAtlas 2 года назад +2

    Duuuue! I haven't watched your videos in a while and today I came back, and boy.... Great content as always but man.... WHAT on earth have you done with your background space?! xD

  • @KazimierzLuska
    @KazimierzLuska 2 года назад +5

    If you want to roll up your own server I am using RiptideNetworking by Tom Weiland for my small puzzle game. It is open source and written by a single person so it will not have many bells and whistles but a big benefit of it is that it's C# so if you want to have domain logic on the server without needing to learn another language this might be a good choice for you ;)

    • @BadBanana
      @BadBanana 2 года назад +1

      I'm going into Tom's stuff next year when I begin my course.
      It will be useful to see how he has done things compared to cs

    • @KazimierzLuska
      @KazimierzLuska 2 года назад

      @@BadBanana There are definitely things that I like in it (simplicity and relative ease of making the library do what you need it to do) and other ones I might not recommend in a project that's anything but a prototype (static only message handlers) but it is a good thin server library and with a bit of refactoring it's easy to make it do what you need.

    • @hawkgamedev
      @hawkgamedev 2 года назад

      @@BadBanana I love Tom's content and appreciate what he does for the community, but, aren't you afraid of investing your time and devotion to learn something that depends on 1 single person? I'm just saying

  • @thedudeguy242
    @thedudeguy242 2 года назад +1

    Another mid-level option if you don't want to directly wrap your TCP/UDP, you can try using a transport layer like Lidgren to handle different channels and ordering messages for you without abstracting away all of the serialization and engine-specific stuff

  • @kevonboxill9455
    @kevonboxill9455 2 года назад +3

    I still use photon Pun and i think it is really great for small multiplayer games, the hashtables format for sending game room data takes a bit getting used to for beginners but everything else is very noob friendly

    • @StillCisTho42
      @StillCisTho42 2 года назад

      hey! I'm developing a small game too, was the PUN free plan enough for your player base or did you need to buy the pay version? I got a prototype version of my game running on photon, 4 players by room, I'd been looking into Fishnet lately but Photon is so much easier, or I got used to it at least.

  • @benjaminswee-shaders
    @benjaminswee-shaders 2 года назад

    I've also experinced working with Photon, super quick to get simple testing going. Thanks for sharing!

  • @spacewizards9039
    @spacewizards9039 2 года назад +1

    Personally, I love FishNet. I haven't gotten to the point yet where I can develop multiplayer for my game, but that is the solution I'll be using for sure.

  • @ComfortZoneGames
    @ComfortZoneGames 2 года назад +1

    What no one tells you about Mirror in the first place: With the default Telepathy transport it just works in local networks, not online! That's because your router won't allow you to open a listener port for a server. If you want to host a game on your device, you need to manually open the needed port on your router. Of couse, this is a no go for potential customers of your game. The best solution for games that you want to publish on Steam is to use the FizzySteamworks transport and make use of NAT traversal und repeaters provided by Valve for free. Other options like NobleConnect will cost a little bit. This is not to be meant against Mirror - I succesfully used it in my game and like it - but to keep in mind if you consider using Mirror for online multiplayer.

    • @cloudPvP
      @cloudPvP 2 года назад +1

      You can always host a dedicated server with mirror. That way you won't need to forward your ports. At least that's what i did

    • @ComfortZoneGames
      @ComfortZoneGames 2 года назад +1

      @@cloudPvP You've right. That's another solution. But don't you have to pay for the hosting then? TBH I don't know much about developing and hosting dedicated servers.

    • @cloudPvP
      @cloudPvP 2 года назад

      @@ComfortZoneGames yeah you generally have to pay a web server provider to host your server. But it really depends on your app. For example i use the free tier of AWS to host my dedicated server for over a year. But my app is very light and can be supported by the free tier servers.

    • @ComfortZoneGames
      @ComfortZoneGames 2 года назад

      @@cloudPvP That might be a good option for future projects. Thanks for the Tipp.

  • @Frenuellcrackser33
    @Frenuellcrackser33 2 года назад +2

    I used SmartFoxServer for a game. I like how easy it is to implement and use, all you have to do is drag a .dll into the project and it works.
    It doesnt really bring a lot to the table however. You have to host you own server and also manage everything on your own.
    Like there is no network transforms or RPCs. You would always send player variable updates to the server and every client would receive them and you had to implement your logic based on that. Works with 2D, 3D, everything but I dont think it is really scalable/managable for bigger projects.
    At least that is how I understood it and I looked quiet a lot through the documentation.
    The documentation is actually pretty decent but next time I will definitely go with something else. Probably going to try FishNet ;D

    • @ppivec
      @ppivec 2 года назад

      I also use SmartFox and currently creating a Unity OpenWorld asset that is based on SmartFox Server and Game Creator.

  • @davidromero7786
    @davidromero7786 2 года назад +5

    And I'm here building it from scratch like a schmuk

    • @arthfr1
      @arthfr1 2 года назад +1

      Me too!

  • @MidnightSt
    @MidnightSt 2 года назад +2

    A good compromise between the extremes of complete library, and making your own networking solution on the level of TCP or UDP seems to be Websockets, IMO.
    No need to muck about with actual protocols and ports and all that lowest-level stuff, Websockets are much simpler and friendlier, but they seem to be pretty powerful. I've been able to handle 15k concurrent connections with my laptop (hp omen 15) being the server and it seemed to handle it fine.

  • @banzaimimic
    @banzaimimic 2 года назад

    I'm using DarkRift 2 with Unity. Thanks for the vid very helpful.

  • @renegaitor4914
    @renegaitor4914 2 года назад +2

    In my opinion, and from hundreds of tests and tests that I have carried out, I am afraid (I say "I am afraid" because I am an individual programmer) that the development of this type of element, which is so vital, has great risks when it is developed by individual natural persons. There are many occasions when, for whatever reason (illness, fatigue, lack of profitability, etc.) this type of product has ended up in oblivion.
    If this happens to you with a vegetation tool... well, good. But with a multiplayer development it is very different.
    I personally am "in love" with Fish-Net and have the pro options for my subscription on Patreon. But, I insist, the risk that one day you get "stuck" is there.
    It is a fact that we cannot ignore.
    Greetings.

    • @hawkgamedev
      @hawkgamedev 2 года назад

      exactly my thoughts about stuff beind developed by 1 person or 2. What's the legacy looking like when nobody thinks for the worst.

  • @Saltant
    @Saltant 2 года назад +1

    SignalR + WebGL = Pretty Good!

  • @twosoulfox
    @twosoulfox Год назад

    Thanks for talking about these topics.

  • @corey6796
    @corey6796 2 года назад +3

    Im using TNet3. Would have like to see it in the list.

  • @Un4GivNX
    @Un4GivNX 2 года назад

    Currently developing a game using Quantum, it is by far the smoothest multiplayer game dev I've ever had.

  • @CasualTS
    @CasualTS 2 года назад +5

    I've used Photon Fusion and want to point out it has a couple of drawbacks. It only supports networking through their relay service. You can't have a direct client->host setup. So that will increase your pings times by a bit, and conversely affect your game's responsiveness. Also they introduce a new update function (FixedUpdateNetwork) that you must use for all networking-related matters. This can be most of your game in fact if you want most of it to work in multiplayer. And if you're using other Unity game frameworks, be prepared to spend a lot of time adapting it to Fusion and FixedUpdateNetwork. We've also observed it seems to be optimized to the point of being risky, with some crashes on iOS since integrating it. It's a shame since this library seems the most polished out of everything I've seen so far.
    Unity Netcode for GameObjects (what happens when you let programmers name things) is still a preview package, so not fully supported or bug free yet. Occasionally I'd get silent failures. No logs, no exceptions, just client fails to connect. So they need to focus on surfacing error codes to the game. Also the events are kinda dumb. The "player joined" event is very late, to the point where you can get multiple "player disconnected" events without ever getting a "player joined" event. Those events need to be symmetric to make any sense at all. It definitely has long-term potential but since it's still a preview package, it's a risk for anything you're planning on releasing commercially. I'd wait a bit for it to get some more development time.

    • @webcreative70
      @webcreative70 2 года назад

      FYI: i am a backend developer with 4 yrs experience working on real time systems and databases

  • @CCV334
    @CCV334 2 года назад +1

    I’ve used normcore and it’s been good. They even have a sample VR project.

  • @badscotsman
    @badscotsman 2 года назад +7

    Photon PUN is great for devs new to multiplayer so I'm interested to see how Fusion works out in this regard. I've also used SmartFoxServer2X and it's solid (long history, was big for ActionScript Flash games back in the day - its AOI feature is still a pretty unique offering). Sadly Heroic Labs Nakama server was not mentioned since it is an open-source offering (not many out there) but also used for huge games (like by Zynga) - currently using on a client project that needs to support 40k CCU. ^^

    • @CasparovJR
      @CasparovJR 2 года назад +2

      I'm assuming you are running Nakama on your own hardware? If so, what are your server specs to achieve 40k CCU?

  • @AustinCameron
    @AustinCameron 2 года назад +1

    Had great success with Photon Bolt in the past, but was hoping Unity would finally have a stable alternative. Taking forever.

  • @zamo8076
    @zamo8076 Год назад

    Hey for the people watching that nowadays, photon pun is free up to 20players per server so to start i would really recommand this option.

  • @GamesOfVaibhav
    @GamesOfVaibhav 2 года назад +1

    I'm also curious about the Steam Networking solution🤔

  • @MacGhriogair
    @MacGhriogair 2 года назад

    Back in the day when I was smart, I built my own networking code for XNA. It was a lot of fun figuring out how to get things to work and working with multiple threads.
    I've been looking to get back into gamedev. But I'm old now, so I don't have time to build multiplayer again... I might have a peek at Fishnet

  • @jacobbender974
    @jacobbender974 2 года назад

    It looks like my last comment was deleted by YT... anyways, DarkRift user here - great library with a great (though small) community to back it. Recently went open source - if you are having trouble with the official docs, there are several tutorials and networking resources provided in the discord :) One nice thing about DR is that it supports both embedded (Unity) servers so you can take advantage of things like AI, Physics, etc easily on your server but it also supports console servers that can be a lot more performant if you don't need Unity to handle those things.

  • @GoogleDothBetray
    @GoogleDothBetray 2 года назад +4

    I am definitely looking forward to some Fusion tutorials, I didn't get the chance to use PUN, I went from unet to mirror. I've been tinkering with Fusion and it's a bit of a pain going back and forth between the examples, the documentation and my own code.

  • @BaseRadian
    @BaseRadian 2 года назад +2

    FishNet is a new one, it's better in every way to mirror. It's not hard to upgrade projects from it.

  • @DoorBuster21st
    @DoorBuster21st 2 года назад +2

    I used photon pun v1 for my first time using networking inside unity. seemed to work pretty well once I understood the netoworking concepts and how to bes implement things. I think I had more problems relating to game architecture that caused headaches with networking rather than the networking itself.

  • @philiplindner5150
    @philiplindner5150 Год назад

    I'm going to use Photon Fusion for my FPS with up to 20 players per game. Big advantages are scalable pricings, many optionally services and nice documentary about the netcode. It's also a quite new "technology", released in the last year's, so you're up to date :)
    To compensate the monthly costs for this service, players can rent a server and run it as an public server. Obviously there is no possibility to setup a public dedicated server from a player, only private ones to play with invited friends.

  • @amirhoseinadlfar3102
    @amirhoseinadlfar3102 2 года назад +1

    I am writing a source generator for Unity Transport to make serialization easier. And I think using Unity Transport with DOTS will be a better performance for big games. But without source generators, it will not have much speed in the development process and as a result

  • @galahad4514
    @galahad4514 2 года назад +3

    I'm currently using Yojimbo, it was made for c but it has a nice layer for dotnet. It is quite easy to install. One problem is that there isn't much documentation, so the whole security thing might be a problem, unfortunately I haven't experienced it in production yet, we'll see.

  • @siddharthtrivedi3322
    @siddharthtrivedi3322 2 года назад

    I personally recommend Photon because its easy to understand system and implementation of code is easy too.

  • @hacklordmonster8780
    @hacklordmonster8780 2 года назад +1

    i've only used photon, and only once. it did have some issues but it was a very basic project and i didn't even bother searching

  • @martinmaurer
    @martinmaurer 2 года назад +1

    Usually the story with unity’s solutions is: endless beta period to find out the final is really slow and crappy. Then you turn to something else… Fishnet is looking really good though…

  • @CG_CAKE
    @CG_CAKE 2 года назад

    Thanks very much!

  • @Syrul
    @Syrul 2 года назад +3

    what about Normcore? anyone used it? any opinions on it?

  • @dire_prism
    @dire_prism 2 года назад +2

    I chose to roll my own, simply because I started making my game way before I even settled on Unity for the client.
    It has been quite a lot of work for sure - and I probably wouldn't recommend going that route for someone wanting to make a game relatively fast, but today I'm happy I did so because I don't need to use Unity on the server.

  • @KeyboardKrieger
    @KeyboardKrieger 2 года назад +1

    I worked with mirror and photon for some prototyping, but now I make my own system.
    My game is turn based so the traffic is low and it doesn't matter if it's slow. All the paid options charge too much for the things I just need. So SignalR it is for me.
    Simplest way would probably be to abuse such messaging services like your sponsor and send json data instead of chat messages xD

  • @vast634
    @vast634 2 года назад

    The biggest problem is more to get people playing the game, so the servers are not empty. If a games is empty, even new player would quickly drop out, as there is noone to play with. Games that also support asynchronous play, or offline play have an advantage here.

  • @N1ghtR1der666
    @N1ghtR1der666 2 года назад +4

    I would like to see a tutorial for both fishnet and the new unity systems and then perhaps a video that compares the options in terms of ease of implementation and performance

  • @squitz7056
    @squitz7056 2 года назад +2

    what about unity's transport layer? I use it exclusively. It's the easiest to understand as it just sends bytes over. The work is a bit much but you have the finest level of control. Nobody seems to know it?

  • @XxIanEstebanxX
    @XxIanEstebanxX 2 года назад +2

    Jason it would be great if you make a tutorial on how to get started with fusion. There are tons of tutorials for PUN out there, but nothing on how to get started with fusion.

  • @ZenfadeCOM
    @ZenfadeCOM Год назад

    I vouched for Fishnet for a while now, been using it some projects, and it didn't grow as fast as I needed personally, after months of using it, I realised that Mirror had everything I needed for a fast-paced and that client prediction wasn't hard to implement in Mirror. The support is also much more helpful. My personnal experience with FirstGearGame were strange, pretty much narrowed down to talking about how much he dislikes Vis2k over some random drama. The project is great, just not "enough" for my games just yet.

    • @Classicv5
      @Classicv5 Год назад +1

      What was lacking with Fishnet? It's advertised as being faster than Mirror with more features (like prediction). I'm trying to decide between the two, but I want something that's easily capable of authoritative logic

  • @headstart3570
    @headstart3570 2 года назад

    Amazing video thanks Jason, a great jumping-off point

  • @cetiah
    @cetiah 2 года назад +2

    I just started learning networking a bit and I've started with Mirror since that's the one I found tutorials for.
    Dark Rift 2 has been recommended to me on Discord, but I don't know any specific pros or cons.

    • @steven3314
      @steven3314 2 года назад

      I also use Mirror, lots of tutorials, and there exists a book about building MMO using it!

  • @youelad
    @youelad 2 года назад +2

    I wish you'd have talk about pricing.

  • @GaryMcKinnonUFO
    @GaryMcKinnonUFO 2 года назад

    Fish-net for the win !

  • @MidnightSt
    @MidnightSt 2 года назад

    Until now, Mirror seemed good, and I was planning on using that one in my project. Oh, mentioned as a second one, cool :)
    Curious to see and explore other options, and possibly how the new builtin networking is going along, because I would really like to use the builtin stuff, if it's not bad anymore. But in general, I prefer using builtin stuff before using plugins, most of the time if the builtin stuff does all you need passably, it's much better option than a plugin which does all you need perfectly, because... Well... every plugin adds its own maintenance complications, always.

  • @VMEcycle6
    @VMEcycle6 2 года назад

    FishNet is the way to go😉

  • @CurryKitten
    @CurryKitten 2 года назад +1

    I used Pun/Photon to network my game up a year or so ago. I was pretty disappointed that it did so badly if you were essentially using high speed object, there were massive jumps in the objects on screen and it looked very jerky. I had to go through and write my own stuff that would attempt to figure out the velocity and direction it was likely to take and then adjust this as new positions would come in (which is what I thought Pun was supposed to do for me) It's an issue if you are an indie developer who can't afford to pay for stuff - Pun gives you 4 players per lobby for free which is ok, but I'll certainly be taking a look at these other options and see if somethings better. Ultimately I think it would be useful to get rid of the central servers and have peer-to-peer play... but you still need a server of some sort to handle the lobby/matchmaking stuff

    • @RobLang
      @RobLang 2 года назад

      Scrolling through the comments I didn't expect to see one of my favourite drone RUclipsrs in my other hobby!

    • @CurryKitten
      @CurryKitten 2 года назад

      @@RobLang I'm often checking out Game Dev channels - especially if it's something I can put to use. improving the networking aspect of my sim is something I'd like to sort out

    • @vkapoor69
      @vkapoor69 2 года назад

      @CurryKitten I am currently developing a VR game where a fast moving ball needs to be synced for multiple players every second. Syncing with PUN won't work for this. I had to write my own sync for the ball. The only way it worked is for each instance to have its local ball and then sync based on velocity at each hit and network ping times. But PUN works fine for slower moving objects in the game.

    • @hawkgamedev
      @hawkgamedev 2 года назад

      @@CurryKitten I just subbed to your channel thanks to this comment, great stuff there!

    • @CurryKitten
      @CurryKitten 2 года назад +1

      @@hawkgamedev Thanks :) There's not too much dev stuff on my channel (perhaps I'll have another channel for that at some point) but I hope you enjoy what's there !

  • @bdd740
    @bdd740 2 года назад

    One of the best video ever. Thanks a lot Jason.

  • @scottalexgray
    @scottalexgray 2 года назад

    I use Unity NetCode 1.0.0. It's pretty sweet. But it's very much a DIY sort of deal at the moment. You have to code your own client prediction and lag compensation scripts, as well as basically everything else. There are also many nice features like a network time and network tick system that is automatically synchronised which can be used for all your prediction and compensation needs. I'd say it's very good from a learning perspective, the only thing slightly lacking at the moment is documentation (it terms of examples) but they are working on it I am told.

    • @SRCoder
      @SRCoder 2 года назад +2

      That was the main gripe with unitys last implementation too. I really really really hope that they do get the docs released and get a stable release asap.

    • @scottalexgray
      @scottalexgray 2 года назад +1

      @@SRCoder Yeah, and unfortunately many of the links in the NetCode documentation point you to MLAPI webpages that don't exist anymore. From my testing, NetCode is pretty stable (using Unity Transports not the UNET transport (this is so I can add latency and other network discrepancies for testing) ). But I haven't tried any massive large scale stuff yet so I really don't know how well it scales

  • @voidcatgames7074
    @voidcatgames7074 2 года назад

    Thanks for your video! You helped us a lot!

  • @nabila.8647
    @nabila.8647 2 года назад +1

    Nakama is quite good as well

  • @valzzu
    @valzzu 2 года назад

    I'm currently using photon pun 2.

  • @vkapoor69
    @vkapoor69 2 года назад +1

    I am wondering how FishNet is free as you still have to run your own server on AWS which is not free. Even with PUN2 you have the option of running your own server instead of using Photon Cloud. Can someone explain what is the benefit of using FishNet over PUN2? I am using PUN2 for a multiplayer VR game with very tight realtime sync requirements and it seems to working fine so far. I am worried about Photon Cloud costs if game takes off as there could be 1000 CCUs. Who knows? :)

    • @roydrinkwater
      @roydrinkwater 2 года назад +1

      You dont have to run your server on AWS with Fishnet btw. You can host anywhere if you want to use dedicated servers or use client hosting. You have an option for relays for that as well. To run your own sever with photon, its very expensive just to get access to photon server tools, not even the cost of hosting. Fishnet has a lot of features like sever authoritative movement, rollbacks, and performance more that Pun2 doesnt have. That said, is pun2 works for your game, and you dont mind the CCU prices. No need to switch.

    • @vkapoor69
      @vkapoor69 2 года назад +1

      ​@@roydrinkwater Thanks. We have decided to replace Photon with Oculus APIs for voice, sync and matchmaking since our first release is for Oculus only. Oculus APIs are completely free as they use Facebook server instead of your own. I think using fishnet in addition to Oculus APIs would be our next step when we are ready to support other platforms.

    • @roydrinkwater
      @roydrinkwater 2 года назад

      @@vkapoor69 Sounds good. Good luck with development. I hope all goes well.

  • @LesP56
    @LesP56 Год назад

    Question, I need to learn everything I can about using a Photon Server (currently experienced with C# and Unity). I've looked on Udemy etc. and RUclips and haven't found much. I saw one Udemy course

  • @MidnightSt
    @MidnightSt 2 года назад

    Fishnet: damn, I was planning on using Mirror for my game, but... looking at the feature comparison, if Fishnet can do p2p, I'm probably going to go with that!

  • @WeirdBotIO
    @WeirdBotIO Год назад

    i kept thinking the right side of my screen was loading... 🤣

  • @AnkitRaj-er5xl
    @AnkitRaj-er5xl 2 года назад +2

    Used mirror in my 3d multiplayer project. However facing issue with room handling.

    • @GemTappX
      @GemTappX 2 года назад

      what do you mean room handling?

    • @mikekozlov3484
      @mikekozlov3484 2 года назад

      @@GemTappX I guess it's not possible to have two players in two different locations.

    • @GemTappX
      @GemTappX 2 года назад

      @@mikekozlov3484 isn't that the whole point of multiple player? What I'd like to see if a fully complete game using mirror or one of the multiple player options so I can see if it's worth investing my time in.

  • @miltgmend
    @miltgmend 2 года назад +1

    Fish Net!

  • @lokigaming459
    @lokigaming459 2 года назад

    Was looking at making my own since I don't want to use other people's servers or services to run my game. But might look into a couple of those options that won't cost me money.

  • @sugargamerr
    @sugargamerr 2 года назад +1

    we need videos on fishnet.

  • @PiyushKumbhojkar
    @PiyushKumbhojkar 10 месяцев назад

    We have developed soccer game. Now we want to implement multiplayer. Which one do you suggest?

  • @ank1286
    @ank1286 2 года назад +1

    I honestly thought, and maybe hoped, u were going to mention normcore. Still very informative video tho!

  • @gameginger5529
    @gameginger5529 Год назад +1

    sir , your beard looks op

  • @shilpashreen8995
    @shilpashreen8995 2 года назад

    Jason , i was really looking for canvas button should work in multiplayer which works using single player camera. do please share if anything is availabe

  • @ziogas2000
    @ziogas2000 Год назад

    Hey man, I started learning Unity and stuff, and in the future, I'm planning to build quite a fast-paced multiplayer soccer game that would include chat, story mode too etc.
    Which networking system you would recommend to me?

  • @andersmalmgren6528
    @andersmalmgren6528 2 года назад

    We use our own solution on top of Steam networking

  • @jordixboy
    @jordixboy 2 года назад

    Problem with all these libraries the vendor-lock in you to buy there servers, which sucks. I can rent huge server farms for relative good price. The only option I see viable is to write my own server code, but a lot of work...

  • @ZiederZiet
    @ZiederZiet 2 года назад

    Im using Riptide Networking Solution by Tom Weiland.