Giter Site home page Giter Site logo

pedroalvesq / 3_steam_multiplayer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from unrealmultiplayer/3_steam_multiplayer

0.0 1.0 0.0 66.25 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)

License: MIT License

C++ 14.11% C 32.26% C# 5.75% Makefile 0.07% Shell 0.12% HTML 0.43% Roff 38.64% Batchfile 0.01% Csound Document 8.62%

3_steam_multiplayer's Introduction

Unreal Multiplayer Course - Section 3 - Steam Multiplayer

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.

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.

3_steam_multiplayer's People

Contributors

sampattuzzi avatar

Watchers

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