「Extend App」開発のワークフローと要件
注釈:本資料はAI技術を用いて翻訳されています。
はじめに
AccelByte Gaming Services (AGS) は、プロジェクトを開始するためのExtendアプリテンプレートを提供しています。Extendアプリテンプレートのソースコードは完全にカスタマイズ可能で、GitHubでホストされています。
プロジェクトを開始する際にExtendアプリテンプレートを使用してください。これらは基本的な認証と認可の設定が事前に構成されています。また、アプリテンプレートには、アプリをデプロイする際にメトリクスとログを利用可能にするために必要な特定の計装が含まれています。さらに、gRPCに関する基本的な知識があると、Extendアプリをより深く理解するのに役立ちます。
各タイプのExtendアプリには異なるセットアップと構成手順があり、以下のガイドで個別に文書化されています:
Extendサービスの価格詳細については、Extendアプリ価格ページを参照してください。
上記のガイドに進む前に、AccelByteはこの記事を十分に読むことを強くお勧めします。この記事では、さまざまな開発環境の前提条件をリストし、Extendアプリ開発ワークフローの一般的な概要を提供し、初心者がスムーズに始めるための推奨事項を提供します。
前提条件
Extendアプリは、Linux、Windows(WSL2)、macOSで開発でき、それぞれ以下の一般的な前提条件があります:
- Linux
- Windows (WSL2)
- macOS
以下のツールがインストールされたLinux Ubuntu 22.04:
-
Bash
bash --version
GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)
... -
Make
- Ubuntuリポジトリからインストールするには、
sudo apt update && sudo apt install makeを実行します。
make --version
GNU Make 4.3
... - Ubuntuリポジトリからインストールするには、
-
Docker(Docker Engine v23.0+)
- Ubuntuリポジトリからインストールするには、
sudo apt update && sudo apt install docker.io docker-buildx docker-compose-v2を実行します。 - ユーザーを
dockerグループに追加します:sudo usermod -aG docker $USER。 - ログアウトして再度ログインし、変更を有効にします。
docker version
...
Server: Docker Desktop
Engine:
Version: 24.0.5
... - Ubuntuリポジトリからインストールするには、
以下のツールがインストールされたWindows 11:
-
Docker Desktop v4.30+
- Docker Desktopをインストールしていない場合は、WindowsへのDocker Desktopのインストールに関するDockerのドキュメントに従ってください。
-
bashとmakeがインストールされたWSL2 Ubuntu 22.04。- Bash
bash --version
GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)
...- Make
- Ubuntuリポジトリからインストールするには、
sudo apt update && sudo apt install makeを実行します。
make --version
GNU Make 4.3
... -
WSL2ファイルシステム内のプロジェクトで動作するWindows上の統合開発環境(IDE)、例:Visual Studio Code、JetBrains IDEなど。
- このセットアップでは、AccelByteはExtendアプリテンプレートプロジェクトをクローンし、WSL2ファイルシステム内で完全に作業することを推奨します。これは、Windowsファイルシステムのファイルにアクセスする際のパフォーマンスの低下など、WSL2の制限を回避するためです。
- Extendアプリテンプレートプロジェクトをクローンし、Windowsファイルシステム環境で作業することを好む場合は、以下の制限に注意してください:
- ExtendアプリプロジェクトはWindowsファイルシステムでサポートされていますが、開発に必要な
makeコマンドは依然としてWSL2ターミナルを使用して実行する必要があります。 - Windows上のGitを使用してExtendアプリテンプレートプロジェクトをクローンする場合は、
git config --global core.autocrlfをfalseに設定してください。そうしないと、行末の問題によりmakeコマンドの実行時にエラーが発生する可能性があります(例:$'\r': command not found)。これが発生した場合は、dos2unixなどのツールを使用してこれらのファイル(例:シェルスクリプト(*.sh))を修正できます。 - Windowsファイルシステムのファイルにアクセスする際のパフォーマンスの低下など、WSL2の既知の制限により、
makeコマンドの実行に大幅に時間がかかる場合があります。
- ExtendアプリプロジェクトはWindowsファイルシステムでサポートされていますが、開発に必要な
以下のツールがインストールされたmacOS 14+:
-
Docker Desktop v4.30+
- Docker Desktopをインストールしていない場合は、macOSへのDocker Desktopのインストールに関するDockerのドキュメントに従ってください。
-
Bash
bash --version
GNU bash, version 3.2.57(1)-release (arm64-apple-darwin23)
... -
Make
make --version
GNU Make 3.81
...
Extendアプリ開発ワークフロー
このセクションでは、以下のシナリオにおけるExtendアプリ開発の一般的なワークフローについて説明します:
Dev Containerの完全なウォークスルーについては、Extend Dev Containersを使用した開発を参照してください。
新しいExtendアプリプロジェクトの作成
-
Gitを使用して、Extendアプリテンプレートプロジェクトをローカル開発環境にクローンします。
-
お好みのIDEを使用してプロジェクトを開きます。
-
Extendアプリの
README.mdファイルを開き、各セクションの指示に従います。各ExtendアプリのREADME.mdファイルには、以下のセクションが含まれています:- 前提条件:Extendアプリの前提条件を準備し、完了していることを確認してください。
- セットアップ:このセクションの手順に従って、環境がExtendアプリをビルドおよび開発するための適切なセットアップを持っていることを確認してください。
- ビルド:IDE内でアプリをビルドします。
- テスト:Extendアプリをローカルで実行して、問題があればテストおよびデバッグします。
- デプロイ:AGS Admin PortalからExtendアプリを作成およびデプロイします。
ヒントExtendアプリを初めて開発する場合、AccelByteは、アプリがどのように機能するかを感じるために、アプリテンプレートをそのまま(カスタマイズする前に)実行して探索することをお勧めします。これにより、アプリの機能に慣れ、機能を探索し、プロジェクトに必要なアプリのカスタマイズの量を評価できます。
-
ニーズに合わせてExtendアプリのカスタマイズを開始します。
- gRPC *.protoファイル(必要な場合)
- gRPCメソッドの実装
注記- 一般的に、さらなるカスタマイズが必要でない限り、他のファイルを変更する必要はありません。
- Extendアプリのタイプによって、gRPC *.protoファイルの処理方法が異なります:
- Extend Overrideアプリ:提供されたgRPC *.protoファイルをそのまま(変更なしで)使用します。
- Extend Service Extensionアプリ:必要に応じてgRPC *.protoファイルを変更します。
- Extend Event Handlerアプリ:APIイベントから1つ以上のgRPC *.protoファイルを含めます。
-
アプリをカスタマイズした後、以下を実行します:
- アプリをローカルで実行して、問題があればテストおよびデバッグします。
- AGS Admin Portal内のExtendアプリの詳細を更新して、カスタマイズを反映します。
- ExtendアプリコンテナイメージをAGSにプッシュします。
- AGS Admin PortalからExtendアプリをデプロイします。
既存のプロジェクトを新しいExtendアプリバージョンに適用
-
使用しているExtendアプリテンプレートの新しいバージョンをクローンします。
-
プロジェクトから新しいバージョンのExtendアプリに以下を転送します。
- gRPC *.protoファイル
- gRPCメソッドの実装
- 上記以外のその他の変更(ある場合)
-
Extendアプリをローカルで実行して、問題をテストおよびデバッグします。
Dev Containersを使用した開発(代替ワークフロー)
Dev Containersは、コンテナ化された開発環境を使用する代替の開発アプローチを提供します。このワークフローにより、ローカルマシンに前提条件を手動でインストールおよび構成する必要がなくなります。すべての必要なツールと依存関係がDockerコンテナ内に事前構成されているためです。このアプローチにより、異なるオペレーティングシステムやチームメンバー間で一貫した開発環境が保証されます。
Dev Containersワークフローは、以下の場合に特に有益です:
- すべての開発者間で一貫した開発環境を望むチーム
- 複雑なローカルセットアップを避けたいExtendアプリ開発の初心者
- Linux、Windows、macOSで作業するクロスプラットフォーム開発チーム
- ホストシステムに影響を与えない隔離された開発環境を好む開発者
Dev Containersの前提条件
Extendアプリ開発にDev Containersを使用するには、以下が必要です:
-
Dev Containers拡張機能がインストールされたVisual Studio Code
- Dev Containers拡張機能により、VS CodeがDockerコンテナ内でプロジェクトを開いて作業できるようになります。
- 拡張機能をインストールするには、VS Codeを開き、拡張機能(
Ctrl+Shift+XまたはCmd+Shift+X)に移動し、Dev Containersを検索して、Microsoftが公開している拡張機能をインストールします。
-
Docker Desktop v4.30+
- Docker Desktopがシステムにインストールされ、実行されている必要があります。
- インストール手順については、上記の前提条件セクションを参照してください。これには、プラットフォーム固有のDocker Desktopインストール手順が含まれています。
-
Git
- ExtendアプリテンプレートプロジェクトをクローンするにはGitが必要です。
- Gitは通常、macOSとLinuxにプリインストールされており、Windowsでも利用可能です。
このガイドはDev Containers拡張機能を使用したVisual Studio Codeに焦点を当てていますが、JetBrains IDE(IntelliJ IDEA、GoLandなど)などの他のIDEも、それぞれのプラグインを通じてDev Containersをサポートしています。一般的なワークフローは同様ですが、IDEによって具体的な手順が異なる場合があります。
Dev Containersワークフローの手順
-
Extendアプリテンプレートプロジェクトをクローン
Gitを使用して、Extendアプリテンプレートプロジェクトをローカル開発環境にクローンします。Extendアプリテンプレートには、開発環境を定義するDev Container構成ファイル(通常は
.devcontainer/devcontainer.jsonおよび関連するDocker構成)が含まれています。テンプレート固有のDev Containerサポートについては、Dev Containerサポートマトリックスを参照してください。
git clone <extend-app-template-repository-url>
cd <extend-app-directory> -
VS Codeでプロジェクトを開く
Visual Studio CodeでクローンしたExtendアプリプロジェクトフォルダを開きます。VS Codeはプロジェクト内のDev Container構成ファイルを検出します。
-
コンテナ内でプロジェクトを再度開く
Dev Container構成を持つプロジェクトを開くと、VS Codeはコンテナ内でフォルダを再度開くように促します。次の方法で手動でトリガーすることもできます:
- VS CodeがDev Container構成を検出したときに表示される通知をクリックする
- コマンドパレット(
Ctrl+Shift+PまたはCmd+Shift+P)を使用してDev Containers: Reopen in Containerを選択する - VS Codeの左下隅にある緑色のボタンをクリックして
Reopen in Containerを選択する
その後、VS CodeはDev Containerをビルドして起動します。このプロセスは、ベースイメージをダウンロードして依存関係をインストールするため、初回は数分かかる場合があります。
注記Dev Containerには、事前構成されたすべての必要な開発ツールが含まれています:
- Bashシェル
- Makeビルドツール
- コンテナイメージをビルドするためのDocker(Docker-in-Docker)
- 言語固有の開発ツールと依存関係
- Extend Helper CLI
-
開発環境を確認
コンテナが実行されたら、VS Codeでターミナルを開きます(ターミナル → 新しいターミナル)。ターミナルはDev Container内で実行されます。必要なツールが利用可能であることを確認します:
bash --version
make --version
docker version
extend-helper-cli --helpすべてのコマンドがコンテナ環境内で正常に実行されるはずです。
VS Code構成ファイル
Dev Containersをサポートする Extendアプリテンプレートには、開発体験を向上させるために、.vscodeディレクトリに事前構成されたVS Codeファイルが含まれています:
-
tasks.json:VS Codeのコマンドパレット(Ctrl+Shift+PまたはCmd+Shift+P)から直接実行できる事前定義されたビルドおよび開発タスク。これらのタスクには通常、アプリのビルド、テストの実行、その他の一般的な開発操作が含まれます。これらのタスクにアクセスするには、コマンドパレットを開いてTasks: Run Taskを選択します。 -
launch.json:VS Code内でExtendアプリを直接デバッグできるデバッグ構成。これには、ブレークポイント、変数の検査、ステップスルーデバッグが含まれます。F5キーを押すか、VS CodeのRun and Debugビューを使用してデバッグを開始できます。ヒントこれらの構成ファイルの例については、extend-service-extension-goリポジトリを参照してください:
-
mcp.json:AI駆動の開発支援を提供する事前構成されたModel Context Protocol(MCP)サーバー。これらのMCPサーバーは、コード生成、ドキュメント、その他の開発タスクを支援できます。注記MCPサーバーを使用するには、VS Codeで構成する必要がある場合があります。詳細なセットアップ手順については、VS Code MCPドキュメントおよびMCPサーバーガイドを参照してください。MCP構成ファイルは、Extendアプリテンプレートのmcp.jsonで利用できます。
-
ExtendアプリのREADME指示に従う
Extendアプリの
README.mdファイルを開き、各セクションの指示に従います。Dev Container内のワークフローは、従来のワークフローと同じです:- 前提条件:Dev Containerにはすでにすべての前提条件が含まれているため、手動インストール手順をスキップできます。
- セットアップ:Extendアプリタイプに固有のセットアップ手順に従います。コンテナ環境には、必要なツールがすでに構成されています。
- ビルド:提供されたMakeコマンドまたはビルドスクリプトを使用してアプリをビルドします。
- テスト:コンテナ内でExtendアプリをローカルで実行して、問題をテストおよびデバッグします。
- デプロイ:AGS Admin PortalからExtendアプリを作成およびデプロイします。
ヒントExtendアプリを初めて開発する場合、AccelByteは、アプリがどのように機能するかを感じるために、アプリテンプレートをそのまま(カスタマイズする前に)実行して探索することをお勧めします。これにより、アプリの機能に慣れ、機能を探索し、プロジェクトに必要なアプリのカスタマイズの量を評価できます。
-
Extendアプリをカスタマイズ
ニーズに合わせてExtendアプリのカスタマイズを開始します。カスタマイズプロセスは、従来のワークフローと同じです:
- gRPC *.protoファイルを変更(必要な場合)
- gRPCメソッドを実装
注記- 一般的に、さらなるカスタマイズが必要でない限り、他のファイルを変更する必要はありません。
- Extendアプリのタイプによって、gRPC *.protoファイルの処理方法が異なります:
- Extend Overrideアプリ:提供されたgRPC *.protoファイルをそのまま(変更なしで)使用します。
- Extend Service Extensionアプリ:必要に応じてgRPC *.protoファイルを変更します。
- Extend Event Handlerアプリ:APIイベントから1つ以上のgRPC *.protoファイルを含めます。
-
テストとデプロイ
アプリをカスタマイズした後:
- コンテナ内でアプリをローカルで実行して、問題があればテストおよびデバッグします。
- AGS Admin Portal内のExtendアプリの詳細を更新して、カスタマイズを反映します。
- ExtendアプリコンテナイメージをビルドしてAGSにプッシュします(Dev Container内のDocker-in-Dockerにより、イメージをビルドできます)。
- AGS Admin PortalからExtendアプリをデプロイします。
Dev Containersを使用する利点
- 一貫した環境:すべての開発者が同じ事前構成された環境で作業するため、「私のマシンでは動作する」という問題が減少します。
- 簡素化されたセットアップ:ホストシステムにBash、Make、Dockerなどの前提条件を手動でインストールする必要がありません。
- クロスプラットフォーム互換性:Linux、Windows(WSL2を含む)、macOSで同じ構成でシームレスに動作します。
- 隔離された環境:開発環境がホストシステムから隔離されているため、他のプロジェクトやシステム構成との競合を防ぎます。
- 簡単なリセット:何か問題が発生した場合、ホストシステムに影響を与えることなく、コンテナを簡単に再構築またはリセットできます。
- チームのオンボーディング:新しいチームメンバーは、複雑な環境セットアップなしですぐに開発を開始できます。
Dev Containerのカスタマイズ
Dev Container構成をカスタマイズする必要がある場合(例:追加のツールや環境変数を追加する場合)、Extendアプリプロジェクトの.devcontainer/devcontainer.jsonファイルを変更できます。一般的なカスタマイズには以下が含まれます:
- 追加のVS Code拡張機能の追加
- 環境変数の設定
- 追加のシステムパッケージのインストール
- ポートフォワーディングの構成
Dev Container構成を変更した後、コマンドパレットを使用してDev Containers: Rebuild Containerを選択し、コンテナを再構築します。
Dev Container構成の変更には、コンテナの再構築が必要です。プロジェクトファイルとカスタマイズは、ホストシステムに保存され、コンテナにマウントされるため、コンテナの再構築中も保持されます。
トラブルシューティング
Dev Containersで問題が発生した場合:
- コンテナの起動に失敗する:Docker Desktopが実行されており、十分なリソース(メモリ、CPU)が割り当てられていることを確認してください。
- パフォーマンスが遅い:Docker Desktopの設定で割り当てられたリソースを増やしてください。
- ポートの競合:Extendアプリが使用するポートがホストシステムで既に使用されていないか確認してください。
- 権限の問題:Linuxでは、ユーザーが
dockerグループに属していることを確認してください。WindowsとmacOSでは、Docker Desktopが自動的に権限を処理します。
Dev Containersの詳細については、VS Code Dev Containersドキュメントを参照してください。
次のステップ
Extendアプリプロジェクトの作成とカスタマイズを開始します。以下のガイドを参照してください: