この記事の3行まとめ
トイロジックは2024年4月25日(木)、「『FOAMSTARS』のインゲームにおけるサーバー/クライアントのプレイヤー同期管理システムについて」と題した記事を、同社の技術開発ブログ「トイログ」にて公開しました。
本記事は、『FOAMSTARS』に実装されたネットワークプレイヤー同期の管理システムについて解説したものです。
記事中では、UE4にデフォルトで搭載されている自動同期システムをベースにしつつ、デフォルトの処理だけでは対処できない不具合を解消して管理する手法について述べています。
UE4においては、「RPC(リモートプロシージャーコール)関数」と呼ばれる同期呼び出し関数を使用できます。これにより、サーバーがロビーというレベルで起動済みの状態だと、プレイヤーがサーバーに参加した際に、該当プレイヤーに対してクライアント上で初期化を行おうとします。
ところが、サーバーにプレイヤーの参加通知が来ている段階でクライアント側にRPC送信を行うと、関数呼び出しやパラメーターの同期などの準備が整っておらず、不具合が生じる可能性があります。
それらの不具合を解決するため、『FOAMSTARS』では、クライアントからサーバーに同期や準備段階などの情報を送信する「CSNotify(ClientStateNotify)」という仕組みが導入されています。これにより、サーバーは全てのクライアントの同期状況などを管理できます。
記事中では、通信頻度が多い場合は通信負荷の低い型を使用することを推奨しています。
また、「CSNotify」は機能を拡張することができます。記事中では、情報の受信時間などを構造体に格納することで時系列を管理する方法が紹介されています。
詳細はトイログのブログ記事をご確認ください。
「『FOAMSTARS』のインゲームにおけるサーバー/クライアントのプレイヤー同期管理システムについて」トイログ