トイロジック、UE4のRPC関数をベースにしたプレイヤー同期処理を解説。大規模オンラインゲーム『FOAMSTARS』に導入した管理の仕組み

トイロジック、UE4のRPC関数をベースにしたプレイヤー同期処理を解説。大規模オンラインゲーム『FOAMSTARS』に導入した管理の仕組み

2024.04.26
ニュースアンリアルエンジンネットワーク
この記事をシェア!
Twitter Facebook LINE B!
Twitter Facebook LINE B!

この記事の3行まとめ

  • トイロジック、「『FOAMSTARS』のインゲームにおけるサーバー/クライアントのプレイヤー同期管理システムについて」と題した記事を公開
  • UE4に搭載された自動同期システムをベースに、デフォルト処理で対処できない不具合を解消する仕組みを解説
  • データの受信時間を構造体に記録して時系列を管理する方法も紹介

トイロジックは2024年4月25日(木)、「『FOAMSTARS』のインゲームにおけるサーバー/クライアントのプレイヤー同期管理システムについて」と題した記事を、同社の技術開発ブログ「トイログ」にて公開しました。

本記事は、『FOAMSTARS』に実装されたネットワークプレイヤー同期の管理システムについて解説したものです。

(画像はトイログより引用)

記事中では、UE4にデフォルトで搭載されている自動同期システムをベースにしつつ、デフォルトの処理だけでは対処できない不具合を解消して管理する手法について述べています。

UE4においては、「RPC(リモートプロシージャーコール)関数」と呼ばれる同期呼び出し関数を使用できます。これにより、サーバーがロビーというレベルで起動済みの状態だと、プレイヤーがサーバーに参加した際に、該当プレイヤーに対してクライアント上で初期化を行おうとします。

UE4に搭載された自動同期システムによりRPC関数を使用できる(画像はトイログより引用)

ところが、サーバーにプレイヤーの参加通知が来ている段階でクライアント側にRPC送信を行うと、関数呼び出しやパラメーターの同期などの準備が整っておらず、不具合が生じる可能性があります。

それらの不具合を解決するため、『FOAMSTARS』では、クライアントからサーバーに同期や準備段階などの情報を送信する「CSNotify(ClientStateNotify)」という仕組みが導入されています。これにより、サーバーは全てのクライアントの同期状況などを管理できます。

「CSNotify」の定義と送受信処理(画像はトイログより引用)

記事中では、通信頻度が多い場合は通信負荷の低い型を使用することを推奨しています。

また、「CSNotify」は機能を拡張することができます。記事中では、情報の受信時間などを構造体に格納することで時系列を管理する方法が紹介されています。

データを受信した時間などを記録し格納する構造体(画像はトイログより引用)

詳細はトイログのブログ記事をご確認ください。

「『FOAMSTARS』のインゲームにおけるサーバー/クライアントのプレイヤー同期管理システムについて」トイログ

関連記事

GameMakerでオンラインマルチプレイ実装用のミドルウェア「Photon」が利用可能に。YoYo Gamesが公式拡張機能をリリース
2026.07.17
【今週末開催】UE5のゲーム制作コンテスト「第26回UE5ぷちコン」に向けたゲームジャムが開催!参加者を募集中
2026.07.16
Epic Gamesのマーケットプレイス「Fab」、7/28(火)までの期間限定で無料コンテンツを公開。スタイライズな村を作れる環境アセットなど3製品
2026.07.15
ニンテンドーシステムズ、社内CI/CD基盤の構築・運用体制を紹介。GitHub ActionsのSelf-hosted Runner導入事例を解説した「SRE NEXT 2026」講演資料が公開
2026.07.15
陶芸体験ゲーム『陶(とう)』はClaude Codeと一緒に開発。2日でAIがコアを実装し、自身はUI設計やBP制御の映像演出に集中【第25回UE5ぷちコン受賞者インタビュー】
2026.07.14
UE5.7でMoverとMotion Warpingを併用する手法、アドグローブがブログで解説。C++/ブループリント双方での実装例を紹介
2026.07.13

注目記事ランキング

2026.07.11 - 2026.07.18
VIEW MORE

連載・特集ピックアップ

イベントカレンダー

VIEW MORE

今日の用語

パッケージ化
パッケージカ ゲーム開発において、ゲームの実行に必要なデータのみを、実行ファイルとそれに付随するデータの形式に変換すること。プラットフォームに合わせたファイルフォーマットに変換するほか、この段階でアセットファイルを再利用や改ざんすることができないように暗号化することが多い。
VIEW MORE

Xで最新情報をチェック!