There's no visual problems or replication issues you are showing in the beginning of the video so it's hard for me and others to know what exactly you're wanting to solve or why we should keep watching.
Keep in mind, there is three kinds of multiplayer networking coding. 1 - Optimized and intended for a player to be a host - listen server. 2 - Optimized and intended to be for Dedicated server. 3- Intended for both, this causes extreme bugs in many platforms, but if it's simple and doesn't expand from UE API it should be fine.
The reason it works with RepNotify is because on connect to the server your client will run all the RepNotify's, so if you have thousands of things like treasure chests this will make you lag, the best way is actually to make your own RepNotify by using bool's and if a player gets near the item it looks at the bool and sets whatever you want to be how it should be. Back when RepNotify was created we all used Culling which made it so things only rendered at a certain distance to the player which made RepNotify a nice addition to the editor so you didnt have to manually setup everything but I think you see where I am going with this.
Looking to make a multiplayer game with terraforming. Figured out how to do the terraforming part, but saving it to the server and having it communicate it to the players for something like that is um... not sure how to do that bit. Will probably figure it out on my own eventually but wanting to toss this here since you said any problems we had. Thanks for the video by the way. This has helped me.
And how can it be handled with multiple variable on an unit? maybe rank, animations, transformation and so on? Should I save all this information in gamemode/gamestate variable and after reconnecting, replicate it to the client?
This is a good place to start if you want to know more about gamestate, gamemode ect and how they replicate: cedric-neukirchen.net/docs/category/multiplayer-network-compendium/
What would be the difference between this and doing same with RPCs? I mean HasAuhority, if yes, change the color, if not call server rpc? What would be the difference?
So.. it may do what you need it to do. But if someone joins mid game, they might not see the flag orange. It would be as if it had never been triggered to the recently joined player. RepNotify fixes that.
@@DevGames3085 In the video you do not use RPC, that is what I am trying to say. Then every time use RepNotify? That would not be lucrative method as well
There are a million ways to do things. I'm just providing one solution. But you're right about the rpc call. Either way, i tried my best to provide a fix, which was a problem for me when I encountered this when using rpc on doors in multiplayer. Thanks for the feedback!
For everything stateful (changed color, open /closed door) you use a repnotify since the player not in Relevancy (to far away / not joined yet) wont see the changes otherwise - a multicast is used when it doesnt matter for a Player joining later (vfx, attack Animation etc)
Don't you think you should add HasAuthority() and only change the bool variable on server? 7:08 The client should not have the ability to update a variable's value bec variable replicates from server to client and not other way around.
Sounds like best practice. No arguments here...This video just simply demonstrates how rep notifies saves states on late joining players. Something I wish I knew when I started...
Hi! this works very well with the overlap event. But if i want to change the Color via click or linetrace its not working... there is some difference between these events?
The beginoverlap on the actor runs on the server. If you want client side events like trace and click in this way you need to do an rpc call (call an event that has "Run on server") instead.
@@Saderz_ Typically, you would do BeginOverlap on the server, and set the result in a variable that has RepNotify, to copy the variable to clients. You can also send the variable to clients with a Multicast event. This depends on the use case. RepNotify makes your code more complex. I mistyped the above message, you can do line trace on clients if you want, but not BeginOverlap.
had to stop the video to write this lol. I heard the echo effect in your voice when you said "replicate" and thought it was maybe just coincidence... then I saw what you almost titled your project name 🤣 good laughs bro
Hmm~ i like this more than another video that saw, which showed only a mess of blueprints and not the sets and ticks at class default.. will see what works, thank you~!
I have a problem. Everything that I whant to replicate is working. but the only thing that isnt working is, when the client is doing it. then it is not replicating. I dont know why. Can somebudy help?
The correct method of replication is to not use blueprints at all, unless you want everyone warping around everywhere. To not have an incredible amount of de-sync even with something simple such as sprint, you need c++ (Try to test this with actual server latency using the built in network emulation settings) You literally can't use blueprints for multiplayer games at all, and you need a ton of boiler plate code to make a custom movement component in c++ just to even begin to do anything, like a basic sprint
I've encountered the traditional rubber band effect in sprints without C+++. However, not everyone is familiar with C++, and despite its messy nature, there are plugins available. Additionally, with the assistance of GAS, the situation improves... Nevertheless, you're right-knowing C++ is beneficial.
@@DevGames3085 GAS might be good for triggering animations and cooldowns, but anything movement related requires a custom c++ character movement component. My anger comes from epic not being up front about this, as I have spent too many years with BP thinking I could make a full multiplayer game with it, and that is not the case
@@prodev4012 5.4 Dev Branch Currently have has the framework for Mover 2.0 which is a replacement for Character Movement Component that will work on any class and is suppose to be expandable from BP so people might not need to pay for General Movement Component or expand the CMC with C++ anymore.
So what do you recommend the title to be? How to repnotify? Yea, no thank you... If I was a novice I wish I knew about this because I did my whole multiplayer wrong at start. But that's just my opinion.
Need some Dev Motivation? Download my free e-book: devgames3085.com/free-e-book/
There's no visual problems or replication issues you are showing in the beginning of the video so it's hard for me and others to know what exactly you're wanting to solve or why we should keep watching.
you're totally right. I normally do this, too, thanks for the feedback!
Keep in mind, there is three kinds of multiplayer networking coding. 1 - Optimized and intended for a player to be a host - listen server. 2 - Optimized and intended to be for Dedicated server. 3- Intended for both, this causes extreme bugs in many platforms, but if it's simple and doesn't expand from UE API it should be fine.
Ah yes, like you said, it all depends on ones game. Thanks for the clarification!
The reason it works with RepNotify is because on connect to the server your client will run all the RepNotify's, so if you have thousands of things like treasure chests this will make you lag, the best way is actually to make your own RepNotify by using bool's and if a player gets near the item it looks at the bool and sets whatever you want to be how it should be. Back when RepNotify was created we all used Culling which made it so things only rendered at a certain distance to the player which made RepNotify a nice addition to the editor so you didnt have to manually setup everything but I think you see where I am going with this.
@HiddenWorldsLLC little late, but yes you are right you can even set the distance...
Wonderful video illustrating an important point.
was a good guide, one problem I had with it was just that the Yay sound effect was a bit loud compared to yourself. 2:11 and 8:58
thanks for the feedback
yes same, I disliked the video for that
That sound effect had me laughing really hard haha
😅
Keep the great guides man this was super easy to follow. You explain things super easily which is a breath of fresh air compared to most UE tutorials
Appreciate you!
Hi, if i would want to switch FOV for both players by a press of a button? How to replicate that?
gyazo.com/dcd31ce6bcd37ad29ea2c41d42b49abc this worked for me on the pawn/character bp...
Looking to make a multiplayer game with terraforming. Figured out how to do the terraforming part, but saving it to the server and having it communicate it to the players for something like that is um... not sure how to do that bit. Will probably figure it out on my own eventually but wanting to toss this here since you said any problems we had. Thanks for the video by the way. This has helped me.
Glad I was able to help. I might begin a series on this. Keep a look out!
Thanks for the tutorial, very clear. Will you be showing more complex replication examples like custom player replication?
I've done a few. check out the rest of my videos.
And how can it be handled with multiple variable on an unit? maybe rank, animations, transformation and so on? Should I save all this information in gamemode/gamestate variable and after reconnecting, replicate it to the client?
If I remember correctly gamestate should stay replicated when it comes to varibles. This is more like a visual thing.
@@sketchyrealms85 ah, ok. So i should use game state instead of other complex replication logics 👌🏻💪🏻
This is a good place to start if you want to know more about gamestate, gamemode ect and how they replicate: cedric-neukirchen.net/docs/category/multiplayer-network-compendium/
What would be the difference between this and doing same with RPCs? I mean HasAuhority, if yes, change the color, if not call server rpc? What would be the difference?
So.. it may do what you need it to do. But if someone joins mid game, they might not see the flag orange. It would be as if it had never been triggered to the recently joined player. RepNotify fixes that.
@@DevGames3085 In the video you do not use RPC, that is what I am trying to say. Then every time use RepNotify? That would not be lucrative method as well
There are a million ways to do things. I'm just providing one solution. But you're right about the rpc call. Either way, i tried my best to provide a fix, which was a problem for me when I encountered this when using rpc on doors in multiplayer. Thanks for the feedback!
For everything stateful (changed color, open /closed door) you use a repnotify since the player not in Relevancy (to far away / not joined yet) wont see the changes otherwise - a multicast is used when it doesnt matter for a Player joining later (vfx, attack Animation etc)
@@Luca-yq5uxgreat explanation i shall pin this!
Don't you think you should add HasAuthority() and only change the bool variable on server? 7:08
The client should not have the ability to update a variable's value bec variable replicates from server to client and not other way around.
Sounds like best practice. No arguments here...This video just simply demonstrates how rep notifies saves states on late joining players. Something I wish I knew when I started...
Thanks man I know nothing about multiplayer games lol. Liked and subbed!
Glad you got informed
Good, simple, to the point video.
Thank you!
very helpful, good stuff vro
Appreciate you!
Hi! this works very well with the overlap event. But if i want to change the Color via click or linetrace its not working... there is some difference between these events?
The beginoverlap on the actor runs on the server. If you want client side events like trace and click in this way you need to do an rpc call (call an event that has "Run on server") instead.
@@PalThing Good tips!
@@PalThing is that instead of a RepNotify? Because then it won't be persisten, im having the same issue with a linetrace interaction
@@Saderz_ Typically, you would do BeginOverlap on the server, and set the result in a variable that has RepNotify, to copy the variable to clients. You can also send the variable to clients with a Multicast event. This depends on the use case. RepNotify makes your code more complex. I mistyped the above message, you can do line trace on clients if you want, but not BeginOverlap.
had to stop the video to write this lol. I heard the echo effect in your voice when you said "replicate" and thought it was maybe just coincidence... then I saw what you almost titled your project name 🤣 good laughs bro
Sorry I'm crazy sometimes.
@@DevGames3085 I love it lol it shows a good editor from a lazy one
Hmm~ i like this more than another video that saw, which showed only a mess of blueprints and not the sets and ticks at class default.. will see what works, thank you~!
Glad I could help!
Great Tutorial
Thank you!
plz make the soundfx louder... thx
Will do!
@@DevGames3085 thx bro! I will watch this
I have a problem. Everything that I whant to replicate is working. but the only thing that isnt working is, when the client is doing it. then it is not replicating. I dont know why. Can somebudy help?
I would probably need a screen shot for this. Join our discord!
The correct method of replication is to not use blueprints at all, unless you want everyone warping around everywhere. To not have an incredible amount of de-sync even with something simple such as sprint, you need c++ (Try to test this with actual server latency using the built in network emulation settings) You literally can't use blueprints for multiplayer games at all, and you need a ton of boiler plate code to make a custom movement component in c++ just to even begin to do anything, like a basic sprint
I've encountered the traditional rubber band effect in sprints without C+++. However, not everyone is familiar with C++, and despite its messy nature, there are plugins available. Additionally, with the assistance of GAS, the situation improves... Nevertheless, you're right-knowing C++ is beneficial.
@@DevGames3085 GAS might be good for triggering animations and cooldowns, but anything movement related requires a custom c++ character movement component. My anger comes from epic not being up front about this, as I have spent too many years with BP thinking I could make a full multiplayer game with it, and that is not the case
@prodev4012 I understand your perspective; I've had to redo projects due to this issue. Depending on your game, you will eventually have to learn c++
@@prodev4012 That's true but you could also use the General Movement Component plugin or Smooth Sync and make a full game with bp knowledge only.
@@prodev4012 5.4 Dev Branch Currently have has the framework for Mover 2.0 which is a replacement for Character Movement Component that will work on any class and is suppose to be expandable from BP so people might not need to pay for General Movement Component or expand the CMC with C++ anymore.
Complains about replication, uses blueprint. xD
Why do people act like blueprints are cursed. It's only getting better...
Yo we should connect sometime for a coolab video tutorial
Choose a topic, and let's go! Feel free to join my discord.
so now better using repnotify for replication then
No, just know when to use them...
How do you do multiplayer?
with my brain!!!
Dude break down your video from scratch for everyone to understand what’s going on and keep it bro other wise your kinda just making it for yourself
So you create a basic video about a repNotify to save and transfer states of variables to late joining players 😅 i think you have to change the title
So what do you recommend the title to be? How to repnotify? Yea, no thank you... If I was a novice I wish I knew about this because I did my whole multiplayer wrong at start. But that's just my opinion.
ON NUMARA VİDEO
Slick
disliked just for the ? on the booleans
LOL all good. Can't make everyone Happy 🤷♂
I’m lost 🫠🫠🫠🫠
Sorry 😅