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:
GameName=MultiplayerShootout
[/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
Here are the plugins i added.
Here is the blueprint setup to create dedicated server session located in Level Blueprint of Level_01 which is the level where players fight.