vshs:GameDev

狙うはグリーンのターゲット

ユーザ用ツール

サイト用ツール


ue5:multiplay:setup

マルチプレイのセットアップ

検証中

要件

  • Steamをターゲットとし、EOSは使わない
  • リッスンサーバー
  • UE5.5
[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/SteamSockets.SteamSocketsNetDriver",DriverClassNameFallback="/Script/SteamSockets.SteamNetSocketsNetDriver")
; 公式Doc通りだと以下
; [/Script/Engine.GameEngine]
; +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
 
[OnlineSubsystem]
DefaultPlatformService=Steam
 
[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480
SteamAppId=480
; GameServerQueryPort=27015
bInitServerOnClient=true
bUsesPresence=true
bUseLobbiesIfAvailable=true
bUseSteamNetworking=true
bAllowP2PPacketRelay=true
 
[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection";

バグ対処

DefaultEngine.ini で bUseLobbiesIfAvailable=true と設定しても、false となる。
JoinSession時に、bUsesPresence と FOnlineSessionSettings::bUseLobbiesIfAvailable

[FOnlineSessionSteam::JoinSession] The values of FOnlineSessionSettings::bUsesPresence and FOnlineSessionSettings::bUseLobbiesIfAvailable are treated as equal and have to match
    UFUNCTION(BlueprintCallable, Category = "VshsSteam|Session")
    static void FixSteamSearchResultFlags(UPARAM(ref) FBlueprintSessionResult& SessionResult);
void UVshsSteamFunctions::FixSteamSearchResultFlags(FBlueprintSessionResult& SessionResult)
{
    FOnlineSessionSearchResult& NativeResult = SessionResult.OnlineResult;
    NativeResult.Session.SessionSettings.bUsesPresence = true;
    NativeResult.Session.SessionSettings.bUseLobbiesIfAvailable = true;
}

おバカ事例

  • Standalone Game で実行して Steamオーバーレイが出るが、セッションを作成できない
    • Play As Listen Server でプレイしていないか?おそらくSteamNetDriver が 同じP2Pポートで2重Listenを試みて失敗
ue5/multiplay/setup.txt · 最終更新: 2025/05/17 15:25 by vshs_admin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki