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

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ต.ค. 2023
  • 👨‍🏫 My Patreon link:
    / kekdot
    Download Project Files | Premium Tutorials | Courses
    💦 Get our Game on Steam | Kekdot Center:
    store.steampowered.com/app/14...
    ---
    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.unrealengine.com/marketpl...
    👾Join our Discord:
    / discord
    📆 We upload videos on a weekly basis
    📰 Follow us on:
    Instragram: @kekdotyoutube
    Twitter: @kekdot
    Reddit: @kekdot
  • เกม

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

  • @Kekdot
    @Kekdot  8 หลายเดือนก่อน +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

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

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

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

    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!

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

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

  • @jonmill4414
    @jonmill4414 7 หลายเดือนก่อน +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)

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

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

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

    Thanks! Very good explanation.

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

    Just finished the video! very well Explained!

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

    Incredible teaching, congratulations, thank you for everything

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

    Great video! Thank you very much!

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

    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 ?

  • @Smile1oasis
    @Smile1oasis 8 หลายเดือนก่อน +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  8 หลายเดือนก่อน

      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 8 หลายเดือนก่อน +1

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

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

    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....

  • @marcooasan1668
    @marcooasan1668 17 วันที่ผ่านมา

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

  • @nimap2028
    @nimap2028 14 วันที่ผ่านมา +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

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

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

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

    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  8 หลายเดือนก่อน +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 8 หลายเดือนก่อน

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

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

    can u please make a details video about dedicated server

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

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

  • @anlar1998
    @anlar1998 5 หลายเดือนก่อน +2

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

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

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

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

    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?

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

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

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

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

  • @Test-xt3ys
    @Test-xt3ys 7 หลายเดือนก่อน +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 6 หลายเดือนก่อน +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 6 หลายเดือนก่อน +1

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

  • @marcooasan1668
    @marcooasan1668 17 วันที่ผ่านมา

    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

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

    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?

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

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

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

    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 6 หลายเดือนก่อน

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

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

      RESOLVED: the reason is VPN. Even in PIE.

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

    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  6 หลายเดือนก่อน

      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 6 หลายเดือนก่อน

      ​@@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 8 หลายเดือนก่อน

    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  8 หลายเดือนก่อน +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  8 หลายเดือนก่อน +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  8 หลายเดือนก่อน +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 8 หลายเดือนก่อน

      @Kekdot okay, that makes sense thanks!

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

    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  8 หลายเดือนก่อน +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 8 หลายเดือนก่อน

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

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

    not gonna lie 50min video scared me