How does 127.0.0.1 (or Steam) Multiplayer Work In Beta6 - I get Crash on Client Load

Topline Summary: In Beta Voyager (6) the old config methods to find netdriver are not working, the scripts are not being found, perhaps some new build target thingies are required?


Please see my first comment regarding Steam as opposed to 127.0.0.1

Dear Friends At Epic,

For lack of any example to refer to I must ask you please, do tell me how does 127.0.0.1 multiplayer / Open IP (perhaps a separate topic) work in Beta6?

Please note that the crash below with my current config and c++ code never happened in beta5. None of my network config or C++ code has changed since I switched to beta6.

#My Bat Files
I normally load a server and a client from commandline on the same computer, connecting via 127.0.0.1

Server .bat

"C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor.exe" E:\RocketVictory\VictoryGame\VictoryGame.uproject Victory?listen -game -ResX = 800 -ResY = 900 -WinX = 0 -WinY = 20  -log

client .bat

"C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor.exe" E:\RocketVictory\VictoryGame\VictoryGame.uproject 127.0.0.1 -game -ResX = 800 -ResY = 900 -WinX = 800 -WinY = 20 -log

#Crash on Client

The client crashes immediately

client log reveals this:

[2013.12.17-09.53.04:428][   ]LogInit: Selected device profile: Win 64
[2013.12.17-09.53.04:455][   ]LogNet: Browse: 127.0.0.1//Game/Maps/Victory?Name=Player
[2013.12.17-09.53.04:455][   ]LogModuleManager:Warning: ModuleManager: Unable to load module 'RocketEditor-SocketsSTEAM.dll' because the file was not found.
[2013.12.17-09.53.04:456][   ]LogSockets:Warning: Unable to load SocketSubsystem module STEAM
[2013.12.17-09.53.04:457][   ]LogLinker:Warning: Can't find file '/Script/OnlineSubsystem'
[2013.12.17-09.53.04:457][   ]LogUObjectGlobals:Warning: Failed to load '/Script/OnlineSubsystem': Can't find file '/Script/OnlineSubsystem'
[2013.12.17-09.53.04:458][   ]LogUObjectGlobals:Warning: Failed to find object 'Class /Script/OnlineSubsystem.IpNetDriver'
[2013.12.17-09.53.04:458][   ]LogNet: CreateNamedNetDriver failed to create driver PendingNetDriver from definition GameNetDriver
[2013.12.17-09.53.04:520][   ]LogWindows:Error: appError called: Assertion failed: NetDriver [File:D:\BuildFarm\buildmachine_++depot+UE4-Rocket+Beta6\Engine\Source\Runtime\Engine\Private\PendingNetGame.cpp] [Line: 38]

Stack:
Address = 0xd9cb3156 (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor-Core.dll]
Address = 0xd9ba345a (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor-Core.dll]
Address = 0xd8178321 (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor-Engine.dll]
Address = 0xd8381d27 (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor-Engine.dll]
Address = 0xd7edfc27 (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor-Engine.dll]
Address = 0x3f26eeaf (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor.exe]
Address = 0x3f26b312 (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor.exe]
Address = 0x3f26e814 (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor.exe]
Address = 0x3f26e94a (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor.exe]
Address = 0x3f27a73b (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor.exe]
Address = 0x3f27b3ef (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor.exe]
Address = 0x7750652d (filename not found) [in C:\Windows\system32\kernel32.dll]
Address = 0x7763c521 (filename not found) [in C:\Windows\SYSTEM32\ntdll.dll]
Address = 0x7763c521 (filename not found) [in C:\Windows\SYSTEM32\ntdll.dll]

[2013.12.17-09.53.04:521][   ]LogWindows:Error: Windows GetLastError: The operation completed successfully. (0)
[2013.12.17-09.53.04:804][   ]LogWindows: === Critical error: ===
Unhandled Exception: 0x00000001

[2013.12.17-09.53.04:804][   ]LogWindows: Assertion failed: NetDriver [File:D:\BuildFarm\buildmachine_++depot+UE4-Rocket+Beta6\Engine\Source\Runtime\Engine\Private\PendingNetGame.cpp] [Line: 38]

Stack:
Address = 0xd9cb3156 (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor-Core.dll]
Address = 0xd9ba345a (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor-Core.dll]

#Steam .dll not found?

I found this line sorta ahhhhh-help-me-please-ish:

LogModuleManager:Warning: ModuleManager: Unable to load module 'RocketEditor-SocketsSTEAM.dll' because the file was not found.

#No OnlineSubsystem

This is perhaps the most tell-tale (as in it tells a tale but im not sure what yet) line of all

[2013.12.17-09.53.04:457][   ]LogLinker:Warning: Can't find file '/Script/OnlineSubsystem'

#My Config

I am using my config file from Beta5

Apparently there’s some other settings I need to use here?

[OnlineSubsystem]
DefaultPlatformService=Null
;DefaultPlatformService=Steam
PollingIntervalInMs=20

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=213960
;SteamDevAppId=480
;SteamDevAppId=212960
GameServerQueryPort=27015
bRelaunchInSteam=false
GameVersion=1.0.0.0
bVACEnabled=1
bAllowP2PPacketRelay=true
P2PConnectionTimeout=90

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"
AllowDownloads=false

#My Build Target

// Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.

using UnrealBuildTool;

public class VictoryGame : ModuleRules
{
	

	public VictoryGame(TargetInfo Target)
	{
               
                	MinFilesUsingPrecompiledHeaderOverride = 1;
	bFasterWithoutUnity = true;

        PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine",  
	"Slate",		"UnrealEd",
	"AnimGraph", 	"BlueprintGraph",
	"InputCore", 	"HTTP", 
	"OnlineSubsystem", "OnlineSubsystemSteam" });
       
		if ((Target.Platform == UnrealTargetPlatform.Win32) || (Target.Platform == UnrealTargetPlatform.Win64))
		{
			DynamicallyLoadedModuleNames.Add("OnlineSubsystemSteam");
			DynamicallyLoadedModuleNames.Add("OnlineSubsystemNull");
		}

		// Don't use a "shared PCH" for game modules because we typically have many private global header files,
		// so we want our own PCH generated for fastest possible compile times
		bAllowSharedPCH = false;
	}
}

#Shootergame Not updated

I cannot refer to Shootergame for this sort of things as it has not been updated yet

#Happy Holidays

Happy Holidays!

Thanks so much for UE4 !!!

tyepicdevsheart.jpg

Rama

#What About Steam?

When I change the config to Use Steam, the client still crashes instantly on load

The server loads steam integration just fine it would seem

[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystem.IpNetDriver")
+NetDriverDefinitions=(DefName="NoSteamNetDriver",DriverClassName="OnlineSubsystem.IpNetDriver",DriverClassNameFallback="OnlineSubsystem.IpNetDriver")

[OnlineSubsystem]
;DefaultPlatformService=Null
DefaultPlatformService=Steam
PollingIntervalInMs=20

#Tried OnlineSubsystemNull

I tried getting the netdriver from OnlineSubsystemNull

but as you can see below,

LogUObjectGlobals:Warning: Failed to load '/Script/OnlineSubsystemNull': Can't find file '/Script/OnlineSubsystemNull'

[2013.12.17-10.30.56:895][   ]LogNet: Browse: 127.0.0.1//Game/Maps/Victory?Name=Player
[2013.12.17-10.30.56:895][   ]LogModuleManager:Warning: ModuleManager: Unable to load module 'RocketEditor-SocketsSTEAM.dll' because the file was not found.
[2013.12.17-10.30.56:896][   ]LogSockets:Warning: Unable to load SocketSubsystem module STEAM
[2013.12.17-10.30.56:896][   ]LogLinker:Warning: Can't find file '/Script/OnlineSubsystemNull'
[2013.12.17-10.30.56:897][   ]LogUObjectGlobals:Warning: Failed to load '/Script/OnlineSubsystemNull': Can't find file '/Script/OnlineSubsystemNull'
[2013.12.17-10.30.56:897][   ]LogUObjectGlobals:Warning: Failed to find object 'Class /Script/OnlineSubsystemNull.IpNetDriver'
[2013.12.17-10.30.56:898][   ]LogNet: CreateNamedNetDriver failed to create driver PendingNetDriver from definition GameNetDriver
[2013.12.17-10.30.56:949][   ]LogWindows:Error: appError called: Assertion failed: NetDriver [File:D:\BuildFarm\buildmachine_++depot+UE4-Rocket+Beta6\Engine\Source\Runtime\Engine\Private\PendingNetGame.cpp] [Line: 38]

Stack:
Address = 0xdb9f3156 (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor-Core.dll]
Address = 0xdb8e345a (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor-Core.dll]
Address = 0xd9eb8321 (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor-Engine.dll]
Address = 0xda0c1d27 (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor-Engine.dll]
Address = 0xd9c1fc27 (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor-Engine.dll]
Address = 0x3f04eeaf (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor.exe]
Address = 0x3f04b312 (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor.exe]
Address = 0x3f04e814 (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor.exe]
Address = 0x3f04e94a (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor.exe]
Address = 0x3f05a73b (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor.exe]
Address = 0x3f05b3ef (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor.exe]
Address = 0x7750652d (filename not found) [in C:\Windows\system32\kernel32.dll]
Address = 0x7763c521 (filename not found) [in C:\Windows\SYSTEM32\ntdll.dll]
Address = 0x7763c521 (filename not found) [in C:\Windows\SYSTEM32\ntdll.dll]

[2013.12.17-10.30.56:950][   ]LogWindows:Error: Windows GetLastError: The operation completed successfully. (0)
[2013.12.17-10.30.57:273][   ]LogWindows: === Critical error: ===
Unhandled Exception: 0x00000001

[2013.12.17-10.30.57:273][   ]LogWindows: Assertion failed: NetDriver [File:D:\BuildFarm\buildmachine_++depot+UE4-Rocket+Beta6\Engine\Source\Runtime\Engine\Private\PendingNetGame.cpp] [Line: 38]

Stack:
Address = 0xdb9f3156 (filename not found) [in C:\Program Files\Rocket\Engine\Binaries\Win64\RocketEditor-Core.dll]

I updated that forum link with the proper answer. The problem is that OnlineSubsystem is no long the home of the net driver class IpNetDriver. It moved to OnlineSubsystemUtils to remove the engine dependency for OnlineSubsystem. You only need on NetDriverDefinition for most purposes, defined as “GameNetDriver”. For Steam it should point to OnlineSubsystemSteam.SteamNetDriver and if you aren’t using Steam it should point to OnlineSubsystemUtils.IpNetDriver.

I’m guessing your modified files didn’t get updated with the release of Beta6.

Looking in your logs, these are the important bits…

[2013.12.17-09.53.04:458][   ]LogUObjectGlobals:Warning: Failed to find object 'Class /Script/OnlineSubsystem.IpNetDriver'
[2013.12.17-09.53.04:458][   ]LogNet: CreateNamedNetDriver failed to create driver PendingNetDriver from definition GameNetDriver

#NVM

I fixed it hee hee

I posted tutorial on Multiplayer Beta6 transition here

its just a config change

http://forums.epicgames.com/threads/976682-Tutorial-Code-Multiplayer-UE4-C-Core-Essentials?p=31734003&viewfull=1#post31734003

defaultengine.ini

[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/OnlineSubsystemUtils.SteamNetDriver",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver")
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/OnlineSubsystemUtils.IpNetDriver",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver")