メインコンテンツまでスキップ

仕組み

Last updated on February 4, 2026

注釈:本資料はAI技術を用いて翻訳されています。

はじめに

この記事では、Byte Warsの仕組みについて技術的な概要を説明します。

Byte Warsの構造

Byte Warsの構造は、相互に接続された複数のコンポーネントで構成されており、依存関係を形成しています。以下の図で確認できます。

コアゲーム

コアゲームは、ゲームの基盤を含むByte Warsのベースです。このベースゲームには、ゲームプレイ、基本的なネットワーキング、および基本的なマルチプレイヤー機能が含まれています。以下のリポジトリで利用できます。

チュートリアルモジュール

チュートリアルモジュールには、AccelByteプラグインを使用してByte WarsのベースゲームとAccelByte Gaming Services(AGS)の機能を統合するコンポーネントが含まれています。これらのチュートリアルモジュールは、Access、Play、Social、Engagement、Storageなど、AGSのサービスタイプに基づいてグループ化されています。

チュートリアルモジュールは、別のチュートリアルモジュールの依存関係になることがあります。例えば、統計機能を統合するには、まずログイン機能が必要なため、Accessグループのチュートリアルモジュールが、Storageグループのチュートリアルモジュールの依存関係になります。

ヒント

各チュートリアルモジュールの依存関係を確認するには、Tutorial Module Managerセクション(Unreal EngineまたはUnity)で説明されているTutorial Module Dependenciesの値を確認してください。

さらに、チュートリアルモジュールには、DefaultモードとStarterモードの2つのモードがあります。これらのモードは、Tutorial Module Managerを通じて設定できます。

  • Defaultモード:このモードでは、チュートリアルモジュール内のAGS機能の統合が完了しています。したがって、開発者は調整を行う必要がありません。
  • Starterモード:このモードでは、チュートリアルモジュール内のAGS機能の統合が完了していません。このモードは、Byte Warsチュートリアルに沿って進めるために使用され、開発者が機能をゼロから統合できるようにします。

各チュートリアルモジュールには、以下の主要なコンポーネントがあります。

  • ユーザーインターフェース(UI):チュートリアルモジュールで使用されるUIファイルが含まれています。Starterモードがアクティブな場合、チュートリアルモジュールで使用されるファイルは、_Starterサフィックスが付いたものです。
  • モジュールラッパー:AGS機能をByte Warsと統合し、UI(該当する場合)と接続するラッパーコードを含むファイルで構成されています。Starterモードがアクティブな場合、チュートリアルモジュールで使用されるファイルは、_Starterサフィックスが付いたものです。

Byte Warsには、ベースゲーム、チュートリアルモジュール、およびAccelByteプラグインが含まれており、以下のリポジトリで利用できます。

ゲーム内ユーティリティ

ゲーム内ユーティリティは、Byte Warsで使用されるコンポーネントです。これらのユーティリティは、以下の主要な部分で構成されています。

UIマネージャー

このユーティリティは、Byte WarsのUIを管理する役割を担っています。チュートリアルモジュールがアクティブかどうか、Starterモードがアクティブかどうか、AGS Admin Portalで設定が行われているかどうかなど、特定の条件に基づいてUI要素をアクティブ化および非アクティブ化できます。

アセットマネージャー

このユーティリティは、Byte Warsのアセットを管理する役割を担っています。チュートリアルモジュールがアクティブかどうか、チュートリアルモジュールのStarterモードがアクティブかどうか、Admin Portalで設定が行われているかどうかなど、特定の条件に基づいてアセットをアクティブ化および非アクティブ化できます。

Tutorial Module Manager:Unreal Engine

このユーティリティは、チュートリアルモジュールで使用される設定を管理する役割を担っています。Unreal Engine Byte Warsの場合、チュートリアルモジュールの管理は、Tutorial Module Data Assetと呼ばれるアセットによって制御されます。このTutorial Module Data Assetには、以下の設定が含まれています。

Byte Wars Unreal Tutorial Module Data Asset

  • Code Name:チュートリアルモジュールの識別子として使用される一意の文字列。
  • Tutorial Module(Defaultモード)
    • Default UI Class:Defaultモードがアクティブなときにチュートリアルモジュールで使用されるメインUI。
    • Default Subsystem Class:Defaultモードがアクティブなときにチュートリアルモジュールで使用されるメインモジュールラッパー。
    • Is Active:このトグルがオンの場合、チュートリアルモジュールがアクティブになり、Defaultモードが使用されます。このトグルがオフの場合、チュートリアルモジュールは非アクティブになります。
  • Tutorial Module Starter(Starterモード)
    • Starter UI Class:Starterモードがアクティブなときにチュートリアルモジュールで使用されるメインUI。
    • Starter Subsystem Class:Starterモードがアクティブなときにチュートリアルモジュールで使用されるメインモジュールラッパー。
    • Is Starter Mode Active:このトグルがオンの場合、StarterモードがアクティブになりDefaultモードを上書きします。このトグルがオフの場合、Defaultモードが使用されます。
  • Tutorial Module Dependencies:特定のチュートリアルモジュールの依存関係となるチュートリアルモジュールのリスト。依存関係リスト内のいずれかのチュートリアルモジュールが非アクティブの場合、それに依存するチュートリアルモジュールは自動的に非アクティブになります。

Unreal Byte Warsチュートリアルに沿って進めるには、開発者は上記のTutorial Module Data Assetを通じてStarterモードをアクティブ化する必要があります。

さらに、開発者は以下のコードをConfig/DefaultEngine.iniファイルに追加して、チュートリアルモジュールを強制的にアクティブ化する必要があります。

[AccelByteTutorialModules]
+ForcedEnabledModules=TutorialModule:TUTORIALMODULECODENAME_1
+ForcedEnabledModules=TutorialModule:TUTORIALMODULECODENAME_2
+ForcedEnabledModules=TutorialModule:TUTORIALMODULECODENAME_3
ForceDisabledOtherModules=false
ヒント

各チュートリアルモジュール固有の設定コードは、各モジュールの前提条件で提供されています。Starterモードを有効にするリマインダーも、各チュートリアルモジュールで言及されています。

Tutorial Module Manager:Unity Engine

このユーティリティは、チュートリアルモジュールで使用される設定を管理する役割を担っています。Unity Byte Warsの場合、チュートリアルモジュールの管理は、Tutorial Module Dataと呼ばれるScriptable Objectによって制御され、以下の設定が含まれています。

Byte Wars Unity Tutorial Module Data

  • Type:チュートリアルモジュールの識別子として使用される一意のタイプ。
  • Tutorial Module(Defaultモード)
    • Default Menu UI Prefab:Defaultモードがアクティブなときにチュートリアルモジュールで使用されるメインUI。
    • Default Module Script:Defaultモードがアクティブなときにチュートリアルモジュールで使用されるメインモジュールラッパー。
    • Is Active:このトグルがオンの場合、チュートリアルモジュールがアクティブになり、Defaultモードが使用されます。このトグルがオフの場合、チュートリアルモジュールは非アクティブになります。
  • Tutorial Module Starter(Starterモード)
    • Starter Menu UI Prefab:Starterモードがアクティブなときにチュートリアルモジュールで使用されるメインUI。
    • Starter Module Script:Starterモードがアクティブなときにチュートリアルモジュールで使用されるメインモジュールラッパー。
    • Is Starter Active:このトグルがオンの場合、StarterモードがアクティブになりDefaultモードを上書きします。このトグルがオフの場合、Defaultモードが使用されます。
  • Tutorial Module Dependencies:特定のチュートリアルモジュールの依存関係となるチュートリアルモジュールのリスト。依存関係リスト内のいずれかのチュートリアルモジュールが非アクティブの場合、それに依存するチュートリアルモジュールは自動的に非アクティブになります。

Unity Byte Warsで利用可能なチュートリアルに沿って進めるには、開発者は上記で説明したTutorial Module Data Assetを通じてStarterモードをアクティブ化する必要があります。

さらに、開発者は以下のコードをAssets/Resources/Modules/TutorialModuleConfig.jsonファイルに追加して、チュートリアルモジュールを強制的にアクティブ化する必要があります。

{
"enableModulesOverride": true,
"forceEnabledModules": ["TutorialModuleType_1", "TutorialModuleType_2", "TutorialModuleType_3"],
"forceDisabledOtherModules": false
}
ヒント

各チュートリアルモジュール固有の設定コードは、各モジュールの前提条件で提供されています。Starterモードを有効にするリマインダーも、各チュートリアルモジュールで言及されています。

AccelByteプラグイン

AccelByteプラグインは、AGS機能をByte Warsに統合するために使用されます。以下は、サポートされているゲームエンジンに基づいてByte Warsで使用されるプラグインのリストです。