Steam Socket の使用

Unreal Engine プロジェクトの Steam ネットワーク プロトコル レイヤーを有効にする方法について説明します。

前提トピック

このページは以下のトピックへの知識があることを前提にしています。まず以下のトピックの内容についてご確認をお願いします。

Unreal Engine 4.27.0 では、FUniqueNetIdSteam 構造体の問題により Steam Socket が正常な接続が確立できませんでした。この問題については、4.27.2 以降で修正されています。

Steam Sockets は、Steamworks SDK バージョン 1.46 として Unreal Engine がサポートする新しい Steam ネットワーク プロトコル レイヤーを利用するネットワーキング プラグインです。

Steam Sockets は、リッスン サーバーのための ping 計算 も行います。ping 計算をマッチメイキング システムで使用することで、ユーザーをより優れたパフォーマンスのサーバーにマッチさせることができます。ユーザーがサーバーに接続されるまで ping 計算を提供できなかった SteamNetworking から大幅に改善されました。

Steam Sockets は、Unreal Engine のデフォルトのネット ドライバーではなく独自のネット ドライバーを使用しており、Steam Sockets を有効にして作成されたビルドは、Steam Sockets を使用する他のビルドとのみ接続できます。また、Steam ソケット ビルドでは、Windows、Mac、および Linux 間ではクロスプラットフォーム プレイをサポートできますが、その他のデバイスではサポートできません。

Steam Sockets プラグインを有効にする

Windows、Mac、および Linux ベースのビルドで Steam Sockets を有効にするには、次の手順に従います。

  1. Unreal Editor でプロジェクトを開いて、[Edit (編集)] > [Plugins (プラグイン)] をクリックします。

  2. [Plugins (プラグイン)] メニューで、[Built-in Plugins (ビルトイン プラグイン)][Networking (ネットワーキング)] プラグイン グループをクリックします。

  3. [Steam Sockets] プラグインを見つけて、[Enabled (有効化)] をオンにします。この変更を反映するには Unreal Editor を再起動する必要があります。

Steam Sockets Plugin

  1. Steam Sockets プラグインを使用する各プラットフォームの 「Engine.ini」 ファイルを開き、SteamSockets.SteamSocketsNetDriver を使用するように Net Driver Definitions を変更します。例として、Windows ビルド向けの Steam Sockets を有効にする場合、「WindowsEngine.ini」 に次を追加します。

WindowsEngine.ini

[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/SteamSockets.SteamSocketsNetDriver",DriverClassNameFallback="/Script/SteamSockets.SteamNetSocketsNetDriver")

Windows、Mac、および Linux 以外のデバイス向けのビルドでは、パッケージ化の前に Steam Sockets が取り除かれて、UE4 の標準のネットワーク プロトコルがデフォルトとして設定されます。

Windows 上の Oculus ストアなど、これらのいずれかの OS で Steam 外のプラットフォームをターゲットにしている場合、そのビルドは依然として Steam のネット ドライバーでパッケージ化されますが、このネット ドライバーはそのプラットフォームに対して正しく設定されません。この問題には、さまざまな PC ベースのプラットフォーム向けに配布されるビルドに合わせてプロジェクトを適宜構成することで対処する必要があります。

Steam Sockets 機能を使用する

Steam Sockets は、大規模な機能の有効/無効を切り替えるためのコンフィグ パラメータを使用してカスタマイズできます。

OnlineSubsystemSteam.bUseSteamNetworking は、SteamSockets SocketSubsystem がデフォルトのサブシステムであるかどうかを制御します。このパラメータは、デフォルトでは「true」に設定されています。ほとんどのプロジェクトでは、この設定を変更する必要はありません。この設定は、主に、以前の SteamNetworking プロトコルから移行するデベロッパー向けの下位互換性オプションとして利用できます。

OnlineSubsystemSteam.bAllowP2PPacketRelay では、専用サーバーを使用するときにパケットが Steam 通信ネットワークを介してトンネル処理を行う必要があるかどうかを制御します。このパラメータは、デフォルトでは「true」に設定されています。この設定を無効にすると、専用サーバーは接続アドレスを直接公開し、カスタム実装を有効にします。この設定を有効にすると、専用サーバーが Steam リレー ネットワークを介して機能し、DDoS 攻撃から保護され、セキュリティが向上します。P2P リッスン サーバーは、この設定に関係なく、常に Steam 通信ネットワークを使用します。

ping 計算などのその他の機能は、UE4 の既存のネットワーク インターフェースを通じて提供されます。

Steamworks SDK の詳細については、Valve の公式ドキュメントを参照してください。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル