This was quite literally the best explanation of multiplayer in ue I've seen on the internet, easy to follow, easy to understand, reason and information behind every concept, I will definitely recommend this to others.
Thank you! Very clear and cannot wait for the next video, Make it a "Part" Series, Your explanations are very straight forward and understanding. The best videos ive seen on this yet. - Question When I load my character into a single player level, and then load a new level into a multiplayer session, What default classes should be changed in the updated Gamemode defaults?
I recommend setting your Game Mode, Game State, PlayerState, Player controller. And set the default pawn to none, and spawn the character with code via a GameMode function, which you call from the beginplay of your PlayerController. Glad you enjoy it! Nice to hear your nice feedback. More coming this weekend.
Omg this video and discussion on next vid is what i neeeeeed! The only thing left i really really really need in my design is "account mgmt". What is the best method of accpunt creation for server/client? Website? I dont want to use EOS or Steams etc
I love the Content very insightful I was wondering when you're going to work on the player state and player controller I can't wait for more of your videos
Awesome!! Can't wait for it I've been stuck with some issues with a turn based game in VR and i think your next video will help me greatly thank you soo much
Hello @Kekdot This is a great explanation for the handling of players. I am trying to use seamless travel from the game mode, but I am finding that with this setup it doesn't quite work. I followed the instructions in the documentation, but I noticed that the player list gets messed up when I try to keep track of data associated to the player controllers across level. Should I be using the "Handle Starting New Player" event in the game mode to populate the PC array? Do player controllers change during seamless travel? Thank you! :)
I'm keeping a copy of player controllers both as a base reference and as the casted controller, that way I can cast the originals to the new controller when going from a lobby to the game. Hope it works out like I hope.
If you want to get the originals at any time, you can also simply use the Players variable from the default available variables from the Game State. That might be easier for you in this case 😄 Try typing Get ‘Player Array’ from the Game State.
what if you have lobby game mode with a player controller , and an in game gamemode with its player controller , how does that node "on swap player controller " work in that case ? , Thanks for the tutorial
hey mate can you make a tutorial on how to add names on top of players when they join automatically and make it work with your chat product? I am having to manually make names for my players. I want them to be able to use their epic id atleast. thanks!
Hello I have a big problem with what you done, my gamemode get his variable reset each time on postlogin get called so AllPC's is always of length 1 and if I have a counter, it's always 0. Anyone has a solution
Hi there, Yes that is also possible! This is a technique for inside of the game mode. It’s not mandatory, it simply an example of how one can handle having an overview of players in the Game Mode directly.
12:23 After changing the level, GameMode will be created again with empty array of player controllers, and event OnSwapPC would be called on this new GameMode, you dont need to remove old PC then
Hi, In case I want to pass variables from the last client map from which the player is connecting to a dedicated server, which functionality should I use? I have a menu from which a player connect to the dedicated server. It's a lobby map in the server and based on the menu selection of the user, I want the loby to take him to matchmaking.
It has been impossible for me to get "Simple Move to location" and "AI Move To" to work in a multiplayer game. Any possibility of you doing a tutorial along this line ?
thank you Kekdot! The only thing Im not able to achieve right now is that every player gets assigned his personal playerController once a session is created on a dedicated server hosted on GameLift, do you have any idea why? Thank you
I understand but i have a Question. Maybe somebody can help. What if i want to disable the input of a Player that is a Client Controller? I cant get it. It works if i want to disable the input of the Player who is the Server...but not Client.
@@Kekdot Just some more questions : ), because I really want to make an online game and probably gonna buy this asset/plug-in Can I make my own game and add this online functionality inside it? does this support multiple levels simply (is it dedicated or listen)? Hope you answer all the questions
if any one having issues with this someone may want to run a server event on an actor as a client (that doesnt work) basically u can only do that if u own that actor (so what i do is set the owner to that character and then run the event) this is not a good idea for obline pvp games but if anyone have a better way pls share with us
Hi there, This is actually not the case. Simply ensure that you don't call a direct RunOnServer node from the Client side of the character or playercontroller etc. So in short: First you Call an event on for example your character that is a simple offline event, that event then calls the Character's Server version of that event. Now that we're on the server, that server version event can simply call a server event existing on whatever actor without having OwnerShip of it since the Server owns everything. What you are doing is having the local client call server events on actors it doesnt own. That indeed fails. So go from local, to server, to server on actor.
Hey guys,
👨🏫 My Patreon link:
www.patreon.com/kekdot
Download Project Files | Premium Tutorials | Courses
💦 Get our Game on Steam | Kekdot Center:
store.steampowered.com/app/1487180/Kekdot_Center/
This was quite literally the best explanation of multiplayer in ue I've seen on the internet, easy to follow, easy to understand, reason and information behind every concept, I will definitely recommend this to others.
this series has taken me from barely getting by to a firm grasp of what i need to do in my project. THANK YOU SO MUCH Kekdot!
I really like the detailed explanations. It helps a lot.
Glad to hear! I’ll keep them coming
You're tutorials on multiplayer are so helpful. Thank you!!!
That was super clear explanation, I hope you can make more video about this series, thanks you
Will do
I need this explanataion. When I opened MBLS, it totallay looked like rocket science. Thank you Kekdot😄
hahaha, enjoy!
Continue with the great work guys.
Kind regards Chris
Really great series with all the framework justification
Thanks for this, please do continue the series! waiting for next video
So good, hope you can make a complete mini multiplayer game tut one day
Thank you! Very clear and cannot wait for the next video, Make it a "Part" Series, Your explanations are very straight forward and understanding. The best videos ive seen on this yet.
- Question
When I load my character into a single player level, and then load a new level into a multiplayer session, What default classes should be changed in the updated Gamemode defaults?
I recommend setting your Game Mode,
Game State, PlayerState, Player controller. And set the default pawn to none, and spawn the character with code via a GameMode function, which you call from the beginplay of your PlayerController.
Glad you enjoy it! Nice to hear your nice feedback. More coming this weekend.
@@Kekdot A clearly explained and understood comment. Thank you much.
What a fantastic tutorial ! Impressive.
Nice tutorial, well done.
Great video, looking forward to the next ones!
Omg this video and discussion on next vid is what i neeeeeed! The only thing left i really really really need in my design is "account mgmt". What is the best method of accpunt creation for server/client? Website? I dont want to use EOS or Steams etc
I love the Content very insightful
I was wondering when you're going to work on the player state and player controller
I can't wait for more of your videos
Coming soon! (This week I hope)
Awesome!!
Can't wait for it I've been stuck with some issues with a turn based game in VR and i think your next video will help me greatly thank you soo much
@@Kekdot Did that video ever get done? I don't think i saw it anywhere on your channel videos...
Hello @Kekdot
This is a great explanation for the handling of players. I am trying to use seamless travel from the game mode, but I am finding that with this setup it doesn't quite work. I followed the instructions in the documentation, but I noticed that the player list gets messed up when I try to keep track of data associated to the player controllers across level. Should I be using the "Handle Starting New Player" event in the game mode to populate the PC array? Do player controllers change during seamless travel?
Thank you! :)
Just wanted to ask, why you didn't connect the Player Array For Each Loop to any event?
Thank you!
I'm keeping a copy of player controllers both as a base reference and as the casted controller, that way I can cast the originals to the new controller when going from a lobby to the game. Hope it works out like I hope.
If you want to get the originals at any time, you can also simply use the Players variable from the default available variables from the Game State. That might be easier for you in this case 😄
Try typing Get ‘Player Array’ from the Game State.
@@Kekdot Does this work from any game state?
Yep
what if you have lobby game mode with a player controller , and an in game gamemode with its player controller , how does that node "on swap player controller " work in that case ? , Thanks for the tutorial
If there are 8 local players, on the same big touch screen, 8 players interact at the same time, how to configure? thanks a lot!
hey mate can you make a tutorial on how to add names on top of players when they join automatically and make it work with your chat product? I am having to manually make names for my players. I want them to be able to use their epic id atleast. thanks!
To use the epic ID name, simply hook up the Player State’s Player Name variable.
Hello I have a big problem with what you done, my gamemode get his variable reset each time on postlogin get called so AllPC's is always of length 1 and if I have a counter, it's always 0.
Anyone has a solution
I wonder: May it also be possible to just cast to game state and get the PlayerArray from there? What would be the difference?
Hi there,
Yes that is also possible! This is a technique for inside of the game mode. It’s not mandatory, it simply an example of how one can handle having an overview of players in the Game Mode directly.
@@Kekdot ah okay thank you :) I have a way better understanding of the multiplayer framework because of your work :) helps a lot
Is there a reason you're not removing the old PC before adding the new PC ?
12:23
After changing the level, GameMode will be created again with empty array of player controllers, and event OnSwapPC would be called on this new GameMode, you dont need to remove old PC then
Hi, In case I want to pass variables from the last client map from which the player is connecting to a dedicated server, which functionality should I use? I have a menu from which a player connect to the dedicated server. It's a lobby map in the server and based on the menu selection of the user, I want the loby to take him to matchmaking.
It has been impossible for me to get "Simple Move to location" and "AI Move To" to work in a multiplayer game. Any possibility of you doing a tutorial along this line ?
You sure you using a nav mesh in your world. Really all you need is a navmesh and then plugin your ai controller.
Hello Kekdot, quick question: does this setup works for dedicated server too?
Yep in essence all the same stuff. This is all just server side logic.
thank you Kekdot! The only thing Im not able to achieve right now is that every player gets assigned his personal playerController once a session is created on a dedicated server hosted on GameLift, do you have any idea why? Thank you
I understand but i have a Question. Maybe somebody can help. What if i want to disable the input of a Player that is a Client Controller? I cant get it. It works if i want to disable the input of the Player who is the Server...but not Client.
I Tried that with a RPC but it dont work
I can only make it if the Player push a Button to Do that as an Event. But if i want Do that in the Game Mode it wont work with an event
Hey man just a quick questions, this multiplayer asset is it cross platform or just for a pc ?
and is it online or just local (lan)
It’s fully replicated so you can make it cross platform with any platform of your choice. Simply implement your bewished subsystems.
@@Kekdot Just some more questions : ), because I really want to make an online game and probably gonna buy this asset/plug-in
Can I make my own game and add this online functionality inside it?
does this support multiple levels simply (is it dedicated or listen)?
Hope you answer all the questions
I still dont find any use for the player state. I believe everything can be done without it.
👍
if any one having issues with this
someone may want to run a server event on an actor as a client (that doesnt work)
basically u can only do that if u own that actor (so what i do is set the owner to that character and then run the event) this is not a good idea for obline pvp games but if anyone have a better way pls share with us
Hi there,
This is actually not the case.
Simply ensure that you don't call a direct RunOnServer node from the Client side of the character or playercontroller etc.
So in short:
First you Call an event on for example your character that is a simple offline event, that event then calls the Character's Server version of that event. Now that we're on the server, that server version event can simply call a server event existing on whatever actor without having OwnerShip of it since the Server owns everything.
What you are doing is having the local client call server events on actors it doesnt own. That indeed fails.
So go from local, to server, to server on actor.
fünction xD