Network Multiplayer Fundamentals | Live from HQ | Inside Unreal

Поділитися
Вставка
  • Опубліковано 15 чер 2024
  • 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.
    Announcement:
    forums.unrealengine.com/unrea...
    Project files (log in to the forums to access):
    forums.unrealengine.com/unrea...
    Transcript:
    epicgames.box.com/s/pje4x054v...
  • Ігри

КОМЕНТАРІ • 102

  • @peter.bacinsky
    @peter.bacinsky 4 роки тому +11

    I'm just implementing multiplayer into my game and you recently released this video... Thank you very much Epic!

  • @Pontypants
    @Pontypants 4 роки тому +19

    Flashiest intro ever. Great show, thanks guysA!

    • @trashart
      @trashart 4 роки тому +3

      Punch a bunch..... multiplayer brawl coming? :D

    • @vfxking8256
      @vfxking8256 3 роки тому

      love your videos (-:

  • @stevenkent5351
    @stevenkent5351 4 роки тому +5

    @17:13 wow that helped me visualize so much better what is going on. I never thought of it as "the client is moving something on the host's screen", I've always thought of it as you are moving your character then replicating it to the host. but this small difference makes a huge difference in how I would think about coding an ability.
    one of those light bulb clicking on moments.

  • @antonschmid229
    @antonschmid229 4 роки тому +1

    You guys are a kind of my heros.. iam an architecture student with some need of creating sparetime fun for me and friends. Think this will help a lot. Def will check this kind of new unreal engine out. •••• all best

  • @KavanBahrami
    @KavanBahrami 3 роки тому +22

    It would be nice to clarify what are best practices if you're going to describe what your showing as 'not best practices' (48:00 and several other points)

    • @KavanBahrami
      @KavanBahrami 2 роки тому

      - If you have sessions being created, where should those nodes go? in the user widget and not the game instance? Simplicity only helps if it doesn't lead people down incorrect paths. (implementations you, the engine architects wouldn't use on your own internal projects)

  • @suitoha9336
    @suitoha9336 2 роки тому +5

    Thank you for the video.
    You should utilize timestamps for such lengthy videos.

  • @m31288smilise
    @m31288smilise 4 роки тому +4

    Epic Online Services - that sounds very nice!! Cant wait for it

  • @charlesalexanderable
    @charlesalexanderable 3 роки тому +1

    1:42:53 to make a multicast RPC not take bandwidth being sent back to the triggering player (rather than just being gated off on receipt) I think you need the replication graph. If you aren't already using the rep graph extensively it may be simpler to just iterate all player controllers and send as unicast, skipping the originator, but then you have to send it through their player controller or other network owned actor rather than being able to send it from any replicated actor like with multicast.
    Replicated variables can use the SkipOwner condition in a much simpler way.

  • @iamisandisnt
    @iamisandisnt 4 роки тому

    I am square like an ethernet cable. Actually I was in Boston. Then I left. Time to watch and wish I was there to ask all my questions!

  • @wecomfrom
    @wecomfrom 3 роки тому +4

    Hello,
    Thank you very much for this video.
    A question seems important to me: in a sport game (with a ball and some online players) is it necessary to separate Frame Rate from Physic Tick Rate to build an efficient netcode like that of rocket league?
    If so, is there an easy way to create this separation?

    • @levimccallum9006
      @levimccallum9006 Рік тому

      UE5 solves this with async physics. Physics runs on its own thread, meaning all clients can have a frame rate independent physics loop.

  • @DjCtavia
    @DjCtavia 4 роки тому

    Gonna be interesting, thank's ;)

  • @StreetArtist360
    @StreetArtist360 3 роки тому

    Thank you very much.

  • @forgiven88
    @forgiven88 3 роки тому

    wonderful thank you!

  • @romazahrypa
    @romazahrypa 4 роки тому +1

    I'd rather watch some c++(or BPs, but only from scratch) tutorial with code explanation with as much as possible detailing. where it would be said why we use X (actions, arguments, naming and so on) thing and not Y. It would be great to see/hear some analogy(not the only way of doing it) for the functions you may show in the feature.
    But nevertheless this video is super informative and clear! I do appreciate how These 2 dudes explain it!

  • @kippesolo8941
    @kippesolo8941 3 роки тому

    I wonder why i should ask stuff like "is localy controlled" when i didnt set this up anyway. But is this because of the replication and to figure out which one is my pawn and controller and so on? So the Server gives every client a unique but not unique pawn+ controller? They are all the same, right? I just have to differ what function runs on server and what is for the clients to be replicated?

  • @treasureboxofmemes9299
    @treasureboxofmemes9299 3 роки тому

    "For obvious reasons i wont be typing that in" made me chuckle

  • @judofright4206
    @judofright4206 2 роки тому +1

    was wondering if theres anything i need to know about custom movement mode & network replication?

  • @dreamer69projects
    @dreamer69projects Рік тому +1

    Thank you for the network multiplayer tutorial
    It's very useful for my project can you check the English sub-title, please
    I think it looks weird
    Thank you

  • @wobbleyheadedbob
    @wobbleyheadedbob 4 роки тому

    What is the track playing during the intro speed-level design sequence?

  • @jeff_allen96
    @jeff_allen96 2 роки тому

    The stream is really good. But please tell me where can I buy that mouse-keyboard movable desk.

  • @DiversityCraft
    @DiversityCraft 3 роки тому +2

    is it still working for 4.25 ? Because I watched alot of other tutorials (made for other versions than 4.25) and all of the don't work for me.

  • @RobCardIV
    @RobCardIV 4 роки тому

    Very well said

  • @sentalogic
    @sentalogic 3 роки тому +2

    Hello there I have a question. I am making a game and it is suppose to be a multiplayer battle royale type of game the question i want to ask is that every multiplayer game requires SERVERS and for a game that is to be played by a million it need alot of servers. Does Epic games/ Unreal Engine provide any type of service in which we can use a server farm from Epic games or not?

    • @ince55ant
      @ince55ant 3 роки тому

      typically you would use a service like amazon's AWS. there should be tutorials for getting your game set up with that

  • @Cpt.Tripps
    @Cpt.Tripps 4 роки тому +6

    Any of the promised follow-ups, such as (1) Host Migration [timestamp: 1:16:24] and (2) staying in the already loaded level when joining a server (e.g. lobby) [timestamp: 1:14:22)]?

    • @UnrealEngine
      @UnrealEngine  4 роки тому +10

      Hey Cpt.Trips - Our goal is to do another livestream around Network Multiplayer and we'd like to address those topics.

    • @samohickey
      @samohickey 3 роки тому

      I would just like to state that I enjoy your name and I'm now going to watch The Stand while I toy with UE4. :) Thank you.

    • @SOLHCQ
      @SOLHCQ 3 роки тому +1

      Bump! Specially (2)

    • @ShadowDoggie
      @ShadowDoggie 3 роки тому +1

      Bump

    • @nullchecker9985
      @nullchecker9985 2 роки тому +2

      @@UnrealEngine hey im realy need that information about host migration can you tell me when do you do this stream im realy waiting for it long time

  • @programthis3805
    @programthis3805 6 місяців тому

    wish there was a dedicated client-side prediction tutorial

  • @NovemberFalls
    @NovemberFalls Рік тому

    Out of curiosity whats the max (hard limit) of players that the engine can handle online at any given time?

  • @EasyRideCZ
    @EasyRideCZ 2 роки тому +1

    Project files MISSING! Link is not working! Oops! That page doesn’t exist or is private.

  • @flyingtruck5301
    @flyingtruck5301 4 роки тому

    Best engine ever 🤖

  • @arrowsdev
    @arrowsdev 3 роки тому

    if my game is prepared for local network multiplayer in pc will it work locally too in mobile via wi fi ?

  • @mikecarvelas4720
    @mikecarvelas4720 3 роки тому

    Can you make more multiplayer videos?

  • @herrberg5542
    @herrberg5542 4 роки тому +6

    What are these laptop tables called? I want to buy them very much.

    • @IllyasArt
      @IllyasArt 4 роки тому

      One on the left looks to be this maybe www.ebay.com/itm/Portable-360-Rolling-Mobile-Laptop-Desk-Cart-Adjustable-Side-Computer-Table-New-/253818559751
      Can't find the one on the right sorry.

    • @barfy362
      @barfy362 4 роки тому

      literally typed "laptop table" into amazon and the first result looked very much like the one on the right for $33

    • @herrberg5542
      @herrberg5542 4 роки тому +1

      @@barfy362 It looks like the quality is terrible)

  • @TheTrifel
    @TheTrifel 3 роки тому +2

    So the question I have, I got a source build up and running , build a dedicated server for testing things between different hardware on the same home LAN network
    The idea would be to load the server and have it start the map ,
    And have a UI that can
    Start a offline game , start a local listen server , join a local listen server , join a home network LAN server by entering the IP the server is running on , or finally join a outside server ( like steam )
    Now the issue I find is when joining the dedicated with a client say my desktop (where my laptop runs the dedicated server standalone ) I get "oss no game session to leave for session (games session ) error in the server log
    players can connect on the server and seem to be working, even if one is on the laptop with the server and one is on the LAN.... but I get that error on join and leaving from both pc's
    Has anybody ever figured out that error ?
    I've seen a ton of people asking over the last few years with very little real answers or fixes
    It seems to me that the server loads a character on creation of the server , which I change to an empty pawn or character and has no effect 🤔
    Multiple player starts seem to not fix it either
    It seems to be on creation of the server auto loading a character to one of the player start regardless of how the game mode override is setup
    Is there any actual clarity
    On building and joining a dedicated server on a network and how to possess either the server character that spawned or to have the server not spawn a playable player character until you've joined ?
    In essence I'd like the server to just run 24-7 with a programmable reset interval , and be able to connect or disconnect at will within a Home LAN network,
    Possibly adding join outside network servers once I get further along
    There seems to be no real information about how to actually make this work properly without having to have some service like Amazon server hosting or something
    To me if your building a game for people to play , emulation through PIE is basic , then you move to testing on a dedicated, then you move to public testing with a dedicated, then you bug hunt
    Otherwise you end up like cyberpunk 2077 with a game that worked in an editor but not on people's actual hardware and you get sued for your crap game for lack of actually testing it
    And there seems to be absolutely no real hard information on this that isnt scattered ,lost in tutorials or just not assembled very well 🤔
    Is there any idea if there will be some real breakdown of how to set up a dedicated server on a private network for testing purposes so some of us aspiring people can avoid a lawsuit filled future being unable to properly test functionality across various platforms
    It just seems like there is a real lack of clarity on anything that involves a dedicated server that doesn't involve paying other people to host it for you

  • @deepelements
    @deepelements 4 роки тому +78

    Wish you guys would start from scratch and show how you set this stuff all up instead of doing all the work off cam and then saying hey this is what I did, click this add that and bada boom bada bang... multiplayer.

    • @SkegakisInc
      @SkegakisInc 4 роки тому +4

      "...bada bing" i thought it was.

    • @shad3ious
      @shad3ious 4 роки тому +3

      They released the files for all to download. So you can follow along with whats happening.

    • @CrackedTubeGamer
      @CrackedTubeGamer 4 роки тому +3

      I just pray they'd have someone doing time stamps :/

    • @UnrealEngine
      @UnrealEngine  3 роки тому

      @@CrackedTubeGamer If you open the linked transcript you can CTRL+F and search for key terms. Each line has an associated timestamp in the doc!

    • @unk_and_lucy_spychopaths9721
      @unk_and_lucy_spychopaths9721 3 роки тому

      @@actualwafflesenjoyer ahh yes i too do like copypasta

  • @placebo_yue
    @placebo_yue Рік тому

    whats wrong with the subs? are those from a completely different video or perhaps 5 minutes offseted?

  • @II-er7gj
    @II-er7gj 4 роки тому +3

    I don't want to be insulting person but in my opinion at this time this live stream was more like water with no taste at all - it could be done in 50% of time and started for Noobs like Me from scratch from brand new project and not the "setup ahead of time" because we missed a lot of nice things behind of scenes how it is that setup working.

    • @thoeme
      @thoeme 4 роки тому

      Maybe try the tutorials from BRY's UA-cam channel then. You should be able to find them by searching for BRY Replication.

  • @MorianMithrill
    @MorianMithrill Рік тому

    Project files aren't available anymore :( Got "Oops! That page doesn’t exist or is private." message when clicking Project files link in the description.

  • @imagine-games6677
    @imagine-games6677 2 роки тому

    The closed captions are not synced to the time..

  • @stefanstankovic5831
    @stefanstankovic5831 4 роки тому +1

    ​Hi, what about a problem with steam session when you get 9999 ping? Does something change in 4.24, and implementation of Steam socket? I tried with both space war id and my own app id. When I use lan session I get a correct ping, but I have a problem when I use Steam.

    • @eXifreXi
      @eXifreXi 4 роки тому

      Doubt that's implemented. You'd need to actually "ping" the Session to retrieve that ping. I think there are some solutions available, but non without C++.

    • @stefanstankovic5831
      @stefanstankovic5831 4 роки тому

      @@eXifreXi Tried with UE function "get ping in ms", no luck. Tried with ping and victory plugin, with victory plugin I obtained IP address and pass that string from server to client, and then from a client with ping plugin I tried to ping that IP address, but again no luck :/

    • @eXifreXi
      @eXifreXi 4 роки тому

      The Ping is filled in when the Session result is constructed. By default the ping of a session result is 9999 iirc. So they never fill it in. There is basically a step missing in-between where they (Epic) would need to actively "ping" the session using steams pingServer function (c++).
      Not sure any plugin can help you there, or at least not sure any plugin tackled that. Maybe some of the plugins that fully expose steam to BPs, but they also cost a little bit.

    • @videogames7
      @videogames7 4 роки тому +1

      If you use 4.24 with Steam socket plugin entable and set Up properly un the defaultengine.ini It gives the correct ping when client Search session

    • @stefanstankovic5831
      @stefanstankovic5831 4 роки тому

      @@videogames7 I saw in UE documentation how to enable that plugin, so I will try and let you know. Thanks both of you

  • @felixcuevas1342
    @felixcuevas1342 4 роки тому +1

    This is a LONG video. But some good information in there. This stuff could also be explained a little better. Next time you guys make a video you should direct it to be as easy to understand as possible

  • @PabliyoCR
    @PabliyoCR 3 роки тому

    Alan Wake works for UE?

  • @drummerman883
    @drummerman883 3 роки тому

    That intro though.....Jesus

  • @saurabhtembhurne4
    @saurabhtembhurne4 3 роки тому +2

    PC AS DEDICATED SERVER AND MOBILES BE CLIENT AND PLAY OFFLINE .

  • @amasterofsome
    @amasterofsome 4 роки тому

    That intro though haha

  • @thrices4372
    @thrices4372 4 роки тому +11

    I thought this was a video on how to start a multiplayer game.

  • @MadPonyInteractive
    @MadPonyInteractive 2 роки тому

    I get "Oops! That page doesn’t exist or is private." on the project files page

    • @UnrealEngine
      @UnrealEngine  2 роки тому +1

      We're working on finding a different solution to host the project files. This will take some time to arrange, but as soon as we have a viable solution available we will let everyone know! Thanks!

    • @DestroyerPal
      @DestroyerPal Рік тому

      @@UnrealEngine Any update

  • @user-dr1eb4fe8t
    @user-dr1eb4fe8t 2 роки тому

    @Unreal Engine Where can we get the cool stickers 😍😍😍 Greetings from Germany

  • @ultraversestudios5059
    @ultraversestudios5059 4 роки тому

    Hey, what if I'm adding in multiplayer mode in a vr game? As a mod.

  • @hussambarikhan1659
    @hussambarikhan1659 4 роки тому

    Good night
    How can I export my project to html

    • @user-vc2pm5xv7s
      @user-vc2pm5xv7s 3 роки тому

      no can do, they removed it and leave it for the community to implement and support HTML

  • @helenjones8283
    @helenjones8283 3 роки тому +1

    this is my first youtube comment!!

  • @bryancorell2786
    @bryancorell2786 4 роки тому

    Why did he completely lie about host migration at 1:17:00 ?? There is no built-in migration, you have to painfully do it yourself.

    • @Evigmae
      @Evigmae 4 роки тому

      Can't blame the guy, the engine is massive, and it's clear they plan (or planned) to implement it at some point, since you have stuff like bAllowHostMigration inside the source code, it just doesn't seem to be doing anything so far. Maybe they have it internally or something.

  • @joaojesus732
    @joaojesus732 4 роки тому +11

    one more stream without content beyond the basics that everyone should already know. Answering the questions with practical exercises would be desirable, but the epic should want to keep the knowledge for just a few.

    • @Evigmae
      @Evigmae 4 роки тому +4

      Epic is not a university... and making games is 99% knowing the basics. What you do with those basic tools is up to your own knowledge and experience. Read the documentation, take courses. Hire professionals to do the things you don't know how to do. No one is supposed to know everything. If you want to work alone, make increasingly more complex games. Don't start with hard things you don't know how to do yet.

    • @TimothyBell90
      @TimothyBell90 4 роки тому +1

      @@Evigmae I agree. I feel like they've done a far better job than in the past at explaining the basics.

  • @ruellerz
    @ruellerz Рік тому

    25 players in a game. Pawn movement sync help? Dedicated server.

    • @ruellerz
      @ruellerz Рік тому

      22:30 FYI Replicate movement cant be used as its extremely laggy.

  • @mp3ha
    @mp3ha 4 роки тому

    hi
    I want make a game Guess the words
    for example game Word Cookies
    can help me for blueprints and ... for make game and tuch

  • @user-hp9zq3jn7s
    @user-hp9zq3jn7s 4 роки тому +1

    54:18 - client replication

  • @santiagodeadmonkey6217
    @santiagodeadmonkey6217 2 роки тому

    Pls fix the english subtitles :c

  • @kikinao
    @kikinao 3 роки тому +2

    Subtitles are out of sync

    • @MainDoodler
      @MainDoodler Рік тому

      Probably not replicated properly

  • @l_t_m_f
    @l_t_m_f Рік тому

    English subs (not auto-generated) are off for me when I watch the video.

  • @apoage
    @apoage 4 роки тому

    Hmm so strange I have already feel seen this intro video capture

    • @RebornJrpg
      @RebornJrpg 4 роки тому +1

      Hello, this sped level mapping desing is the one from reborn the game i'm developing. It rotates in UE prestream from last year. :)

  • @corejake
    @corejake 3 роки тому

    No server checks and so much client-side trust. Reliable multicasts are a big no-no too, there is so many unpractical takes in this video. I guess that's why this video is called fundamentals.

  • @dehrk9024
    @dehrk9024 3 роки тому +2

    Don't wanna be mean but i feel like michael is bad at coming to the point and more just chattering.. (at least in the seond half)

  • @jeuxdz
    @jeuxdz 4 роки тому +2

    what is the point of this video, if you dont explain how to do it

  • @voidvev
    @voidvev 2 роки тому

    ..... a dev that doesn't know how his own tech works def a google coder jesus