我正在尝试使 EpicGames 提供的 MultiplayerShootout 项目支持蒸汽专用服务器。但我无法管理 FindSessions 节点以返回专用服务器。
它被告知,你不能在同一台机器上托管服务器和客户端的蒸汽,因此我使用两台计算机,在一个我通过执行以下蝙蝠启动专用服务器:
"C:\Epic Games\UE_4.24\Engine\Binaries\Win64\UE4Editor.exe" "ProjectPath\ProjectName.uproject" Level_01 -server -log
pause
它成功地创建高级会话,我可以看到在蒸汽的 View-Servers-LAN 选项卡的服务器列表中的服务器。
从另一台计算机我启动游戏的打包构建。但它找不到会话。如果我使用 listen server 一切工作正常。一台计算机启动 listen server 另一个找到它并加入。但没有运气的专用服务器。
我还尝试了“打开 192.68.1.9”(这是服务器的 IP),“打开 192.168.1.9:7777”命令在“执行控制台命令”节点和同样的事情与公共 IP 太。
但是这里我有点困惑。这不是正确的加入方式对吗?Find Sessions 节点应该返回服务器,我不应该手动输入任何 IP。
我走对路了吗?还是完全迷路了?请给我指路。
到目前为止我所做的配置:
我添加了
bUsesSteam = true;
到 ProjectName.Target.cs
配置文件如下:
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.UserInteceSettings]
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")
将 steam_api64.dll 添加到路径:packedProjectPath\ WindowsNoEditor\ Engine\ Binaries\ ThirdParty\ Steamworks\ Steamv146\ Win64(当蒸汽更新时,我需要更新这个吗?)
这是我添加的插件。
这是蓝图设置,用于创建位于 Level_01 的 Level 蓝图中的专用服务器会话,这是玩家战斗的级别。
我没有这个解决方案,因为我有同样的问题,但首先我不得不说,如果你使用子系统蒸汽,你不能直接通过 IP 连接。要通过控制台命令连接,你必须做:open steam.SERVER_ID
其中服务器 ID 是在 SERVER 下的 steam 服务器浏览器中显示的数字。
我也有问题,如果我建立一个专用的服务器,我的客户端没有通过查找高级会话找到服务器。
到目前为止的工作原理是,如果我用快捷方式(-log-server)通过编辑器运行服务器,而不是客户端找到服务器。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(11条)