9 EASY Steps to create a multiplayer game with Unity & Photon - Tutorial

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

Комментарии • 1,1 тыс.

  • @reendevelops
    @reendevelops 2 года назад +347

    Hey Blackthornprod, I just want to point out a *BIG* trap or mistake in the video (05:53). This would lead a bad misconception on beginners, and it happened to me.
    For context, I was making a lobby room list that displays all the rooms a player can join. However, the room list wasn't being received properly due to the issue below.
    Calling the PhotonNetwork.JoinLobby() during the LoadingScene prevents the LobbyScene from receiving OnRoomListUpdate() callback because the current scene is still in Loading. However, if there was an OnRoomListUpdate() callback in the LoadingScene it would get called, but beginners wouldn't have a clue on that.
    I've been struggling with this for weeks not realizing this was the cause! I had to read a lot of documentation to finally understand how it worked and have wasted a lot of hours. I hope this helps anyone, and I hope Blackthornprod sees this so they can guide other beginners to avoid this mistake.

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

      You can use Physics.Raycast() and pass in the layer in which you want the player to always spawn in

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

      im kinda new, creating a game, do you have any scripts i can use for that? And I also can't move I think. Just my zoom in button works.

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

      @@Stellarish you can also have multiple spawn points which are just empty objects which you want the Transform object of, and have a SpawnerManager which can randomly spawn a character from a list of all the pre defined spawn points

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

      Wow thanks a lot for this

    • @675zalan8
      @675zalan8 Год назад +2

      Can somebody please tell me where do I need to put OnRoomListUpdate() ?

  • @abidounesaad3780
    @abidounesaad3780 3 года назад +298

    Liam is Just Noa putting on a serious voice

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

      @@ianboyer2224 true

    • @imzary
      @imzary 3 года назад +7

      @@ianboyer2224 Idk to be honest, in my case i can't tell the different lmao

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

      @@imzary Liam kind of cuts off his words slightly, while Noa holds out "s" sounds and words in general.

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

      @@moonwatchereclipse5291 i guess so

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

      @@ianboyer2224 for me it sounds like the same voice, but with different intonations, I guess...

  • @Computinater1010
    @Computinater1010 Год назад +51

    If any of you guys experience the problem in Step 5, where your public variable (input field) wont accept your InputFields, I have the solution. When creating the InputField, instead of going to the UI dropbox and selecting "InputField", hover over "Legacy" and select the InputField from there. The legacy version of InputField works way better than the newer TextMeshPro. NOTE TO BLACKTHORNPROD: Your art style is amazing, and your tutorials are simple and easy to follow. Please keep it up, you are fun to watch!

  • @SirGary
    @SirGary 3 года назад +196

    Dude, I have been the past months struggling with this... It would have been so helpful.

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

      dude, i have some trouble
      can u help me?:(
      Assets\Photon\PhotonChat\Demos\DemoChat\IgnoreUiRaycastWhenInactive.cs(13,63): error CS0535: 'IgnoreUiRaycastWhenInactive' does not implement interface member 'ICanvasRaycastFilter.IsRaycastLocationValid(Vector2, Camera)'
      what should i do:(((

    • @GamerBoy-ne9bw
      @GamerBoy-ne9bw 3 года назад

      OMG same

    • @Henry-ip8dd
      @Henry-ip8dd 3 года назад

      did you guys get working?

  • @AlphaLul
    @AlphaLul 3 года назад +1002

    Just some constructive criticism, you gotta chill with the wobble effect

    • @diamenciarz1711
      @diamenciarz1711 3 года назад +51

      [Wobblyngus wobbluzationing wobblelelerination...]
      [Wobblomoblo wobbleng] I can't hear you... [wobbleterition wobblydobly wobblelection] over the... [wobbleming wobbloisturizing wobblergian wobblation] what was it?

    • @tyleranders9972
      @tyleranders9972 3 года назад +48

      Yeah I almost couldn't watch it

    • @pigeonade
      @pigeonade 3 года назад +39

      I couldn't watch it as I started to feel sick.

    • @filmcase1683
      @filmcase1683 3 года назад +7

      Dont curb my wobble >:(
      /j

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

      @@diamenciarz1711 wobbletopia

  • @krishnansubramoni7801
    @krishnansubramoni7801 3 года назад +153

    After going through massive tutorials that go incredibly in-depth, I am very grateful for this short and clear tutorial on basic multiplayer implementation 🧡

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

      im putting this infomation here since its in the top comments
      put using TMpro; at the top of your script
      and replace the inout variables with
      public TMP_InputField createInput;
      public TMP_InputField joinInput;

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

      @@foxfirefive oh i just used the legacy inputfield

  • @GoedBezig2004
    @GoedBezig2004 3 года назад +29

    Bro i have been stuck on this for like a whole year. I dipped unity, but now I feel motivated more then ever. Thank you!

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

      It worked!

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

      dude, i have some trouble
      can u help me?:(
      Assets\Photon\PhotonChat\Demos\DemoChat\IgnoreUiRaycastWhenInactive.cs(13,63): error CS0535: 'IgnoreUiRaycastWhenInactive' does not implement interface member 'ICanvasRaycastFilter.IsRaycastLocationValid(Vector2, Camera)'
      what should i do:(((

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

      @@alfandiridho1635 i dont know, maybe google knows?

  • @potaterjim
    @potaterjim 3 года назад +40

    Thank you so much for this! This is possibly the best starting photon tutorial out there, because it gets you started without flooding you with massive amounts of information. Anyone's project is going to need more information on how to do specific things, but this lets you feel like you've made actual progress, and you feel confident enough to get started, and look up those complex things later

  • @rimoldi98
    @rimoldi98 3 года назад +26

    I've been using Mirror at work and man, Photon is so much intuitive...

  • @amanchander5430
    @amanchander5430 3 года назад +11

    I was tired of looking many long and boring tutorials and I couldn't continue but your tutorials was really awesome. In a short single video you taught us how to make full multiplayer game.

  • @HarmlessPotato.0
    @HarmlessPotato.0 3 года назад +10

    For anyone unable to run the program after doing step 5. run the loading scene first T^T i have successfully wasted 10 hrs of my life running the lobby scene.
    gr8 tutorial though !

    • @WetrixTech
      @WetrixTech 5 месяцев назад +3

      Your 2 years old comment just saved me. Thanks! 🙏

  • @pwnermies1
    @pwnermies1 3 года назад +8

    I really liked the fact that he explained what everything does and didn't just make you copy and paste like most tutorials do. Great job!

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

      if he put the script in the discription and explianed it would of been better

  • @Djengis2107
    @Djengis2107 3 года назад +94

    I wanted to make a 2d multiplayer game and this is exactly what I needed. This is amazing!!

    • @حمادة-ه2ن
      @حمادة-ه2ن 2 года назад +2

      Did you finish 😊

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

      @@حمادة-ه2ن i dont think he did it takes long time to do

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

      @@حمادة-ه2ن ما اتوقع

    • @حمادة-ه2ن
      @حمادة-ه2ن 2 года назад

      @@jamesfan7768 بتابع اونيكس؟ ه

  • @mikifufu
    @mikifufu 3 года назад +34

    I have motion sickness, but nice tutorial! I would totally avoid wave effect...

    • @Blackthornprod
      @Blackthornprod  3 года назад +18

      Thanks man. Yes no more waves from now on

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

      Oh that's what it was. Halfway through the tutorial I got dizzy and thought I needed more coffee.

  • @UmarFarooq-jn7dt
    @UmarFarooq-jn7dt 3 года назад +7

    THIS IS GOLD! I've been through hell to learn about multiplayer game development. THANKS !!

  • @shrippie-4214
    @shrippie-4214 3 года назад +8

    the most straight forward tutorial i ever seen

  • @danielkotsotys5123
    @danielkotsotys5123 3 года назад +185

    This water wave effect on whole video is obnoxious, after looking at it everything on screen seams now to be wavey xD

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

    Absolutely amazing! 45 minutes and I learned more than in 180 minutes of watching other tutorials. Great job!

  • @trapshooter
    @trapshooter 3 года назад +30

    Awesome vid! I had no idea it was so simple to make a multiplayer game nowadays. If there was one thing missing was to explain how to setup separate scores for each player. But based on what you already explained I guess it would be the same principles as setting the animation parameters.
    Keep up the great content 🎉

  • @ArslanAhmad-c2w
    @ArslanAhmad-c2w Год назад

    I was thinking that making multilayer game is difficult but thanks for this video. I made multiplayer game after watching this 15 min video. Thank you so much.....

  • @tanjironezkokamado2
    @tanjironezkokamado2 3 года назад +3

    I not only learn from him but he is my inspiration, best teacher in youtube.1000 likes....

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

    I CANT SAY ANYTHING THIS IS THE BEST TUTORIAL I HAVE EVER SEEN

  • @jared4080
    @jared4080 3 года назад +5

    I literally just started making a multiplayer game a few days ago
    very helpful video by the way

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

    Thank you so much I have been watching so many tuturials on making a multiplayer photon game and none of them worked except this one. Thank you so much.

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

    The way Photon now makes it so you can easily sync movement/rotation/animations is awesome. I remember when I first got into photon ~6 years ago and it was a huge pain to code it all by hand. Now i can just attach a component :)

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

      Same here! It was in 2016 when I quickly gave up on doing anything with multiplayer, but I've come back to it very tentatively only to find out it's just as easy as creating a single-player game itself. What a relief!

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

    I have been having so much trouble with other tutorials, but with this I made a multiplayer game in half an hour!

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

    nice, simple, to the point
    WOW that was really cool !

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

    brooo you have no idea how I needed this for like the past 4 years

  • @muntasirchowdhrymridul64
    @muntasirchowdhrymridul64 3 года назад +13

    A video on how to control in game story events would be really helpful.

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

    dani : takes 2 weeks to make a game multiplayer
    blackthornprod: explains it in 15 minutes

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

      True

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

      But have you tried doing this your self?

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

      @@cutecandygames1874 i tried but unity gives me an error

  • @igorigor3960
    @igorigor3960 3 года назад +74

    man that wave effect over whole screen made me sick :(

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

      wait really?

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

      @@geniusapple6471 yea, I kinda felt motion sickned too. Managed to make through the tutorial though.

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

    Your tutorials are SO GOOD. They are ULTRA clear and get straight to the point!

  • @liamcalice7580
    @liamcalice7580 3 года назад +14

    Hope you all enjoy the video guys !

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

      I think I am going to buy this course but I have one question before I do. I have no experience in 2d games so do I need prior experience in 2d art or is it easy to learn. Also is there a 2d art software that is free.

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

      @@JCCrom I recommend you watch a few other 2d tutorials on blackthornprod. A pretty good free drawing program I know is GIMP, but
      I personally use procreate on iPad(which is like 10 dollars)

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

    You and your brother make the best tutorial videos ever!!! Thanks so much for everything you guys do!! :)

  • @pewpewpew6240
    @pewpewpew6240 3 года назад +3

    Thanks for the awesome tutorial! Currently one of the few good Unity multiplayer tutorial videos are from Welton King but the series is a little long and not as well explained, so this is going to be really helpful. :)

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

    This is the perfect introduction to multiplayer in Unity using Photon! Great video!!

  • @fishy4reelz
    @fishy4reelz 3 года назад +87

    Finally I can make an among us clone

    • @kr0tyara
      @kr0tyara 3 года назад +13

      When the impostor is photon! 😳😳😳

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

      I actually did this and it was a disaster😂
      But photon did make my life much easier!

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

      mogus

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

      dude, i have some trouble
      can u help me?:(
      Assets\Photon\PhotonChat\Demos\DemoChat\IgnoreUiRaycastWhenInactive.cs(13,63): error CS0535: 'IgnoreUiRaycastWhenInactive' does not implement interface member 'ICanvasRaycastFilter.IsRaycastLocationValid(Vector2, Camera)'
      what should i do:(((

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

      @@alfandiridho1635 learn C# and you will know what the error means

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

    The best tutorial on youtube for making a multiplayer game with unity and photon...

  • @kurtdevries9182
    @kurtdevries9182 3 года назад +5

    For a minute I thought the wobble effect was my mind playing tricks on me

  • @1000gx
    @1000gx 3 года назад +2

    This video just saved my college project, thank you so much!

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

    Note: Photon is heavily limited to 20CCU, which means only 20 players can play your game at once. It costs 100$ a month to increase it to 100CCU, which is a lot. I would use Mirror instead for commercial games. Or maybe a self wrote networking.

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

      it's actually 100,- for 12 months for 100 ccu.

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

      @@em9565 wait really?

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

      @@darkliongames1845 It says so on the store page..! actually currently it's discounted to 50,-

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

      @darkliongames1845 does this mean 20 people per room or 20 people playing throughout ALL rooms??

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

      @@sophiedaisy2024 hey. i havent been following photon for the past year but it was 20 people throughout all rooms.

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

    I generally do not write comments on video that I watch. However, this time I am making an exception because your video was truly amazing!

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

    12:24 I'd suggest to do it in a more consistent way. The moment you change your reference system for some reason, your numbers are no more valid. Imagine moving the stage or resetting its original coordinates. I'd rather set a stage reference and read its min and max values .
    I know, for the tutorial purpose it was perfectly fine, but it's a general best practice every new programmer should pay attention to in order to prevent headaches :)
    Good tutorial bros!

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

      Could you expand on this topic a little more? I'm new and want to learn a lot more. Would love to know a more efficent way of doing things.

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

    Oh yes I never thought that you ill made one good tutorial. I tried searching up but i can't find the how to make multiplayer game with unity. Thank you so much for creating this video. I think this video will earn more than 1 million view because it so good

  • @avivyoukerharel2140
    @avivyoukerharel2140 3 года назад +10

    Heres a video idea: physics based wave simulation!
    Stuff like the "Just shapes and beats" level - lycantropy, or the wave system in the hollow knight mod "corruped kin"
    If you search up videos of these it will become clear what im prefering to.

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

    This is the best and most simple and easy-to-understand multiplayer tutorial on RUclips! Thankss!! :))

  • @ryderstudios
    @ryderstudios 3 года назад +7

    Please no more wave effect in your videos, keep your cutting style from before! It was better

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

    "From a very boring game to still a very boring game" Hits different 🔥💗💖

  • @aliahmed-rk6rx
    @aliahmed-rk6rx 3 года назад +4

    if you want to make a fun not hard multiplayer beginer game make a multiplayer snake game as a first multiplayer game project

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

    Dude... I love u man, this is so easy to do and its so fun at the same time!

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

    I got this error when I try to create a room, does someone knows the fix? CreateRoom failed. Client is on GameServer (must be Master Server for matchmaking) and ready. Wait for callback: OnJoinedLobby or OnConnectedToMaster.
    UnityEngine.Debug:LogError (object)

    • @Sohneg
      @Sohneg 5 месяцев назад

      This can happen if you start your unity game in "game"-scence and not in the "loading"-scene. Photon needs to connect first

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

    This was the clearest and shortest photon tutorial ever. I’m truly in the mood to try multiplayer again!! Many thanks! ❤

  • @smallfilmstudios1481
    @smallfilmstudios1481 3 года назад +5

    I'm having trouble on 9:12 of the video, when I hit build and run, the loading scene doesn't show, it goes strait to the lobby, I try to hit create game, but an error comes up, I cant really copy and past it, but it all works fine in unity, just doesn't work when I hit build and run. Please someone help me. Here's the error
    create room failed. Client is on MasterServer (must be master server for matchmaking).....

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

      SAME

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

      I'm having the same issue

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

      Anyone got fix yet? Need badly

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

      @@itsadqm9847 mine fixed itself after a while. I had to build the game and run it to test it because it would work that way and then I rebooted my PC and it started working in the editor too. Try that

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

      The issue is that the default scene is Lobby when you load in, you need to switch to the Loading scene before you load so it can properly connect to Lobby

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

    Great work my lads and you are very clear with your explanations Liam, well proud of you guys!!

  • @yayoo1702
    @yayoo1702 3 года назад +7

    thanks a lot but please man no more water waves

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

    ive said it before and im going to say it again. this is the best multiplayer tutorial ever.

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

    step 5: drag input fields don't work for me... but
    solve:
    using TMPro;
    public TMP_InputField createInput;
    public TMP_InputField joinInput;
    ty a lot for the tuto.

    • @jafizz6505
      @jafizz6505 9 месяцев назад +1

      Ty

    • @candyandcarmel
      @candyandcarmel 9 месяцев назад

      This is because they used legacy input fields, if you want to use those you can

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

    Incredible. Best photon quickstart tutorial by far! :)

  • @Gambling4Life
    @Gambling4Life 3 года назад +3

    Hi black thorn, I was wondering if you would ever want to make a video on how to make games Like Bullet echo, personally would love to see a tutorial on how to do top down multiplayer games.

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

    You have to admit, he has an amazing art style.

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

    I would like to see how are you creating a Card Games

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

    Yo, BlackthronProd, GMTK, and Brackies fuels gamedev

  • @Speed-TV
    @Speed-TV 2 года назад +5

    That heat wave effect is annoying

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

    This is one of the best multiplayer tutorials, very basic and straightforward... thanks!

    • @AbdullahGameDev
      @AbdullahGameDev 6 месяцев назад

      السلام عليكم ي بشمهندس عمر

    • @HaiderSaqib-id4ry
      @HaiderSaqib-id4ry 6 месяцев назад +1

      @@AbdullahGameDev lol what

  • @kevindesilva4577
    @kevindesilva4577 3 года назад +3

    How about kill feed and playernames(user accounts)

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

      Is explained in the course!

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

    effortless. blew my mind how well this works and i used this for 3D. fantastic and to the point tutorial

  • @ShockbotStudios
    @ShockbotStudios 3 года назад +8

    The movement worked fine for me but my player also has a shooting function. Whenever a client joins the room they control the first persons weapon. Any way to fix this?

    • @12Acorns
      @12Acorns 3 года назад

      I’ve just started until and have got a very basic (but not good understanding so don’t take this as helpful advice or take this seriously), but you may want to set the gun as a child to the FPS player (if it’s a thing where you select the gun then I have no idea how you do that)

    • @levoca-9296
      @levoca-9296 3 года назад +1

      check if View.isMine then if it's true run the Shoot function

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

      I tried the if view is mine function but all I get is photon errors. I ended scrapping multiplayer in my project thanks for the suggestion

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

    This video deserves to much more likes

  • @mufelo
    @mufelo 3 года назад +3

    Multiplayer frameworks have come a long way, but it is worth factoring in both pricing and the overhead from testing into any plans. While technically you no longer need to manage sockets and sync can be done by Photon or competing framework, it's good to remember that it doesn't mean that making production quality games introduces a fair amount of overhead. Having to build to test the multiplayer aspects, not to mention running two separate versions is immensely painful and one should expect to at least double any estimations on how long the actual work will take.
    Also, please make good competitive games - need something properly competitive to play! Cheers! :D

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

    This video was super useful. Thank you so much guys. Liam is an amazing teacher.

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

    Man, that wiggly screen is throwin' me off.

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

      I like it

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

    Integrated this into my 3d shooter game, works like a charm. Thx Liam!

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

      how
      player follow camera script is not working

  • @imf_drex5420
    @imf_drex5420 3 года назад +3

    Great video as always but I have a question, if I'm using cinemachine for the camera to follow the player how would that work in photon servers? Thanks in advance

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

      Hey i have the same problem, did you ever fix it?

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

      @@hwahh8133Hi i know im late but i found the problem.The scripts are old so you gotta make new fresh player controller script.
      Here this is mines is you wanna use it:
      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      using Photon.Pun;
      [RequireComponent(typeof(CharacterController))]
      public class PlayerMoving : MonoBehaviourPun, IPunObservable
      {
      public float moveSpeed = 5.0f;
      public float mouseSensitivity = 2.0f;
      public float jumpForce = 5.0f;
      public float gravityForce = 20.0f;
      public GameObject playerCamera;
      private CharacterController characterController;
      private float verticalRotation = 0;
      private float verticalVelocity = 0;
      private bool isGrounded = true;
      private void Start()
      {
      characterController = GetComponent();
      if (!photonView.IsMine)
      {
      playerCamera.SetActive(false); // Disable camera for remote players
      }
      else
      {
      Cursor.lockState = CursorLockMode.Locked;
      Cursor.visible = false;
      }
      }
      private void Update()
      {
      if (!photonView.IsMine)
      return;
      // Rotation
      float horizontalRotation = Input.GetAxis("Mouse X") * mouseSensitivity;
      transform.Rotate(0, horizontalRotation, 0);
      verticalRotation -= Input.GetAxis("Mouse Y") * mouseSensitivity;
      verticalRotation = Mathf.Clamp(verticalRotation, -90f, 90f); // Limit vertical rotation
      playerCamera.transform.localRotation = Quaternion.Euler(verticalRotation, 0, 0);
      // Movement
      float forwardSpeed = Input.GetAxis("Vertical") * moveSpeed;
      float sideSpeed = Input.GetAxis("Horizontal") * moveSpeed;
      verticalVelocity -= gravityForce * Time.deltaTime;
      if (characterController.isGrounded)
      {
      verticalVelocity = -gravityForce * Time.deltaTime;
      if (Input.GetButtonDown("Jump"))
      {
      verticalVelocity = jumpForce;
      }
      }
      Vector3 moveDirection = new Vector3(sideSpeed, verticalVelocity, forwardSpeed);
      moveDirection = transform.TransformDirection(moveDirection);
      characterController.Move(moveDirection * Time.deltaTime);
      }
      public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
      {
      if (stream.IsWriting)
      {
      // Send player data to other players
      stream.SendNext(transform.position);
      stream.SendNext(transform.rotation);
      }
      else
      {
      // Receive player data from the network and update remote player's position and rotation
      transform.position = (Vector3)stream.ReceiveNext();
      transform.rotation = (Quaternion)stream.ReceiveNext();
      }
      }
      }

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

    you changed my view on the "making a Multiplayer"
    now i want to try it but i have to go to school tomorrow (today)

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

    For anyone wondering why they can’t drag the inputs into the game object
    Add “using TMPro;” to the top of the script
    Thank change all the “InputField”s to
    “TMP_InputField”

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

    unlike a lot of people here, the wavy effect for me is a very nice touch to the video

  • @norvinshaqlintag9214
    @norvinshaqlintag9214 3 года назад +3

    How to deal with the delay on synch player movements?

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

      money, the paid version gives configurable delay depending on the server

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

    you saved my life I've been trying for a year

  • @ItsJustSawyer
    @ItsJustSawyer 3 года назад +3

    Is there a way to use a photon and connect to a lobby without having to specify a room code? Is there a way that there will be one server the players can always connect to?

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

      maybe have an auto set room code as a work around?

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

      Yeah just hard code a default one

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

    Great video but dude that sponsor is TOP NOTCH I've been using it for 5 minutes and I absolutely love it.

  • @ShiloBuff
    @ShiloBuff 3 года назад +3

    I'm confused. I think you have a really good setup on this tutorial, except the water/ripple effect entirely kills it for me. Absolutely unsure at why you would think it's a good idea. Remove that in your future videos please. Also maximize the screen capture and remove the corner radius. All those effects are unnecessary and just worsen the learning experience.

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

    Thanks a lot, I missed your tutorials! 💙

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

    Excellent, the new brakeys is born!

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

    Instant subscription. You are amazing.

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

    this tutorial was phenomonal. i will add a few extras to anyone making an FPS:
    - make sure you adapt to a vector 3 instead of 2 like in this tutorial.
    -on start in your player script if the view is yours ENABLE the camera. if !view.ismine then disable it. this will stop the weird camera switching bug. its that simple
    - remember to add using photon.pun, define view variable, get component in start and if view is mine is all necessary scripts

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

    I LOVE YOU THIS IS THAT WORDS!!!

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

    Bestest Video I Have Ever Seen on RUclips👍👍💖😘

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

    I kid you not, when I saw the title of this vid, I paused, opened my mouth and gasped “AAAAAAAAAAA”

  • @FARX_Games
    @FARX_Games Месяц назад

    Thank yoou very much, direct to the point! easy to follow and implement many times

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

    Milanote is exactly wat I was looking for

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

    A brilliantly clear description - thankyou

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

    I was just thinking about making a multiplayer game
    Great job Liam the video was great!!

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

    You made it so clear and so easy, ILOVEU!!!!

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

    I freaking love you, thanks for this tutorial. You made it SO simple!

  • @lgSuzuki-m2d
    @lgSuzuki-m2d Год назад +1

    Explain to us if the play moves with the joystick and something thank you for your efforts

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

    I feel your happiness and satisfaction!

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

    Wow thank you so much man this video save me a lot of time !!

  • @cricketeer606
    @cricketeer606 6 месяцев назад

    THANK YOU SO MUCH YOU ARE ACTUALLY AMAZING

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

    "We went from this boring game into a still boring game but at least a multiplayer" thx for that amazing video

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

    Very Good, working. Thank you!