Giter Site home page Giter Site logo

unrealmultiplayer / 3_steam_multiplayer Goto Github PK

View Code? Open in Web Editor NEW
58.0 10.0 30.0 66.24 MB

Connect your games P2P over steam. This game introduces Unreal's Online Sub-System (OSS) and shows you how to use it with the Steamworks API. By the end of the section, you will be able to connect player through Steam lobbies. (ref:SM_UEM) http://gdev.tv/uemgithub

Home Page: http://gdev.tv/uemgithub

License: MIT License

C++ 14.07% C 32.24% C# 5.74% Makefile 0.07% Shell 0.12% Roff 38.61% Batchfile 0.01% HTML 0.43% Csound Document 8.62% Rich Text Format 0.10%
steam-api steamworks steam unreal-engine-4 multiplayer-game

3_steam_multiplayer's Introduction

Unreal Multiplayer Course - Section 3 - Steam Multiplayer

In follow up to our hugely successful Complete Unreal Engine Developer course we bring you Unreal Multiplayer Mastery - as on featured on Epic's UE4 blog.

In this section we teach you to connect your games P2P over steam. This game introduces Unreal's Online Sub-System (OSS) and shows you how to use it with the Steamworks API. By the end of the section, you will be able to connect player through Steam lobbies.

You're welcome to download, fork or do whatever else legal with all the files! The real value is in our huge, high-quality online tutorials that accompany this repo. You can check out the course here: Unreal Multiplayer Mastery

0 Introduction to Steam Multiplayer

  • We overview the section topic.

1 Getting The Steamworks SDK

  • Introducing Steamworks.
  • Downloading the Steamworks SDK.
  • Steamworks and the Online Sub-System.

2 Building SpaceWar In Visual Studio

  • Introducing the Steamworks example project.
  • Updating the project.
  • Downloading & installing DirectX SDK.
  • Fixing the build errors.

3 Building SpaceWar In Xcode

  • Introducing the Steamworks example project.
  • Applying recommended settings.
  • Running with Steam.

4 Testing Steam Lobbies

  • Finding a testing partner.
  • Testing servers.
  • Testing lobbies.

5 The Online Sub-System

  • Importing PuzzlePlatforms.
  • Capabilities of Online Sub-Systems.
  • Including the OSS module.
  • Getting a pointer to the sub-system.

6 NULL Sub-System For Testing

  • Role of the NULL sub-system.
  • Configuring the NULL service.
  • Printing the current service name.

7 Memory Management In C++

  • Stack vs Heap.
  • Manual memory management.
  • Reference counting with TSharedPtr.
  • Garbage Collection of UObjects.

8 Creating Online Sessions

  • Creating a session.
  • Asynchronous operations and delegates.
  • Creating a session on host.

9 Destroying Online Sessions

  • Asynchronous destruction.
  • Checking if a session exists.
  • Destroy the session if we need to.

10 Finding Online Sessions

  • FindSessions and TShareRef.
  • Handling OnFindSessionsCompleteDelegates.

11 Query Parameters & Session Settings

  • Configuring Session Settings.
  • Adding query parameters.
  • Iterating over a TArray

12 Lists Of Widgets With ScrollBox

  • Introduction to the ScrollBox.
  • Creating a row widget.
  • Add rows in C++.

13 Populating The Server List

  • Expose the text property.
  • Setting a server list from GameInstance.
  • Clearing the previous list.
  • Requesting a refresh.

14 Selecting A Server

  • Using TOptional values.
  • Setup the UServerRow.
  • Adding a UButton.
  • Set the selected index.

15 Joining A Session

  • Passing the index to GameInstance.
  • How to JoinSession.
  • Handling OnJoinSessionComplete.
  • Getting the platform connect string.

16 Enabling The Steam OSS

  • Enabling the steam plugin.
  • Compiling with the steam module.
  • Configuring the DefaultEngine.ini.
  • Reading the verbose logs.

17 "Presence" For Steam Lobbies

  • Enabling presence for the server.
  • Enabling presence for search.
  • Debugging our connection.

18 Row Selection In Lists

  • Update text colour on hover.
  • Update all rows when Selected.
  • Select colors for Hovered and Selected.

19 Displaying Search Result Properties

  • Disabling Steam for testing.
  • Creating a struct.
  • Populating the struct.
  • Updating the UI.

20 Debugging The Search Results

  • Disabling Steam fully.
  • Getting the available connections.
  • Padding the text properly.

21 Custom Session Settings

  • How to set custom settings.
  • How to retrieve custom settings.
  • Setting the server name.

22 Continued: Custom Session Settings

  • We finish the challenge solution.
  • We make our menu pretty again.

23 GameMode And Multiplayer

  • Joining into the lobby.
  • Creating a GameMode override.
  • Handling PostLogin.
  • Handle Logout and count players.

24 Enabling Seamless Travel

  • Ensuring we call Super.
  • Traveling to the game.
  • What is non-seamless travel?
  • Enabling seamless travel.
  • The transition map.

25 Debugging Engine Code

  • Installing editor symbols.
  • Finding the NULL subsystem code.
  • What code should be called?
  • Attaching and debugging.
  • Fixing the NULL subsystem bug.

26 Starting A Session

  • Update maximum number of players.
  • Adding a session start timeout.
  • Starting the session.

99 Steam Multiplayer Wrap-up

  • We review the topics covered this section.

3_steam_multiplayer's People

Contributors

lucybecker avatar sampattuzzi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.