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

Поділитися
Вставка
  • Опубліковано 16 лис 2024

КОМЕНТАРІ • 354

  • @NunSuperior
    @NunSuperior 2 роки тому +531

    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

  • @TheArthy01
    @TheArthy01 2 роки тому +35

    I am using Mirror at the moment but i just read the documentation and benchmarks of Fishnet and i will swap to it now, it somehow looks like its more fun and a bit easier to develop with it. And i like the fact that they have an official roadmap which also includes an video tutorial series.

    • @olodurin6942
      @olodurin6942 2 роки тому

      which video series? Mirror is good but has few tutorial ..

  • @aggressivemastery
    @aggressivemastery 2 роки тому +4

    mainly using Unreal Engine networking, after hearing unity's ONE network dev talk about how "Games and Multiplayer are hard, Network is hard" in 2019... I had to just give up on unity and go to unreal. God bless you for helping the pain unity provides. God speed GameDevs!

  • @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

  • @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.

  • @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

  • @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

  • @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.

  • @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 :)

  • @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

  • @sdhority
    @sdhority 2 роки тому +4

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

  • @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

  • @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? :)

  • @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.

  • @MrQuaidReactor
    @MrQuaidReactor 2 роки тому +6

    I'm using Photon PUN, and for the first time on my new project. Having never worked on multiplayer I found PUN pretty easy to get. I am still learning some of the advanced lobby and room things, but as for implementing gameplay systems and syncing I find it great. The default photonview stuff works great and is very proformant. Thier team is also great, I had a few questions related to cost and they were very helpful. I will say that the cost system is a bit complicated for someone new to multiplayer.

    • @LuukDomhof
      @LuukDomhof 2 роки тому

      The biggest problem I ran into with PUN back when I used it (5+ years ago) was that you had no control of the server and no way to make an authoritative system. Which is a big problem for cheat prevention.
      Obviously not every game needs that kind of cheat prevention, but it was a big turn off for me. Though perhaps they've changed their product :)

  • @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.

  • @GiantBean
    @GiantBean 2 роки тому +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.

  • @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?

  • @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 !

  • @maximasxavier6969
    @maximasxavier6969 2 роки тому +4

    The following video might be "The best networking stack for the different game genres". FPS, MMO, Battle Royale, Fighting, Casual, etc. Or maybe by different session types; turn-based, session-based, and persistent world.

  • @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!

  • @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.

  • @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...

  • @drakorez
    @drakorez 2 роки тому +1

    I really appreciate that you are both a knowledgeable person who shares what they know, and also open to the idea that you don't know everything. One thing that drives me insane is people acting like they are the ultimate expert in something, and after you do what they suggested for a while, you learn that they were overselling their knowledge and sent you down the wrong path. I appreciate that you are clear about what you know, what you think, and what you need to learn more about.

  • @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! :)

  • @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 🤔

  • @ShinichiKudoQatnip
    @ShinichiKudoQatnip 2 роки тому +2

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

  • @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

  • @forerunner9729
    @forerunner9729 2 роки тому +1

    Using Forge Networking on a project of mine, a multiplayer railways simulation. Its handling everything I have needed it to so far and has been easy to work with

  • @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.

  • @ImperialMarque
    @ImperialMarque 2 роки тому +1

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

  • @calccalccalc
    @calccalccalc 2 роки тому +4

    Using PUN 2 in production and moving to using Fusion.
    Currently doing multiplayer VR events and minigames.
    PUN 2 is easy to use, but Fusion has a lot more features, and a heck of a lot more power, so I will be switching to it.
    Oh, and physics in fusion is handled in a similar way to something like Rocket League.

    • @StillCisTho42
      @StillCisTho42 2 роки тому

      Hey! Have you found some tutorials for Fusion, I also use PUN 2 and I'm trying to make the jump but a lot of the links inside fusion documentation page are dead for some reason. Also, how was your experience? it is that much better as everyone says?

  • @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 👍

  • @PlayU2U
    @PlayU2U 2 роки тому +22

    A Review on FishNet in Asset Store: I've been waiting a long time for a networking solution like this. I'm just glad it's finally here.
    I've tried Mirror, PUN, Photon Bolt, Netcode for GameObjects (MLAPI), Mirage, Forge. All of them have major hang-ups for one reason or another. Each one of them suffers from various downsides like legacy code, disorganization, or weird ways of doing things. But FishNet? The code base is clean. Like really, really, really clean. And even though it's simple and clean™, it still has all the features you want, and then some.
    Don't get me wrong, those other networking solutions have their strengths, for sure, but FishNet just takes all those strengths and bundles them into one package.
    Sure, Mirror is easy to use... it's just that FishNet is even easier to use. Photon Bolt is fast... but FishNet is even faster. Unity's Netcode for GameObjects is architectured well... but FishNet is just architectured even better.
    I cannot say enough good things about this networking package. It's just so good, and you should try it.

    • @Rainysummer55
      @Rainysummer55 2 роки тому

      Thanks!!

    • @mementomori7160
      @mementomori7160 2 роки тому

      Now I really know what to try out

    • @nathanmiguel76
      @nathanmiguel76 2 роки тому

      So fishnet is better than MLAPI 1.0 right?

    • @PlayU2U
      @PlayU2U 2 роки тому

      @@nathanmiguel76 this is someone else's review I copied for new comers to multiplayer games!

    • @trunghieu974
      @trunghieu974 2 роки тому

      I've read about FishNet, but just wonder about using it on production project. becase it's just new package, it've just been released for few months.

  • @MegamanXGold
    @MegamanXGold 2 роки тому +1

    Photon was mentioned. Specifically I use PUN2 and I like it. Initial set up isn't great, but once you get going it's pretty good for our game. Haven't made anything like an FPS though.
    It seems to handle synchronizing many GameObjects at a time well, and it supports immediate and buffered RPCs.
    I've never used anything else, though, so I'm excited to see what Unity has to offer!

  • @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.

  • @kylo1275
    @kylo1275 2 роки тому +3

    I know mirror & photon
    This video is helpful & learned a lot of stuff about alternatives & which is best.

  • @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

  • @silasstarr7674
    @silasstarr7674 2 роки тому +3

    I use Tom Weiland's Riptide networking solution. It's a bit more advanced than normal (i.e. it's purely code-based and doesn't have a simple component to apply to gameobjects that automatically works), but it allows for complete customization of networking. It has built-in RUDP and is completely open-sourced. It's still new but works phenomenally so far, and it has great tutorials made for it. Definitely would check Tom Weiland out on youtube!

  • @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

  • @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

  • @krammehl
    @krammehl 2 роки тому

    I wrote my own UDP networking engine with p2p capabilities after having a miserable experience with bolt. great video!

  • @JacobS-rh7tb
    @JacobS-rh7tb 2 роки тому +1

    Smartfox 2x here. We've been over 10k CCUs and it's really reliable (monoscene game, 20-25 players per instance). Mirror has some impressive projects using it as well, seems to be solid.

    • @hawkgamedev
      @hawkgamedev 2 роки тому

      what kind of game do you have if you don't mind me asking.

  • @benjaminswee-shaders
    @benjaminswee-shaders 2 роки тому

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

  • @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

  • @ВасилийПотапов-ч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

  • @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

  • @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

  • @sarthakbapte6301
    @sarthakbapte6301 2 роки тому +5

    UNet is just.... aah those were the times..... of networking spaghetti....

  • @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.

  • @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?

  • @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.

  • @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.

  • @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.

  • @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.

  • @CCV334
    @CCV334 2 роки тому +1

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

  • @Hastag_AgB
    @Hastag_AgB 2 роки тому +1

    Love ya, Love your show...
    Started vr social app using pun2. Setup was easy and seems to work.
    Have yet to stress test.

  • @Un4GivNX
    @Un4GivNX 2 роки тому

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

  • @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.

  • @philiplindner5150
    @philiplindner5150 2 роки тому

    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.

  • @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.

  • @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.

  • @banzaimimic
    @banzaimimic 2 роки тому

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

  • @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.

  • @erickpassos
    @erickpassos 2 роки тому +5

    Hi Jason, one of the developers of both Fusion and Quantum here. Thanks a lot for the kind words about our stuff.
    We try to always keep an eye on feedback and informational videos like this of yours.
    Anybody who is interested can drop a question bellow here. I’ll try my best to answer timely.

    • @reinhardtweyers9720
      @reinhardtweyers9720 2 роки тому

      Hey Erick,
      Long time PUN user (Both 2D and 3D)
      I noticed that PUN was horrific for 2D Platformering Physics and player synchronization and was curious if Fusion would be a significant step up? Also, what is the learning curve going from PUN 2 -> Fusion, as it feels a bit daunting having to re-learn the wheel. I look forward to your feedback :)

    • @erickpassos
      @erickpassos 2 роки тому +2

      @@reinhardtweyers9720 hi. Fusion has nothing to do with the way PUN works. It's a discrete ticks-based architecture that is designed for these games where accuracy is paramount.
      We recently released a sample called Razor Madness that loosely inspired by super meat boy vibes/mechanics. It should give you an idea of how to do 2D platforming with its APIs.

    • @reinhardtweyers9720
      @reinhardtweyers9720 2 роки тому

      @@erickpassos thanks for the input. Will have a look into it 🙂

    • @muhammadinaammunir6761
      @muhammadinaammunir6761 2 роки тому

      Is there any good tutorial for Quantum. There is nothing available on website.

  • @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.

  • @LuzuVlogsGamer
    @LuzuVlogsGamer Рік тому

    This was really usefull especially with the New Unity Networking system update.

  • @paulscott88
    @paulscott88 2 роки тому +2

    Colyseus has compatibility with a bunch of engines, including Unity. Good management for rooms, state, and normal message. Ok matchmaking, and compatibility with reddis out of the box. Though a case of needing JavaScript as another language.

  • @Saltant
    @Saltant 2 роки тому +1

    SignalR + WebGL = Pretty Good!

  • @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

  • @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.

  • @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.

  • @user-js7ud9du2y
    @user-js7ud9du2y 2 роки тому

    i slowly gained preference for dedicated servers instead of running BaaS mainly because for someone who is dealing with unity already its easier to jump to something written in c# best of all is you can run a full game in a server.. the only thing you lose though is multiple game engine support and baas dashboards like metrics logs admin page..BaaS like colyseus is good though or edgegap or nakama but very expessive.
    i highly recommend photon pun for all beginners if you just want to deliver a product connecting multiplayer without caring much about baas or dedicated servers because photon pun .. but if you care about cheaters use dedicated networking like Fish-Net Smartfox Dark Rift 2 mirror
    toggling between photon or a variant of fishnet or mirror is good way or even a baas but you have to keep in mind how much power you want vs willing to give up.

  • @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.

  • @marksteelman9648
    @marksteelman9648 2 роки тому +1

    Normcore is definitely a great option if you're doing VR, and also easy to use for non-vr.

    • @TheGamerzXChannel
      @TheGamerzXChannel 2 роки тому +1

      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? :)

  • @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

  • @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!

  • @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

  • @joshbishop
    @joshbishop 2 роки тому

    I'm a complete noob when it comes to networking and multiplayer games in unity, but I tried out Photon a while back, and it seemed alright

  • @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…

  • @GamesOfVaibhav
    @GamesOfVaibhav 2 роки тому +1

    I'm also curious about the Steam Networking solution🤔

  • @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

  • @chriskeegan5076
    @chriskeegan5076 2 роки тому +1

    I believe smartfox is only for flash from what I remember. Nathan from DapperDino had great tutorials. Mirror was my main choice for predominantly that reason. Tutorials make a world of difference. I'm sure there is a case to be made for software that was great, but never made it because of a lack of use documentation. Mirror has a limit to the number of connections, and then charge beyond that number. I'm a noob to a lot of this stuff, but I hear Photon is pretty good. It's just like a lot of what's happening right now where your tools snowball in cost, and so you default to all of the cheapest options available. Some tools are monthly. It feels as though the industry is trying to find an economic balance. My thought is make it free until it makes money. The more people using the tool you have the more companies will use your tool.

    • @ppivec
      @ppivec 2 роки тому

      SmartFox does everything, no longer Flash.

  • @corey6796
    @corey6796 2 роки тому +3

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

  • @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.

  • @twosoulfox
    @twosoulfox Рік тому

    Thanks for talking about these topics.

  • @tonytran07
    @tonytran07 2 роки тому

    I'm currently using MIRROR for a fast-pace game without an issue.

  • @siddharthtrivedi3322
    @siddharthtrivedi3322 2 роки тому

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

  • @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.

  • @MrOmega-cz9yo
    @MrOmega-cz9yo 2 роки тому

    Hi Jason! Thanks for the vid. The information is much appreciated!

  • @rambii.
    @rambii. 2 роки тому +1

    I am using Mirror for my open world anime RPG game to add some multiplayer features to it. If possible I might expand that to do much more such as having more people sharing the same world. I might download the uMMORPG to get a better idea how they did it and they to do it on my own

  • @ChathuraJayalath
    @ChathuraJayalath 2 роки тому

    I use Mirror which very comfortable for me to use. I haven’t faced any problems yet.

  • @davidromero7786
    @davidromero7786 2 роки тому +5

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

  • @youelad
    @youelad 2 роки тому +2

    I wish you'd have talk about pricing.

  • @BeerfootBandit
    @BeerfootBandit 2 роки тому

    A great free option is Photon truesync. It's a deterministic lockstep framework with code thats pretty much the same as monobehavior, except its called truesyncbehavior. Its open source so if you want to modify or optimize it, you can do so in c#

  • @ferociousgames4196
    @ferociousgames4196 2 роки тому

    Tom Weiland is working on a low level networking solution he’s calling Riptide and has a UA-cam channel on it. Worth checking out

  • @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 UA-camrs 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 !

  • @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