Synchronizing Data between Clients/Server | Unity Multiplayer Tutorial

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

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

  • @arin_faraj
    @arin_faraj 4 года назад +170

    You basically started the best networking course for unity
    keep it up

  • @publicalias8172
    @publicalias8172 4 года назад +64

    Love how the essentials are just, explained. Like why is every tutorial so spaced out and under-explained ? "just type this and this very specific function will work" this is a gem!!

  • @openpineapple2205
    @openpineapple2205 3 года назад +6

    I've been trying to wrap my head around this stuff for weeks and it turns out all I needed was this one 30 minute video. Thank you.

  • @robertholl8914
    @robertholl8914 4 года назад +1

    3 days trying to figure out how to send Commands without authority... wish I'd of gone through this series a bit earlier. Great tutorials a lot of information and looking forward to more. The information here is the most relevant I've seen on the subject and very informative

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

    These are the best multiplayer tutorials, period. Thank you again.
    Just a little clarification on the [SyncVar] example, in case someone was confused like me. As the holaCount property is initialized in the player instances, there will be one holaCount property for each client, althought they have the same variable name. So if client 1, sends 10 holas, its holaCount will update and be sent to client 2, but client 2 will still have 0 holas.
    If you add this to the OnHolaCountChanged() you will know of which client is the shown holaCount:
    Debug.Log($"Player with NetID {netId} had sent {oldCount} holas, but now he has sent {newCount} holas.");

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

      Thank you ! I was wondering why I wasn't getting the same amount on each...

  • @brokenMikrophone
    @brokenMikrophone 4 года назад +24

    These Tutorials are incredible. I love how well structured and organized they are with the labeled sections. Keep it up!

  • @mauricioolavarria6479
    @mauricioolavarria6479 4 года назад +26

    Thanks so much, i was so lost in the mirror implementation, im a huge fan of your content, if i wasnt broke as and with a child i woul pay you for this. im sick of good tutorials giving limited information and asking for payment, im looking foward to make some money with my game, and i promise you will be in the credits for that :D

    • @ShrineApp
      @ShrineApp  4 года назад +8

      no worries man I hope you build something great!

  • @tehuster
    @tehuster 4 года назад +24

    Liked, Subbed, Belled all the hola's. You got a great talent for explaining things. Please continue making great content like this!

  • @nickjasperr
    @nickjasperr 3 года назад

    every other tutorial ive seen up till now has been just showing me what to do, but i dont care about all that, i wanna understand how everything works, how to use mirror on my own, this and the last are the first acctually useful tutorials, thank you, you helped me sooo much dude u have no idea

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

    I don't write comments often but this one deserved it.
    Easily the most useful tutorial I've seen on Mirror, even compared to their own documentation! Quickly, cleanly and without confusion you explained all the things I needed to feel confident about what I'm working with. Earned a sub! :)

  • @Sagaan42
    @Sagaan42 3 года назад

    These tutorials are the best multiplayer not only tutorials but even just explanations I've EVER SEEN. You're amazing.

  • @Ayyouboss
    @Ayyouboss 4 года назад +6

    Simple Incredible and definitely way to underrated! I've subbed from the bottom of my heart. You have made my day!

  • @nikilkumar1000
    @nikilkumar1000 4 года назад

    Who the hell are those disliking these videos? Something is surely wrong with them.
    These videos are so well made and concise.

  • @tauheedgamedev2388
    @tauheedgamedev2388 4 года назад +7

    Real in-depth guide on Mirror. I was thinking about adding network support to one of my games but couldn't get to grips with it. After watching this video Im gonna give it another go and if it works I might even add network support to my current Game project. Thanks. 👍 Subbed

  • @yiguanliu2318
    @yiguanliu2318 4 года назад

    Learned so much from your tutorial as someone who has zero knowledge on how multiplayer works! Thank you ! Very clear content

  • @fillament
    @fillament 3 года назад

    i spend the whole weekend trying to make commands work. Now it works.

  • @ゆかなえ
    @ゆかなえ 3 года назад

    Amazing! Best networking course!
    I have started writing unity for a month, and 2weeks with mirror.
    I have almost finished the single mode UI, but when I imported mirror,
    I MESSED UP so hard....
    After watching this video, I start understanding the data Synchronization logic,
    THANKS!

  • @nilla_studios
    @nilla_studios 4 года назад +1

    Man you are awesome! I am creating a multiplayer game and was just doing stuff without knowing how exactly it works. But now I am working like a boss 😂.
    I have subscribed + turned on bell notification for not missing any video you upload. Hopefully I can complete what I have started 😀

  • @yuribento
    @yuribento 3 года назад

    Thank you so much! as a web developer i was searching for something like this for a while... i have to say: this is the best unity multiplayer tutorial that i ever seen. Subscribed!

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

    WHO WOULD DISLIKE THIS SERIES IS GOING TO BE AWESOMEE

  • @NoelTugy
    @NoelTugy 3 года назад +1

    I'll definitely watch this tutorial again when I'll try things around!
    Thanks man! :)

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

    Thank you so much for this amazing tutorial! I was stuck because I didn't know how to use properly mirror but this tutorial helped me SO much.

  • @Exori
    @Exori 4 года назад

    Amazing for someone with dev experience who wants a kickstart into multiplayer dev in Unity, please continue, I love the videos.

  • @alexanderpaul5775
    @alexanderpaul5775 4 года назад +6

    Great video, keep on the awesome work!

  • @Kromahtique
    @Kromahtique 3 года назад

    Your explanations couldn't be more clear. Thank you so much for you work.

  • @siRrk1337
    @siRrk1337 4 года назад

    this is the best of all the tutorials on mirror i could find! by far. i think i can do with what you taught us, but i would be watching and linking additional entries to the series :) for example, id like some common mechanics implemented, like players shooting at npcs and each other. basicly principles on where and how to use commands and rpc!

  • @eduardorabanal2803
    @eduardorabanal2803 4 года назад +4

    great tutorial, I've already enabled the notifications, thanks a lot

  • @anselmx3
    @anselmx3 4 года назад +1

    Liked and subscribed, it's amazing how you describe everything clearly and quickly. The visuals really help too, keep it up!

  • @cainen6355
    @cainen6355 3 года назад +1

    This is a brilliant series! Very well structured and explained! Great work.

  • @alexleonardkrea
    @alexleonardkrea 3 года назад

    I wish I could like this more than once! All of these tutorials are top notch! I'm now subscribed for anything you feel up to releasing in the future. Thank you for putting the time in on this!

  • @noscopeowl4653
    @noscopeowl4653 3 года назад

    You are amazing, really blew my mind how a 30 min video could teach me so much

  • @philipp3250
    @philipp3250 4 года назад

    That's hands down the best Unity Mirror tutorial series out there. Hope you'll get more attention in the future so that you stay motivated to provide more of these brilliant videos for us.

  • @fernanlaracapito5961
    @fernanlaracapito5961 3 года назад

    Thank you, the best mirror networking tutorial !

  • @NETRUNNER_03
    @NETRUNNER_03 4 года назад +1

    I cant describe how amazing this is. Thank you Thank you Thank you!

  • @kankurokano3926
    @kankurokano3926 3 года назад

    The tutorials that you make are the only tutorials on youtube that teach just the basics of Mirror in a really simple and understandable way
    Great Job
    If possible could you make a tutorial on making rooms and matchmaking?

  • @suryanshkulshreshtha4095
    @suryanshkulshreshtha4095 4 года назад

    I love how you give time for part its a time saver

  • @HelPfeffer
    @HelPfeffer 4 года назад +1

    I love this serie. Thank you, this helps me A LOT.

  • @harrydavies6531
    @harrydavies6531 4 года назад +4

    Really good series and very useful. You’ve got potential man and I can see you becoming a big game dev youtuber one day

  • @glenzhang3646
    @glenzhang3646 4 года назад +1

    Super great video, looking forward to more

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

    great stuff. Can't wait for serialization, it seems very useful

  • @richardstevenson371
    @richardstevenson371 3 года назад

    This video... is amazing. Feels like I'm getting a proper lecture that I would pay for. Subscribed for sure! : )

  • @TheDaKSn
    @TheDaKSn 4 года назад +3

    Really well made. Subbed! Keep it up!

  • @RugbugRedfern
    @RugbugRedfern 4 года назад +6

    Thank you so much! This is amazing, and exactly what I needed. A sub for you!

  • @mrhandy1784
    @mrhandy1784 4 года назад +1

    Love the tutorials! Super helpful and educational. I am trying to build my first multiplayer game and these videos are a lifesaver. Cant wait for the next one! :)

  • @drummsnikk5073
    @drummsnikk5073 3 года назад +1

    Keep this up man, it's really incredible!

  • @matthewwoodc0
    @matthewwoodc0 3 года назад

    Wow. All I can say. This is a fantastic tutorial, could be the best one out there!

  • @amadhia
    @amadhia 4 года назад

    FANTASTIC tutorial in every regard! Thank you so much for creating such a top-notch tutorial! I’m looking forward to watching the rest in your series!

  • @CarlosHernandez-gv8sn
    @CarlosHernandez-gv8sn 3 года назад +1

    One of the best, simplest, and easiest to understand Mirror networking tutorial out there. Having said that, I am having difficulty with Instantiation. Could you do a video on instantiating object and they’re specific Authority / updating all clients?

  • @thesporehero
    @thesporehero 3 года назад

    Thanks, great tutorial! This helped me past a bit of a networking brick wall in something I was working on

  • @muhammedemen5122
    @muhammedemen5122 8 месяцев назад

    the contents you produce are unique. why don't you keep producing videos. people need you.

  • @icebrn
    @icebrn 3 года назад

    I love these multiplayer videos. Keep up with the good work

  • @Whaiitran3106
    @Whaiitran3106 3 года назад

    impressive class! you made a such complex thing like this looks like so simple! thanks!

  • @andrey3061
    @andrey3061 3 года назад

    You explain to me that I try to understand for a week, thanks!!!!!

  • @gamedevtitan5040
    @gamedevtitan5040 7 месяцев назад +2

    The only mistake i could find in this video is that at 24:42 there is a ' ] ' missing after ClientRPC other than that the video is perfect.

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

    Admit it its the most explained networking tutorial..

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

    Learning a lot about Mirror from these. My only wish is that the example you give for the various tagged methods, they happen across multiple clients and not just one client and server.
    For example, regarding the TargetRPC tag, I want to see the behaviour of a different client when pressing the X key.

  • @techmaster90
    @techmaster90 3 года назад

    This is very well made and you explain things clearly.

  • @RogueWorlds
    @RogueWorlds 4 года назад +19

    awww yeah, give me that multiplayer juice!

  • @tatomarinelli7937
    @tatomarinelli7937 4 года назад

    Amazing tutorials! Greetings from Argentina 🇦🇷

  • @midniteoilsoftware
    @midniteoilsoftware 4 года назад

    Another excellent video. I’m looking forward to the next one.

  • @ahmedthegreat3973
    @ahmedthegreat3973 3 года назад

    25:13 You Forgot A Close Bracket "]" After ClientRpc. BTW I LOVE THESE VIDEOS. VERY DETAILED. Subscribed

  • @randyh3761
    @randyh3761 3 года назад

    Great content! Love your examples and explanations

  • @mickmickymick6927
    @mickmickymick6927 3 года назад

    A tutorial I can actually understand. I only see one more video, I really hope you didn't stop this prematurely cause it's much easier to follow than Tom Weiland's one and goes further than Dapper Dino's one.

  • @asfand6904
    @asfand6904 4 года назад

    Great series bud, keep em coming!

  • @edwardkarra6027
    @edwardkarra6027 4 года назад

    you are just... GREAT!
    Thanks!

  • @Crocofrozen
    @Crocofrozen 4 года назад

    Very good explanation, great youtube channel !! I can't wait to see the next videos !!

  • @brucescott7156
    @brucescott7156 3 года назад

    I need more of this, it's so good

  • @xGAMER-xc4tm
    @xGAMER-xc4tm 3 года назад +1

    im an absolute beginner but u rly gived me a lot of informations :DDD

  • @christinanorman4144
    @christinanorman4144 8 месяцев назад

    This is such a great video!

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

    please continue this series!

  • @Celcious
    @Celcious 3 года назад

    just love this channel.

  • @mahdiruzmeh7862
    @mahdiruzmeh7862 4 года назад

    thank was very helpful.
    keep continue

  • @theholycity7498
    @theholycity7498 4 года назад

    This video is very informative and well- explained, very helpful! Will you be making more tutorials on Mirror in the future still? I noticed it has been a while since you posted any.

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

    Having trouble as the docs don't seem to specify the answer to this. The tutorial looks a tad out of date. This callback no longer seems to exist
    public override void OnClientConnect(NetworkConnection conn)
    it looks like it throws an error for not existing. I looked at the docs and there looks like a virtual method, but it doesn't seem to behave the same way. Any ideas how to move forward?

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

      hey, i got the same issue, have you found any solutions mate ?

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

      That wont work because its NetworkClient.connection is a static class.
      OnClientConnect doesnt take any parameters.
      I was able to get this to work by doing the following.
      public override void OnClientConnect()
      {
      base.OnClientConnect();
      Debug.Log("Connected to Server!");
      }
      public override void OnClientDisconnect()
      {
      base.OnClientDisconnect();
      Debug.Log("Disconnected from Server!");
      }

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

      @@oriongames1211 You save my day mate.

  • @piztech5168
    @piztech5168 3 года назад +1

    29:31 The holaCount value doesn't stack together in the server when you press X on different clients. When I press X in 1st client, it starts adding 1 until I reach 10 for example, but when I press X in 2nd client then holaCount value starts from 1 or goes back to 1, the holaCount should be 11 to all clients by that time. Isn't SyncVar supposed to update the variable's value to all clients and the clients can add by 1 each time they press X and continue to keep stacking in the server? Idk why this happens and it's not making any sense

    • @danielemessina1979
      @danielemessina1979 3 года назад +1

      having the same issue here, did you find the explanation? EDIT: I get it now, the sync var is shared and sync'ed among the instances of the same object across server and clients, but two objects, like the two players, will each have its own, it's not like a static class variable. So what we see is holaCount for player 1 and holaCount for player 2.

    • @piztech5168
      @piztech5168 3 года назад

      ​@@danielemessina1979 I forgot to edit this comment, I moved to MLAPI networking. And before that, I just thought it had the same system as Roblox Networking where u sync 1 variable and it would automatically sync to all. In MLAPI, I solved this by doing an "if this is server then variable is incremented" condition after you send the signal from client to server. MLAPI is not much different from Mirror so give it a try.

  • @12457p
    @12457p 2 года назад

    I want to say thank you Senpai

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

    Nice video, helped a lot :D

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

    ur a life saver man thx

  • @xGAMER-xc4tm
    @xGAMER-xc4tm 3 года назад +1

    thx dude yu rly helped me a lot :)))

  • @midniteoilsoftware
    @midniteoilsoftware 4 года назад +1

    Will you be covering using the NetworkRoomManager and a custom hud/ui?

    • @ShrineApp
      @ShrineApp  4 года назад +1

      Custom HUD/UI - yes. NetworkRoomManager - might explain it, prob won’t use it as I’ll reimplement a better version as we continue to build a fall guys style game

  • @victoraurelius5334
    @victoraurelius5334 3 года назад

    Best tutorial on Mirror+Unity, great job! One generalized question: how would you tackle writing both a single-player AND multi-player game. E.g. some RPG like game with co-op element. Would one write EACH script again for single-player mode, or would one "fake" a single-player experience, by just silently setting up a (localhost) client-server / host connection when the player starts a single-player game?

  • @chatbear69
    @chatbear69 4 года назад

    Love your videos and how you explain the details and the implementation of the code. When you get a chance could you make a short video on how to create a custom GUI for the multiplayer. That would give me, and maybe others, the next step in completing a game. Thanks for your time and expert advise on getting things up and running.

  • @blue_lobster_
    @blue_lobster_ 3 года назад

    Wow that's awesome

  • @somedevstuff5060
    @somedevstuff5060 4 года назад

    Awesome tutorial

  • @vader777
    @vader777 3 года назад +1

    So would you say that sync vars would be the best to keep track of the transforms/actions of AI agents in a game?

  • @harunakdogan41
    @harunakdogan41 3 года назад

    Nice tutorial!

  • @pandasoniccollective
    @pandasoniccollective 4 года назад

    Dude!! Thank you!!!

  • @breewilkinson8787
    @breewilkinson8787 3 года назад

    Have you released the lower level tutorial just yet? Cheers!

  • @r.iyushofficial5318
    @r.iyushofficial5318 3 года назад +1

    How to communicate between client1 to client 2

  • @moe9647
    @moe9647 4 года назад

    amazing work

  • @shivamchauhan2673
    @shivamchauhan2673 4 года назад

    You are amazing!!

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

    not sure if you are the adress for my question but i wonder how can i call simple events from one sciprt to another - if i want ti add listeners and invoke a message i discover the listenr is not getting the event. i usepublic static class EventsManagerand i put there all the relveant actions and it worked - untill netocde...

  • @chris-c4c1n
    @chris-c4c1n Год назад

    are these all information about Command, ClientRTS, synVAR, still up to date when Unity provided new multiplayer system?

  • @badstuff5919
    @badstuff5919 3 года назад

    Great tutorial ! How are the arguments filled for the OnHolaCountChange function filled? Where are old count and new count variables passed into the function ?

    • @joyceanblue
      @joyceanblue 3 года назад

      Hi, did you manage to figure that out?

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

    @Shrine what if i want to call a [Command] from an object that is not a Player???

  • @peny1981
    @peny1981 3 года назад

    Hi, how to sync texture or send png using Mirror from server to client?

  • @entrepreneurshipandselfimp4714
    @entrepreneurshipandselfimp4714 3 года назад

    Is that possible to connect different game server to different game server
    Or data transfer from one game server to different game server

  • @BluePhantomStudio
    @BluePhantomStudio 3 года назад

    Ok So I understood what u said but I m confused that which rpc to use to show projectiles and flash to other clients

  • @techmaster90
    @techmaster90 3 года назад

    Can I sync "Collision2D x" using a command and then a SynVar with a Hook and then a ClientOnly Method? I get an error. I don't think I can pass in the new Collision2D value in the the client method. How can I do this?

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

    I have a problem with synchronizing the player itself.
    I am using the karlson movement script (rigidbody)
    and every time a client joins a Host (Client + Server)
    It blacks out the clients view and causes the Host To
    be in control of the other rigidbody character.
    This is weird, I also have Network Rigidbody and Network Transform