トイロジック、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』のインゲームにおけるサーバー/クライアントのプレイヤー同期管理システムについて」トイログ

関連記事

Unreal Engine 5.4.1がリリース。新機能「Modular Control Rig」の改善、MSVCの不正利用時にエラーが検出されない不具合などが修正
2024.05.02
UE5.4の実験的機能「Motion Design」の公式チュートリアル記事が公開。モーショングラフィックスの作り方を学べる
2024.05.01
Epic Games、NaniteとGPU駆動のマテリアルパイプラインの関連を解説した「GDC 2024」の講演資料を公開。ノート付スライド資料は無料
2024.04.30
Unreal Engine 5.4がリリース。アニメーション関連の新機能「Modular Control Rig」の追加、「Motion Matching」の正式リリースなど
2024.04.24
UE6にはフォートナイト用の言語「Verse」が導入される?GDC 2024のVerse講演から見るアンリアルエンジンの今後
2024.04.22
オーディオミドルウェア「Wwise」のサウンドをUnreal Engineで再生。「書かれた通りに設定すれば必ず動作する」ガイド、Audiokineticが公開
2024.04.18

注目記事ランキング

2024.04.30 - 2024.05.07
1
【2022年5月版】今から始めるフォートナイトの「クリエイティブ」モードープレイ開始から基本的な操作方法まで解説
2
『フォートナイト』で動く本格的なゲームが作れるツール「UEFN」とは?従来のクリエイティブモードから進化したポイントを一挙紹介!
3
フォートナイト クリエイティブとUEFNで使える仕掛け一覧
4
【CHALLENGE1】「クリエイター ポータル」を使って、UEFNで作成した島を世界中に公開する
5
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.5「島の設定」
6
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.1「アイテム系」
7
まるで『マイクラ』?ボクセル地形を生み出す無料アセット「VoxelPlugin Free」で”地形を掘ったり積み重ねたり”して遊んでみよう
8
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.7「NPC系」Part1
9
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.2「ユーティリティ系」
10
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.3「プレイヤー系」
11
「UEFN」って実際どうなの? 編集部が3時間で「みんなで遊べるアクションゲーム(?)」を作ってみた
12
フォートナイトとUEFNがv29.30にアップデート。すでに公開した島をプレイできないようにする機能が導入される
13
【CHALLENGE3】UEFNの機能「ランドスケープ」を使ってオリジナルの地形を作る
14
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.4「ゲームシステム系」
15
【STEP2】UEFNの基本的な使い方を覚えよう
16
【CHALLENGE2-1】フレンドと一緒にゲームを作ろう――UEFNプロジェクトをチームメンバーとリアルタイムで共同編集する
17
フルカラー書籍「UEFN(Unreal Editor For Fortnite)でゲームづくりを始めよう!」、ついに本日発売!全国書店で好評発売中!
18
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.8「ゾーン系」
19
UEFNで使えるプログラミング言語「Verse」のノウハウが集結。『UEFN.Tokyo 勉強会 03 Verse Night』レポート
20
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.10「UI系」Part1
21
『フォートナイト』で建築ビジュアライゼーション!?UEFNでオリジナルの世界観をどう作り上げたか、その手法を解説【UNREAL FEST 2023 TOKYO】
22
【STEP5-1】スタート時のカウントダウンを作る
23
【STEP3】オリジナルのアスレチックコースを作ろう
24
フォートナイトとUEFNがv26.30にアップデート。ロビー画面が一新され、クリエイターが島ごとにロビー背景を自由にカスタムできるように
25
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.7「NPC系」Part2
26
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.10「UI系」Part2
27
フォートナイトとUEFNがv29.20にアップデート。見下ろし視点でもプレイヤーキャラクターの向きを操作できるようになった
28
【STEP6-1】「オリジナルキャラクターを登場させよう」――Fabでアセットをダウンロードしよう
29
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.9「建築物系」Part2
30
フォートナイト クリエイティブとUEFNで使える仕掛け一覧 Vol.6「チーム・対戦系」Part1
VIEW MORE

イベントカレンダー

VIEW MORE

今日の用語

プロパティ(Property)
プロパティ 英語で「資産」や「属性」を意味する。 一般的に対象の持つ属性・性質などを表す。例えば、画像ファイルにおける、容量やファイル形式、解像度などの情報。 3DCGツールやゲームエンジンにおいては、各オブジェクトのふるまいを決める個別の設定項目を示すことが多い。
VIEW MORE

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