I haven’t read through this post yet, but if the title is any indication of the contents, I am SUPER excited to see this project develop!
Quick (and probably really stupid) question, though: does any of this involve the making of a co-op game?
I haven’t read through this post yet, but if the title is any indication of the contents, I am SUPER excited to see this project develop!
Quick (and probably really stupid) question, though: does any of this involve the making of a co-op game?
Doesn’t matter, it’s the same mechanism if you want to do co-op. If you understand how replication works, other parts will fall into game design realm.
Gotcha, thanks!
This is the state of my game, coming along nicely. Blueprint is FAST for iteration, holy cow.
https://drive.google.com/folderview?id=0Bwoy4ZeER8JjMGp3VS1VMFZ2czQ&usp=sharing
Run Client.bat to connect to my listen server I’ll keep up. This link will always contain the latest build of my game so you can bookmark it if you’d like to keep tabs.
Don’t know if still following this thread.
I just finished exploring PlayerState, used to count kill/death etc per game.(I think it could possibly carry over to next level if I remember it right.)
Pretty basic rules to follow:
Other things learned:
I am still following this thread! I’ve just been an absentee father to it
I’m so happy to see so much discovery and success! I’ve had limited time to actually work on anything other than my Quad copter game. I’ve taken what i’ve learned here and incorporated it with SUCCESS!
I’m also working on events and state and replication, so I’m curious to see what you find. All the fancy HID stuff I’d figured out for single player is totally broken. I’m also extremely distractable and decided to work on some level design and learning Landscapes and the texturing of those using slope to determine the texture.
Hopefully I’ll have some time today to make some headway and try out some of these demos posted!
Thank everyone. Great posts!!
I used the info to add basic Multiplayer to the rolling ball template. The hardest thing was trying to get the physics to be handled by the server. I had some great laughs as I tried to figure out what to call that would show the marble rolling properly.
VERY good job. I will be implementing this myself
Thanks, that saved me today It’s logical, but I just couldn’t figure it out myself :rolleyes:
I was looking over this thread and while yes it will work logically, there may be an issue with sending so many RPCs which are designed for transient actions as opposed to state. So sending an RPC for movement would be deadly in terms of a larger scaled game. Typically you don’t want to be running RPCs for movement. Unless I am wrong about this. RPCs were designed for non-reliable actions (mostly), and because movement is so important, it could cause many issues in the grand scheme of things.
I absolutely agree. I’ve been worried about that as well. What’s the better option tho?
Edit: The reason i’m using an RPC, rather than the in-built movement replication or replicating the location, etc. Is to reduce input lag and smoothness. I have ti set up right now so that it’s only replicating movement using an RPC from the server to the individual client (Not multicasting to everybody)
Well movement is already replicated if you set it to replicate. The server will handle the movement and replicate it to all the other clients that are relevant.
Indeed, that’s how the pawns replicate their position to each of the clients. Where I ended up using the RPC was to send the transform back to the owning Client as the movement, etc. is being handled on the server and the replication code doesn’t handle that right (I was moving on all the OTHER clients screens!)
I’ve also improved this call so it’s not sending the entire transform, just the location as a vector and the rotation as a Quantized vector. This SHOULD reduce the overhead.
However, your point is a good one to keep in mind. The use of an RPC on a Tick Event should be limited and avoided as much as possible, and if you’re not doing the movement server-side don’t do it!
Hi ,
Your tutorial has been a great resource for me while starting to learn about blueprints. Everything seems to work, though the update rate is poor, but I've not been able to figure out how to start up a multiplayer game that connects to a different machine. I'm clearly missing something basic in the setup - following some threads using open or travel or serverTravel failed to work. Do you have a good pointer to some step by step instructions? Thanks.
Have you make sure the router side of thing is done properly? Or are you just testing in a single subnet(LAN) setting?
Hi - thanks for posting this - it would have taken me forever to get my respawn to work.
Question 1) my PlayerState - where do I tell the engine to use my blueprint with my expanded properties. Am I even approaching this right/can this be done in blue prints at the moment
Question 2) player name - I tried Haha71687s game - great work (p.s dont forget to update your client bat to 127.0.0.1 if testing local) - anyhoo - how do i set my player name? I assume this might be the answer to my first question
for Q1, when you edit your game mode BP, go to “defaults”, and expand the GameMode section, you can select which player states to use.
Q2, I assume there is a connect argument/console command that lets you change it.
yes this whole issue was i didnt see that little pull down to set my custom player state - i’ve made great progress since - thanks
Glad you got that worked out. Now, can you help me understand when/why to use a custom player state, rather than just putting it all in the PC?
@, I think(based on my poor memory while figuring out respawn) player state are there for when you need to carry something over to next level.
PC on the server side might not survive level change(ie player might disconnect and then reconnect when level loading is complete as in many FPS games).
So server side player state is useful if say the player hash matched, they just hook up that player to original slot.
But, this is just my poor guess with the code I’ve seen(that was based on 4.0.1). Hopefully a Epic guy can see this and explain it better than I do.