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.
@@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
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!
After going through massive tutorials that go incredibly in-depth, I am very grateful for this short and clear tutorial on basic multiplayer implementation 🧡
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;
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:(((
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
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.
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:(((
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 !
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 :)
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!
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 🎉
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.
@@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)
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.....
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.
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:(((
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.
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. :)
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.
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)
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.
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!
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.
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?
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)
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
@@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(); } } }
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).....
@@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
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
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
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”
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
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?
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.
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
Liam is Just Noa putting on a serious voice
@@ianboyer2224 true
@@ianboyer2224 Idk to be honest, in my case i can't tell the different lmao
@@imzary Liam kind of cuts off his words slightly, while Noa holds out "s" sounds and words in general.
@@moonwatchereclipse5291 i guess so
@@ianboyer2224 for me it sounds like the same voice, but with different intonations, I guess...
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.
You can use Physics.Raycast() and pass in the layer in which you want the player to always spawn in
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.
@@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
Wow thanks a lot for this
Can somebody please tell me where do I need to put OnRoomListUpdate() ?
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!
Thank you so much!
Thnks man
Oh thank you so much!
i love you bro
Happened to me but with a dropdown 😭
Just some constructive criticism, you gotta chill with the wobble effect
[Wobblyngus wobbluzationing wobblelelerination...]
[Wobblomoblo wobbleng] I can't hear you... [wobbleterition wobblydobly wobblelection] over the... [wobbleming wobbloisturizing wobblergian wobblation] what was it?
Yeah I almost couldn't watch it
I couldn't watch it as I started to feel sick.
Dont curb my wobble >:(
/j
@@diamenciarz1711 wobbletopia
After going through massive tutorials that go incredibly in-depth, I am very grateful for this short and clear tutorial on basic multiplayer implementation 🧡
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;
@@foxfirefive oh i just used the legacy inputfield
Dude, I have been the past months struggling with this... It would have been so helpful.
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:(((
OMG same
did you guys get working?
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
😳
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.
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!
It worked!
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:(((
@@alfandiridho1635 i dont know, maybe google knows?
I've been using Mirror at work and man, Photon is so much intuitive...
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 !
Your 2 years old comment just saved me. Thanks! 🙏
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!
if he put the script in the discription and explianed it would of been better
the most straight forward tutorial i ever seen
THIS IS GOLD! I've been through hell to learn about multiplayer game development. THANKS !!
This water wave effect on whole video is obnoxious, after looking at it everything on screen seams now to be wavey xD
lol true
i can't see properly anymore ._.
I was gonna say, the wave effect was very disturbing haha
yes very
so anoying tbh
Absolutely amazing! 45 minutes and I learned more than in 180 minutes of watching other tutorials. Great job!
I have motion sickness, but nice tutorial! I would totally avoid wave effect...
Thanks man. Yes no more waves from now on
Oh that's what it was. Halfway through the tutorial I got dizzy and thought I needed more coffee.
I CANT SAY ANYTHING THIS IS THE BEST TUTORIAL I HAVE EVER SEEN
man that wave effect over whole screen made me sick :(
wait really?
@@geniusapple6471 yea, I kinda felt motion sickned too. Managed to make through the tutorial though.
I wanted to make a 2d multiplayer game and this is exactly what I needed. This is amazing!!
Did you finish 😊
@@حمادة-ه2ن i dont think he did it takes long time to do
@@حمادة-ه2ن ما اتوقع
@@jamesfan7768 بتابع اونيكس؟ ه
I not only learn from him but he is my inspiration, best teacher in youtube.1000 likes....
brooo you have no idea how I needed this for like the past 4 years
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 :)
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!
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 🎉
I literally just started making a multiplayer game a few days ago
very helpful video by the way
The best tutorial on youtube for making a multiplayer game with unity and photon...
Hey
Hope you all enjoy the video guys !
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.
@@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)
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.....
A video on how to control in game story events would be really helpful.
This video just saved my college project, thank you so much!
nice, simple, to the point
WOW that was really cool !
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.
Finally I can make an among us clone
When the impostor is photon! 😳😳😳
I actually did this and it was a disaster😂
But photon did make my life much easier!
mogus
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:(((
@@alfandiridho1635 learn C# and you will know what the error means
Your tutorials are SO GOOD. They are ULTRA clear and get straight to the point!
Please no more wave effect in your videos, keep your cutting style from before! It was better
I have been having so much trouble with other tutorials, but with this I made a multiplayer game in half an hour!
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.
lost kin
@@candyandcarmel my dude I commented this two years ago, lol.
@@avivyoukerharel2140 lol
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!
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. :)
ive said it before and im going to say it again. this is the best multiplayer tutorial ever.
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.
it's actually 100,- for 12 months for 100 ccu.
@@em9565 wait really?
@@darkliongames1845 It says so on the store page..! actually currently it's discounted to 50,-
@darkliongames1845 does this mean 20 people per room or 20 people playing throughout ALL rooms??
@@sophiedaisy2024 hey. i havent been following photon for the past year but it was 20 people throughout all rooms.
This was the clearest and shortest photon tutorial ever. I’m truly in the mood to try multiplayer again!! Many thanks! ❤
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)
This can happen if you start your unity game in "game"-scence and not in the "loading"-scene. Photon needs to connect first
You and your brother make the best tutorial videos ever!!! Thanks so much for everything you guys do!! :)
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.
You have to admit, he has an amazing art style.
For a minute I thought the wobble effect was my mind playing tricks on me
This is the perfect introduction to multiplayer in Unity using Photon! Great video!!
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!
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.
This is the best and most simple and easy-to-understand multiplayer tutorial on UA-cam! Thankss!! :))
if you want to make a fun not hard multiplayer beginer game make a multiplayer snake game as a first multiplayer game project
"From a very boring game to still a very boring game" Hits different 🔥💗💖
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.
Ty
This is because they used legacy input fields, if you want to use those you can
This is one of the best multiplayer tutorials, very basic and straightforward... thanks!
السلام عليكم ي بشمهندس عمر
@@AbdullahGameDev lol what
thanks a lot but please man no more water waves
Incredible. Best photon quickstart tutorial by far! :)
I would like to see how are you creating a Card Games
unlike a lot of people here, the wavy effect for me is a very nice touch to the video
That heat wave effect is annoying
dani : takes 2 weeks to make a game multiplayer
blackthornprod: explains it in 15 minutes
True
But have you tried doing this your self?
@@cutecandygames1874 i tried but unity gives me an error
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?
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)
check if View.isMine then if it's true run the Shoot function
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
Dude... I love u man, this is so easy to do and its so fun at the same time!
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
Hey i have the same problem, did you ever fix it?
@@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();
}
}
}
This video deserves to much more likes
How about kill feed and playernames(user accounts)
Is explained in the course!
effortless. blew my mind how well this works and i used this for 3D. fantastic and to the point tutorial
How to deal with the delay on synch player movements?
money, the paid version gives configurable delay depending on the server
you saved my life I've been trying for a year
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).....
SAME
I'm having the same issue
Anyone got fix yet? Need badly
@@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
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
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
Man, that wiggly screen is throwin' me off.
I like it
This video was super useful. Thank you so much guys. Liam is an amazing teacher.
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”
Thanks
you changed my view on the "making a Multiplayer"
now i want to try it but i have to go to school tomorrow (today)
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
Great video but dude that sponsor is TOP NOTCH I've been using it for 5 minutes and I absolutely love it.
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?
maybe have an auto set room code as a work around?
Yeah just hard code a default one
Milanote is exactly wat I was looking for
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.
Yo, BlackthronProd, GMTK, and Brackies fuels gamedev
Instant subscription. You are amazing.
A brilliantly clear description - thankyou
Bestest Video I Have Ever Seen on UA-cam👍👍💖😘
Great work my lads and you are very clear with your explanations Liam, well proud of you guys!!
Excellent, the new brakeys is born!
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
Thanks a lot, I missed your tutorials! 💙
I LOVE YOU THIS IS THAT WORDS!!!
Fast, straight to the point amazing 👏
Excited for olobollo!!
Hey dude, amazing video, but can you turn off the wobble effect next time? It gave me a lot of motion sickness. :/
You made it so clear and so easy, ILOVEU!!!!
Great video. Note: The wavy filter over the screen captures does make me slightly motion sick.
I feel your happiness and satisfaction!
Cutting into steps makes it a lot easier to learn. Cool!
Integrated this into my 3d shooter game, works like a charm. Thx Liam!
how
player follow camera script is not working
Explain to us if the play moves with the joystick and something thank you for your efforts
Very Good, working. Thank you!
Very clear and straightforward to follow! Love it!
Best multiplayer tutorial ever