Network Multiplayer Fundamentals - February 27 - Live from HQ

WHAT
Creating a networked multiplayer game isn’t easy, but Unreal Engine’s gameplay framework is designed to set you up for success. On this episode of Inside Unreal, Technical Writer Michael Prinke will cover fundamentals such as the server-client model, various features of replicated Actors, and best-practices for efficient networked games.

WHEN
Thursday, February 27 @ 2:00PM ET - Countdown

WHERE
Twitch
Youtube

WHO
Michael Prinke - Technical Writer - @Mike_Prinke](https://twitter.com/Mike_Prinke)
Victor Brodin - Community Manager - @victor1erp](http://twitter.com/victor1erp)

RESOURCES
Project Files (log in to the forums to access)
Exi’s Network Compendium

DOCS
Networking Landing Page
Overview Page
Quickstart

ARCHIVE
Network Multiplayer Fundamentals | Live from HQ | Inside Unreal - YouTube

I have a quick question, which template will be used for this one? The FPS, third person or will it be a empty project? Could you provide some project start info so the viewers can follow it during the stream? Im not asking for project files, only info so we can be prepared.

Would be nice some tips about deploy stand-alone server.

Hi

Will be great with some tips on physics multiplayer games and how to see what you use of internet bandwidth. What is the max of kb/ s - mb/s
Hope you will answer in the stream or here.

Thanks for your reply, looking forward to this one :slight_smile:

One thing that id like to see is a clearer distinction between server & client logic, Say firing a weapon,i know i should handle the firing itself and spawning of projectiles on the server side however i tend to get a bit confused on how to replicate this to a client, i.e client function, a multicast, etc

Will you cover Oculus VR multiplayer PLEASE?

like create a session, join a session and invite oculus online friends to game?

Will @MikhailPrinke cover any of the various network speed, rate, and bandwidth settings in the various config files? There is a lot of confusion about what these numbers mean and what are good values for them.

Tangentially, a brief discussion of server vs client net update rate, how they affect games, and how they’re represented and changed in UE4 would be appreciated.

What are @MikhailPrinke 's thoughts on replicating “large” amounts of data? We create procedural meshes and textures on the server in C++, but so far have only been able to replicate very small textures (~32x32 pixels) to clients before running into data size limits.

That’s going to be covered in this upcoming session, but you can refer to the Multiplayer Quick Start Guide for a working example of this logic. We’ve also re-written the Overview page with a run-down of available methods for replication, including what does and doesn’t replicate “out of the box.”

Out of the box, you are not meant to replicate meshes and textures the same way you do gameplay logic. Rather, best practices are to replicate the SMALLEST amount of data possible, and derive cosmetic information like animation state from that. IE: You don’t update the frames of the walking animation, but rather you update the character’s current velocity/acceleration and the client knows to play the walking or running animation based on that. Clients all independently run their own animations, particle effects, and so on.

I’d approach synching procedural art assets by replicating the seed information that generates the asset, not the meshes or textures themselves, and having each machine build the procedural asset from that independently. If all your players are on the same build, then they all have the same system for constructing the object. Without knowing more about the specifics of your project, I can’t make much further recommendation than that, but it sounds like you should replicate a struct that boils down the requisite info to basic primitives.

Configs will not be covered in detail during this session, as it will be focused on beginner-oriented information for building multiplayer gameplay. However, this makes a great topic for a doc update.

@MikhailPrinke Is this session going to be applicable to multiplayer on Android (without using any Google services and whatnot) ?

Will you cover topic (briefly) of running “headless” dedicated server and client connecting to it (e.g. running server on PC and client on Android phone connecting to it) ?

Already a super popular thread…

Be there or be square like the end of an ethernet cable

how do you make a world

I would like, even if it is just something very brief, the infrastructure where the online functions best fit inside of game instance, gamemode, player controller for main menu.
While on replication it is easier to find things, there is no official version of where everything goes and there are tutorials but they are contradictory, and the documentation does not talk about it, even in the shooter game.
https://docs.unrealengine.com/en-US/…ame/index.html

Great that you’re covering networking! However, I find that there’s already quite a lot of resources that cover the fundamentals. In the future, it would be nice to see more advanced topics covered, like those suggested by DanimalsOnParade.

An update for the good but occasionally obsolete Unreal published Blueprint Multiplayer video tutorial would be good start especially around launching from lobby to map in blueprint please.

Please cover alternatives to the Steam god.
Hamachi, etc. :slight_smile:
If Hamachi or other NAT punchers doesn’t work with latest versions of Unreal please tell us. :slight_smile:
( I sat for 3 days trying to get Hamachi to work with Unreal and despite everyone’s advice on forums I couldn’t get it to work ).

Also if you want to host from a public WiFi hotspot such as a coffee shop is it possible?
How can port forwarding be dealt with if hosting from a public WiFi hotspot?.
Problem is you cant have Admin rights to public restaurant’s router so port forwarding cant be done.
Is there a way around this?

Also even in a private residence if your WiFi is shared by other tenants the landlord might not want to give you Admin rights to log into router this is a problem I ran into with one of my friends I couldn’t find a way around this issue.

Also Unity for a while had its own servers / NAT puncher system and then they discontinued that. Can you guys tell us why they stopped that / what the issue was I am just curious to know how Steam can get around that and they couldn’t.

Also if Epic is working on a MP server system / NAT puncher that we as indie developers can use please tell us that would be awesome news and something to look forward to :-))))))

TY

  • Cover physics please, even if the recommendation is just ‘don’t use it, try this instead,’ and maybe even touch upon the ‘smooth sync’ plugin that was released free recently.

  • Stand-alone/rented server hosting options/workflows (looks like I’m not the only one asking for this)