Hosting, Finding and Joining Sessions | 04 | Multiplayer Battle Royale | Tutorial | Unreal Engine 5

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 ก.ย. 2024
  • 👨‍🏫 My Patreon link:
    / kekdot
    Download Project Files | Premium Tutorials | Courses
    🕹️ Get our Game on Steam | The Anomaly Project:
    store.steampow...
    ---
    In this tutorial take you through an in-depth explanation of how we connect players to each other using Unreal Engine's Online Subsystem. After my in-depth explanation we setup the session nodes in the create, server browser and join session widgets.
    We take a look at:
    - What makes up Unreal Engine Multiplayer
    - Dedicated servers, Client-server (Listen-server), peer-to-peer
    - The Unreal Engine Default Subsystem (Online subsystem)
    - 3rd party subsystems (Steam, EOS etc)
    - The relationship between Sessions and Replication
    - Pro's and cons for each server model
    - How to create sessions, find sessions, join sessions, destroy sessions
    - Setting up the Host Game widget, Server browser widget, and Join game widgets
    ✔️ What are we going to make in this series?:
    In short it will be PUBG but with Bean characters.
    We will have:
    - A Battle royale Map
    - Full Steam Session setup for connecting to games (Host, ServerBrowser, Join)
    - Multiplayer characters
    - Picking up Tools / Weapons
    - Multiple weapons
    - Lootcrates
    - Flying out of an airplane
    - All kinds of UI and HUD
    - Match flow logic
    And basically everything that a battle royale needs
    #unrealengine #tutorial #multiplayer
    ---
    Welcome to Kekdot!
    👨‍🏫 Our Patreon - Download Project Files | Premium Tutorials | Courses:
    / kekdot
    🛒 Our Unreal Engine Marketplace Templates:
    www.unrealengi...
    👾Join our Discord:
    / discord
    📆 We upload videos on a weekly basis
    📰 Follow us on:
    Instragram: @kekdotyoutube
    Twitter: @kekdot
    Reddit: @kekdot
  • เกม

ความคิดเห็น • 61

  • @Kekdot
    @Kekdot  11 หลายเดือนก่อน +5

    Hey guys,
    Get the project files here if you're interested:
    👨‍🏫 My Patreon link:
    www.patreon.com/kekdot
    Download Project Files | Premium Tutorials | Courses
    Just to let you guys know what we are making in this course, we are making a full multiplayer battle royale game. I am uploading one video each day.
    In short it will be PUBG but with Bean characters.
    We will have:
    - A Battle royale Map
    - Full Steam Session setup for connecting to games (Host, ServerBrowser, Join)
    - Multiplayer characters
    - Picking up Tools / Weapons
    - Multiple weapons
    - Lootcrates
    - Flying out of an airplane
    - All kinds of UI and HUD
    - Match flow logic
    And basically everything that a battle royale needs

  • @marshall3000gt
    @marshall3000gt 11 หลายเดือนก่อน +8

    Hands down the best and most detailed explanation of how multiplayer works within UE. Thanks for everything you are doing for us regular folks Kekdot! I'm excited for the replication part because that is where I still struggle at times. I had a couple of questions regarding this project so far, but will ask them in separate comments for organization of answering. Keep up the great work!

  • @mrdirtydaniel
    @mrdirtydaniel 7 หลายเดือนก่อน +4

    "dont expect to be able to connect to each other, like wizards" 😂 love the series!

  • @magnusfriis7367
    @magnusfriis7367 11 หลายเดือนก่อน +8

    Thanks for this fantastic series, it was exactly what i wanted and needed! Keep up the good work!!

  • @jonmill4414
    @jonmill4414 10 หลายเดือนก่อน +2

    For people that could be wondering how to fix the "On Text Changed" of the create session.
    1st - Create a Text variable with a default value of 2
    2nd - From the text to string value, pull out from string to "Is Numeric" and connect it to a branch
    3rd - If false, go to a SetText (Target Max player, in Text your text variable with default 2)
    Now if you want to limit the amount.
    from the string to integer, do a greater check, if true, set text to your max value desired and set the Max players also to that max value then connect it to the SetText mentioned above
    If the greater check is false, you can do a minimum check of 2 and run the same logic, if that return also false you simply connect it to the set text and max player from the video. (default happy path)

  • @Smile1oasis
    @Smile1oasis 11 หลายเดือนก่อน +2

    Hey bro, you might already be aware this, but at 27:13, you were switching back and forth between the widget designer and graph tab to set the button widget's event. Instead, you can have the same events listed in the graph itself. Just click on the buttons in the variable list, and the events will appear below in the details tab. It is easier the way you showed (we don't have to remember any variable name), but it can be quite tedious when there are a bunch of buttons though.
    Btw great tutorial !

    • @Kekdot
      @Kekdot  11 หลายเดือนก่อน

      Hey,
      Haha yeah indeed. I also show that in part 5. I do it this way for the tutorial as I thought it would be visually easy and ‘noob’ friendly :p
      Glad you enjoy the series appreciate you!

    • @karencartoon8763
      @karencartoon8763 11 หลายเดือนก่อน +1

      I’m glad he did the way he did because i’m a noob lol.

  • @VitaliySunny
    @VitaliySunny 11 หลายเดือนก่อน +2

    Thanks! Very good explanation.

  • @grasher21
    @grasher21 8 หลายเดือนก่อน

    @Kekdot you're a beast - thanks so much for this valuable playlist on the Multiplayer Series

  • @joelarmour
    @joelarmour 4 หลายเดือนก่อน +2

    I'm using 5.4 now, so i have to use Online Services EOS and EOSGS. I was just reading the docs. Will you touch on this?

  • @karencartoon8763
    @karencartoon8763 11 หลายเดือนก่อน +1

    Just finished the video! very well Explained!

  • @sammermusa5124
    @sammermusa5124 9 หลายเดือนก่อน

    Incredible teaching, congratulations, thank you for everything

  • @nimap2028
    @nimap2028 3 หลายเดือนก่อน +1

    Nice Tutorial . I Have Question How I Can Get Current Session Result Becuse I Want Know My Ping In Game And The Input Is Session Result

  • @marcooasan1668
    @marcooasan1668 3 หลายเดือนก่อน

    also take note you should be in LAN not wifi or else setup direct connect box and use URL when connects

  • @BabaAkar
    @BabaAkar 11 หลายเดือนก่อน

    I bought your prop hunt add-on, but I'm trying to install it on a private server. That's why I rented a server, but I can't do it anyway. Please shoot the videos on private servers. I was waiting for this moment for a long time. I was very happy when you mentioned it in the video. Please pull it please....

  • @evgenytumanov2863
    @evgenytumanov2863 4 หลายเดือนก่อน

    Great video! Thank you very much!

  • @nobIeseis
    @nobIeseis 4 หลายเดือนก่อน +1

    can't figure out how to update the server name :/ set session info doesnt work

  • @anlar1998
    @anlar1998 8 หลายเดือนก่อน +3

    How do i assign custom name to the server written by player when creating the server.

    • @nobIeseis
      @nobIeseis 4 หลายเดือนก่อน

      did u figure this out? been trying everything but it doesnt updtate

  • @irusu.
    @irusu. 4 หลายเดือนก่อน

    in my game I'm using mouse location, when opening lobby level, mouse input doesnt work properly, it's like it registers late

  • @hassanalhobail8084
    @hassanalhobail8084 8 หลายเดือนก่อน +1

    How do we create a session on the dedicated server??

  • @Test-xt3ys
    @Test-xt3ys 10 หลายเดือนก่อน +2

    thanks for this video, you greatly explained the multiplayer features!!! Too bad, the Chop Left node for the SessionName didn't work for me, it keeps adding all the characters of the device's name (and the code is good) I'm still wondering why :/

    • @hex.vagyok
      @hex.vagyok 9 หลายเดือนก่อน +2

      I just tested around and... the thing is you add the count there for how many characters do you want to chop from the length, not how long the name should be haha :)

    • @Test-xt3ys
      @Test-xt3ys 9 หลายเดือนก่อน +1

      Exactly@@hex.vagyok thanks! I figured this out 2 weeks ago actually xD it works fine now bro :)

  • @Nicolas-gt1cx
    @Nicolas-gt1cx 6 หลายเดือนก่อน

    Hello, im loving the tutorial so far ! made huge progress thx for that ! in ur video u talk about avoiding steam for the server part ? so ur only using steam in a client.exe and people cannot log on server if i close my dedicated server and play the game ?

  • @S0KL0_
    @S0KL0_ 3 หลายเดือนก่อน +1

    "so uh next up we will need to create children" 38:45

  • @mikezhao6686
    @mikezhao6686 11 หลายเดือนก่อน

    Just want to make sure I'm understanding correctly, the sessions created at the end of this tutorial are LAN only right, because we haven't set up the steam online subsystem yet? Great video!

    • @Kekdot
      @Kekdot  11 หลายเดือนก่อน +2

      Well they are actually alive on your Local Network. So if people were to join your local network they could actually be anywhere in the world.
      But since your local IP is private and nobody knows, nobody can indeed currently connect to it.
      For that we use subsystems like Steam so that we don't have to expose our private networks and can run these games on their systems.
      I will be connecting Steam in a video coming this week ^^

    • @mikezhao6686
      @mikezhao6686 11 หลายเดือนก่อน

      @@Kekdot That's awesome man! Yeah no pressure on the videos, just wanted to double check my understanding!

  • @marcooasan1668
    @marcooasan1668 3 หลายเดือนก่อน

    I have a question for instance pubg has a find match thingy so whenever they find match it will create pubg dedicated server to connect with? coz it should be official server right? not on client i wonder how can you automate this kind of things on aws or other server clouds, and it is expensive if you prepare 100 dedicated server for everyone without a player so i think like RGC stuff like on dota or probably csgo i hope you have solution in that case since your example/topic is battle royale

  • @inourcingdisk2104
    @inourcingdisk2104 2 วันที่ผ่านมา

    I don't know why but I pretty much have the same set up for the blueprints, but I cannot find any sessions. Both my server and client can create a session and enter the map on their own, but I can't find their sessions at all, have been trying to debug using print strings and stuff but all I can figure out is that the find session node always fails and the result array is always empty

    • @inourcingdisk2104
      @inourcingdisk2104 2 วันที่ผ่านมา

      Wait I have been using the listen server and client mode and that seemed to be the problem why I can't find the session, when I just followed your steps it just worked.. Thank you so much.

  • @jacobmeyer3627
    @jacobmeyer3627 3 หลายเดือนก่อน

    I ran into a stupid issue, Left Chop does not seem to be working for me. I had to use Get Substring and do a start index and length before it would work. Do you know if this is an issue in the new version?

  • @hernangomar5445
    @hernangomar5445 หลายเดือนก่อน

    quick question (havent watched the series yet) after i finish the tutorial will i be able to play my game with a friend (who is on another network) i did a mp game tut some time ago but it was only working on LAN, then i got confused since another video used steam client to host (idk if that makes sense) i just want 1 player to be the host and the rest to join his match

    • @Kekdot
      @Kekdot  หลายเดือนก่อน

      In episode 8 we add the steam online subsystem so that you can play with friends across the internet.
      If you dont implement a steam subsystem then session are hosted on ur local network only. So unless you wish to open up your private home network to the entire world you’re going to need a subsystem like Steam or EOS to handle that for you.
      Otherwise the only option left are dedicated servers which cost money to rent.

  • @shahmaarbaba
    @shahmaarbaba 10 หลายเดือนก่อน

    can u please make a details video about dedicated server

  • @JawadAnzour
    @JawadAnzour 6 หลายเดือนก่อน

    hello i have a question , so after this tutorial do we can join a session from another pc for like testing the game ?

  • @juliendewallers6374
    @juliendewallers6374 10 วันที่ผ่านมา

    hi!, thx for your great tutorial, but i meet issue, all work but (in test ) my players dont meet on yhe same map, did you know why ? any idea plz ? thx fo advance,

    • @dexytboff
      @dexytboff 7 วันที่ผ่านมา

      Hello, I have a problem, when I click refresh nothing is added, do you have a solution?

    • @juliendewallers6374
      @juliendewallers6374 7 วันที่ผ่านมา

      @@dexytboff hi that work for me this, have you link all pin ?, in the "creat widget" in the "WB_ServerBrowser" have you put the class ? "WB_ServerBrowserItem" ? the line is well finish by Add child ?

    • @dexytboff
      @dexytboff 7 วันที่ผ่านมา

      @@juliendewallers6374 Yes, i have put all class and the line finish by add child.. Do you have discord?

    • @dexytboff
      @dexytboff 7 วันที่ผ่านมา

      @@juliendewallers6374 Yes, i did everything, but nothing append.. Do you have discord?

    • @dexytboff
      @dexytboff 7 วันที่ผ่านมา

      @@juliendewallers6374yes, but nothing append..

  • @marshall3000gt
    @marshall3000gt 11 หลายเดือนก่อน

    I tested using 4 standalone players. I had 1 player create a session with a max of 3 players allowed. However, all 3 of the other players were able to join, meaning there were 4 total players in the session. Can you explain why this occurred?

    • @Kekdot
      @Kekdot  11 หลายเดือนก่อน +1

      So we’re talking about 3 public connections. That means joiners. So including ourselves that makes 4.
      You the host don’t count as a public connection but as the server.

    • @marshall3000gt
      @marshall3000gt 11 หลายเดือนก่อน

      @@Kekdot Hmmm. But doesn't the server browser show 1/Max Players when only the host is currently in the session?

  • @ult87i
    @ult87i 9 หลายเดือนก่อน

    I always get 0 length array on find sessions((( why? Tried on new first person template and recieve 0 as well. Please help
    whether i use game mode or game mode base as parent session gets created but second standalone doesnt find it

    • @ult87i
      @ult87i 9 หลายเดือนก่อน

      find sessiond fires 'on success' but array length is always 0

    • @ult87i
      @ult87i 9 หลายเดือนก่อน

      RESOLVED: the reason is VPN. Even in PIE.

  • @johnnyque7684
    @johnnyque7684 9 หลายเดือนก่อน

    Nice vid.
    But I always get 0 for the "Get Ping in ms". The other properties ("Get Max Players", etc...all work ok).
    Why is that happening? Is it some config?

    • @Kekdot
      @Kekdot  9 หลายเดือนก่อน

      The default subsystem bugs out on the MS. You have to use the Ping from a subsystem of choice to fix that. For example use the ping from the Advanced Sessions plugin instead to relay the actual latency. I believe you can also only properly test this once packaged and uploaded to Steam.

    • @johnnyque7684
      @johnnyque7684 9 หลายเดือนก่อน

      ​@@Kekdot Actually, I found out that the issue is that I'm using Epic Games as my platform, not Steam. Epic Games does not provide the ping value (because they don't use IP addresses for security reasons). Steam does use IP addresses, and so they can provide the ping value. Really sucks.

  • @marshall3000gt
    @marshall3000gt 11 หลายเดือนก่อน

    How would I go about updating the server browser item details every few seconds? Not refreshing the list, just updating the ping and number of current players for the servers that are already listed. I created a custom event called "Update" that feeds into the Event Construct chain on the server browser item widget. Then inside my server browser, I saved my server browser items in an array and called the "Update" custom event on that array using a timer every few seconds. This didn't work. Can you explain where I went wrong?

    • @Kekdot
      @Kekdot  11 หลายเดือนก่อน +1

      Hi there,
      The only way to update session data is to refresh the found results.
      So you will have to refresh the server browser again and again.

    • @Kekdot
      @Kekdot  11 หลายเดือนก่อน +1

      Simply run a little timer event from event construct that calls the server browser refresh event (same logic that the refresh button executes)

    • @Kekdot
      @Kekdot  11 หลายเดือนก่อน +1

      Do keep in mind that refreshing takes a while, so fire the refresh every like 10 seconds, and check if it’s finished refreshing before calling the refresh again

    • @marshall3000gt
      @marshall3000gt 11 หลายเดือนก่อน

      @Kekdot okay, that makes sense thanks!

  • @liquidchefa
    @liquidchefa 9 หลายเดือนก่อน +2

    not gonna lie 50min video scared me