2

I am trying to make the MultiplayerShootout project provided by EpicGames support the steam dedicated servers. But i couldn't manage the FindSessions node to return the dedicated server.

It is told that you can't host a server and a client for steam on the same machine, therefore i am using two computers, in one i start the dedicated server by executing the following bat:

"C:\Epic Games\UE_4.24\Engine\Binaries\Win64\UE4Editor.exe" "ProjectPath\ProjectName.uproject" Level_01 -server -log
pause

It successfully creates advanced session and i can see the server in steam's View-Servers-LAN tab's server list.

From the other computer i launch the packaged build of the game. But it can't find the session. If i use listen server everything works fine. One computer starts the listen server the other finds it and joins. But no luck for the dedicated servers.

I also tried "open 192.68.1.9" (Which is the server's ip) , "open 192.168.1.9:7777" commands in "Execute Console Commands" node and same thing with the public IP too. Also tried open level node with the private and public IP.

But here i am a little confused. This isin't the right way to join right? Find Sessions node should return the server, i shouldn't enter any IP manually.

Am i on the right path? Or totally lost it? Please show me the way.

The configurations i did so far:

I added

bUsesSteam = true;

to the ProjectName.Target.cs

The config files are as follows:

DefaultEngine.ini:

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

[OnlineSubsystem]
DefaultPlatformService=Steam
PollingIntervalInMs=20

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480
GameServerQueryPort=27015
bRelaunchInSteam=false
bVACEnabled=0
GameVersion=1.0.0.0
bAllowP2PPacketRelay=true
P2PConnectionTimeout=90

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName=OnlineSubsystemSteam.SteamNetConnection

[/Script/Engine.PhysicsSettings]
DefaultTerminalVelocity=4000.000000
DefaultFluidFriction=0.300000
bEnableAsyncScene=False
LockedAxis=None
FrictionCombineMode=Average
MaxDepenetrationVelocity=0.000000
bSimulateSkeletalMeshOnDedicatedServer=True
MaxPhysicsDeltaTime=0.033333
bSubstepping=True
bSubsteppingAsync=False
MaxSubstepDeltaTime=0.016667
MaxSubsteps=12
SyncSceneSmoothingFactor=0.000000
AsyncSceneSmoothingFactor=0.990000
InitialAverageFrameRate=0.016667

[/Script/Engine.UserInterfaceSettings]
UIScaleCurve=(EditorCurveData=(Keys=((Time=480,Value=0.444),(Time=720,Value=0.666),(Time=1080,Value=1.0),(Time=8640,Value=8.0))),ExternalCurve=None)
UIScaleCurve=(EditorCurveData=(Keys=((Time=480.000000,Value=0.444000),(Time=720.000000,Value=0.666000),(Time=1080.000000,Value=1.000000),(Time=8640.000000,Value=8.000000))),ExternalCurve=None)

[/Script/Engine.RendererSettings]
r.MobileHDR=True
r.AllowOcclusionQueries=True
r.MinScreenRadiusForLights=0.030000
r.MinScreenRadiusForDepthPrepass=0.030000
r.PrecomputedVisibilityWarning=False
r.TextureStreaming=True
Compat.UseDXT5NormalMaps=False
r.AllowStaticLighting=True
r.NormalMapsForStaticLighting=False
r.GBuffer=True
r.GenerateMeshDistanceFields=True
r.Shadow.DistanceFieldPenumbraSize=0.050000
r.TessellationAdaptivePixelsPerTriangle=48.000000
r.SeparateTranslucency=True
r.CustomDepth=1
r.DefaultFeature.Bloom=True
r.DefaultFeature.AmbientOcclusion=True
r.DefaultFeature.AmbientOcclusionStaticFraction=True
r.DefaultFeature.AutoExposure=True
r.DefaultFeature.MotionBlur=True
r.DefaultFeature.LensFlare=True
r.DefaultFeature.AntiAliasing=2
r.EarlyZPass=3
r.EarlyZPassMovable=False
r.DBuffer=False
r.ClearSceneMethod=1
r.MSAA.CompositingSampleCount=4
r.WireframeCullThreshold=5.000000
UIScaleRule=ShortestSide
UIScaleCurve=(EditorCurveData=(Keys=),ExternalCurve=None)

[/Script/EngineSettings.GameMapsSettings]
EditorStartupMap=/Engine/Maps/Templates/Template_Default
EditorStartupMap=/Game/Maps/Level_01
TransitionMap=
bUseSplitscreen=True
TwoPlayerSplitscreenLayout=Horizontal
ThreePlayerSplitscreenLayout=FavorTop
GameInstanceClass=/Script/Engine.GameInstance
GameInstanceClass=/Game/Blueprints/MyGameInstance.MyGameInstance_C
GameDefaultMap=/Game/Maps/MainMenu.MainMenu
GameDefaultMap=/Game/Maps/MainMenu.MainMenu
GlobalDefaultServerGameMode=None

DefaultGame.ini:

[/Script/EngineSettings.GeneralProjectSettings]
ProjectID=B1E7E17343DD95D5A526BEA810949FA8

[/Script/UnrealEd/ProjectPackagingSettings]
+DirectoriesToAlwaysStageAsUFS=(Path="Engine/Binaries/ThirdParty/Steamworks")

Added steam_api64.dll to the path: packedProjectPath\WindowsNoEditor\Engine\Binaries\ThirdParty\Steamworks\Steamv146\Win64 ( do i need to update this when steam is updated? )

Here are the plugins i added.

plugin1 plugin2 plugin3

Here is the blueprint setup to create dedicated server session located in Level Blueprint of Level_01 which is the level where players fight.

bp1 bp2

AhmetRasitBekar
  • 338
  • 2
  • 12

1 Answers1

0

I have no solution for this since I have the same problem But first I have to say, if you use subsystem steam you can't connect directly via ip. To connect via console command you have to do: open steam.SERVER_ID where the server id is the number showing in the steam server browser under SERVER.

I also have the problem, if I build a dedicated server my client did not find the server through find advanced session.

what so far works is if i run the server through the editor with a shortcut (-log -server) than the client finds the server. but I think this than is also a listen server not a dedicated server.

sandermann
  • 11
  • 2