Setup Unreal Engine for Steam Multiplayer Game

This is my development memo…

tl;dr

check the official document that’s simply completed or see MultiplayerShootout project.

Environment

Unreal Engine 4.14.2
Steamworks SDK 1.32 (included in UE4)

SDK Update

generally speaking, using latest version is better. But when I tried, I used SDK version 132 which is included in Unreal Engine 4.12.2. The current (2017/1) latest version is 139.
If you wanna update steamworks SDK, put it collect folder location.

We need to update Steamworks.build.cs file. Because the folder name of “Steamv132” is referred like "Steamworks/Steam" + SteamVersion + "/sdk"

DLL Update

Put some dll files below Binaries folder like C:\Program Files (x86)\Epic Games\4.14\Engine\Binaries\ThirdParty\Steamworks\Steamv132\Win64.
This task is also explained by official documents. Those files come from steam client application folder so are copied from steam game client. y’know, this folder name is also referred from build.cs file like as mentioned above.

.ini Configuration

This is also we don’t need to add any configuration for our first settings.

[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName=”GameNetDriver”,DriverClassName=”OnlineSubsystemSteam.SteamNetDriver”,DriverClassNameFallback=”OnlineSubsystemUtils.IpNetDriver”)
[OnlineSubsystem]
DefaultPlatformService=Steam
[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480
[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName=”OnlineSubsystemSteam.SteamNetConnection”

I googled about DefaultEngine.ini file, and found some additional settings. but it’s not item that i have to. I think official document or MultiplayerShootout project are simple and understandable answer. this time I did not over write sample project settings. The MultiplayerShootout sample was set to use OnlineSubsystemSteam from the beginning.

Plugins

At first, I forgot check the Online Subsystem Steam plugin. In my case I don’t need GooglePlay and iOS platform. Probably you need to check OnlineSubsystemNULL and OnlineSubsystemUtils for basic online subsystem.

Sample MultiplayerShootout

The MultiplayerShootout sample is so good and I greatly relied on. when we create multiplayer game, login process, replication settings like these things.

If Steam integration is correctly playing, you can see steam icon in lower-right corner and steam id in upper-left corner in the screen. Shift + Tab opens Steam menu. We should note that running Steam game client in our PC. This sample app run as SpaceWar is ready in official by SteamAppId=480 configuration.

Others

I found that there is a legion issue in online subsystem steam. https://answers.unrealengine.com/oauth/authorized?code=b7ddf6797fad41d680d1063572c40c52

Some japanese write solution for online subsystem by build UE4 from source but probably developers do not have to do that.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.