テラボブログ

[技術記事]Godot Engineでオンラインマルチプレイを実装する方法

2025年10月1日

概要

この記事では、ゲームエンジン Godot Engine を用いて、オンラインマルチプレイを実装する方法を解説します。

Godot Engine単体の機能で実現できるローカルマルチプレイ(同一Wi-Fi上での通信)とは異なり、Epic Gamesが提供する EOS (Epic Online Services) と連携することで、世界中のプレイヤーと通信可能な本格的なオンラインマルチプレイを実現します。

基本的な機能は無料で利用でき、例えば友人同士で遊ぶだけであれば、費用はかかりません。環境構築も1〜2時間ほどで完了するため、比較的気軽に導入できるのが特徴です。

※ 本記事は、本校で作成されたテキストを許可のもとで一部公開したものです。都合により、予告なく非公開とする可能性があります。
※ ゲームを全世界に一般公開(有償配布など)する場合、年間3000〜5000円程度のドメイン費用などが別途必要になる場合があります。

必要物

「必須」
・PC(windows11推奨、多少スペックが低くても動きます)
・自身のメールアドレス
・自身のメールを受信できるデバイス

「オンライン通信を試す場合」
・2つ目のメールアドレス
・もう1台のPC
・別のネットワーク環境(スマートフォンのテザリングでも可)

※ 未成年の方が作業する場合、保護者の同意が必要になることがあります。本記事では、作業者が成年であることを前提として進めます。

想定読者

・Godot Engineで簡単なゲームを制作した経験がある方

・Godot Engineのローカルマルチプレイ機能を試したことがある方

・オンラインマルチプレイに挑戦したいが、情報収集に手間取っている方


A.Epic Gamesアカウントの作成

まず、EOSを利用するために必要なEpic Gamesの開発者アカウントを作成します。

Epic Developer Community にアクセスします。

②画面右上の「サインイン」をクリックします。

③表示された画面下部の「アカウント作成」をクリックします。

④「これらのゲームをプレイしたことがありますか?」という質問に対し、今回は新規作成のため「X」を選択します。

⑤生年月日を入力します。

⑥メールアドレスを入力し、「続ける」をクリックします。名前、パスワード、ディスプレイネームの入力が求められます。

名前: ご自身の名前を入力します。

・パスワード: 任意のパスワードを設定します(忘れないように必ずメモしてください)。

・ディスプレイネーム: 文字化けを防ぐため、半角英数字で入力してください。

⑦利用規約のチェックボックスにチェックを入れ、「続ける」をクリックします。

⑧登録したメールアドレスにセキュリティコードが届きます。画面に入力し、「続ける」をクリックしてください。

⑨外部アカウントとのリンク画面が表示されますが、今回は使用しないため、そのままスキップして完了します。

これでアカウント作成は完了です。


B.Epic Developer Portalの設定

次に、開発の拠点となる「組織」と、ゲームプロジェクトにあたる「製品」を作成し、各種設定を行います。

①画面右上の「Dev Portal」をクリックして、デベロッパーポータルに移動します。

②「組織を作成」ページで任意の組織名を入力し、「組織を作成」ボタンを押します。

③組織名は日本語も可能ですが、将来的にグローバルに活動する可能性を考慮し、英数字での命名をおすすめします。

④組織が作成されると、デベロッパーポータルに入れます。

⑤最初にチュートリアルが表示されるかもしれませんが、スキップして構いません。

⑥左側メニューの下にある「+ 製品を作成」ボタンをクリックします。

⑦任意の製品名(ゲーム名)を記入し、「作成」ボタンを押します。こちらも組織名と同様、英数字での命名を推奨します。

⑧製品作成後、左側メニューの「組織」をクリックします。

⑨中央のメニューから「契約」を選択します。

⑩表示されている複数の契約に同意していきます。各契約の「確認して同意」を押し、契約書を最後までスクロールします。

⑪すると承諾ボタンが押せるようになります。表示されている全ての契約に同意してください。

⑫現状ある契約すべてに同意できていたらOKです。

⑬契約同意後、左側メニューから先ほど作成した自身の製品をクリックします。

⑭製品画面の左側メニューから「製品設定」を開きます。

⑮中央のメニューから「クライアント」を選択します。

⑯「新規クライアントを追加」ボタンを押します。

⑰「クライアント名」には「(ゲーム名)+ Client」のように分かりやすい名前を入力します。

⑱「新規クライアントポリシーを追加」ボタンを押します。

⑲ポリシー名は、「Game名+Policy」のように入力します。

⑳ポリシーの種類は、Peer to Peerを選択します。

㉑ポリシーを追加し、その後クライアントを追加します。

㉒クライアント追加後、左側のメニューから、自身の作成した製品をクリックします。

㉓左側メニューから「Epicアカウントサービス」をクリックします。

㉔「+アプリケーションを追加」ボタンを押します。

㉕上部のタブから「アクセス許可」を選択し、「Online Presence」と「Friends」を有効にして、変更を保存します。

㉖「リンク済みのクライアント」タブを選択し、先ほど作成したクライアントにチェックを入れて、変更を保存します。

㉗中央と右の項目に ✅ が付いていることを確認し、前のページに戻ります。

㉘製品画面の左側メニューから「Epic Games Store」をクリックします。

㉙組織設定の更新を求められるので、「組織を更新して続行」を押します。

㉚組織の画面に戻り、左側メニューから「組織」→ 中央メニューから「契約」を選択します。

㉛同意すべき契約項目が増えているので、手順⑩と同様に、すべてに同意してください。


C.各種ダウンロードなど

次に、Godot Engine本体とEOS連携用のアドオンなどをダウンロードし、プロジェクトフォルダを準備します。

①今後の作業でダウンロードするファイルをまとめるためのフォルダをPC内に作成します。

②例えば「Game名+フォルダ」などの名前にしたフォルダを作成し、ドキュメントなどに置いておき、これらダウンロードするものはそこにまとめて入れていきましょう。以降、このフォルダを「作業フォルダ」と呼びます。

③Epic Developer Portalのダッシュボード画面にある「ダウンロード」から、「C SDK」のバージョン 1.17.0 を選択してダウンロードします。

④ダウンロードしたZIPファイルを、作業フォルダ内に展開(解凍)します。

Godot Engineの公式サイト から、バージョン 4.1.1 Stable をダウンロードします。

⑥ダウンロードしたZIPファイルを、作業フォルダ内に展開します。

EOS Godot Pluginのリリースページ にアクセスし、バージョン 2.2.2Source code (zip) をクリックしてダウンロードします。

⑧ダウンロードしたZIPファイルを、作業フォルダ内に展開します。

⑨再度 EOS Godot Pluginのリリースページ にアクセスし、バージョン 2.2.2epic-online-services-godot-windows.zip をダウンロードします(ファイル名に windows が含まれていることを確認してください)。

⑩ダウンロードしたZIPファイルを、作業フォルダ内に展開します。

作業フォルダを開き、今後の作業がしやすいようにファイル整理と名称変更を行います。

・Samples フォルダと ThirdPartyNotices.txt ファイルは不要なため削除します。

epic-online-services-godot-2.2.22.2.2 に変更

・epic-online-services-godotgodot-windows に変更

⑫SDKフォルダ内にある Bin フォルダをコピー(Ctrl + C)します。

⑬その後、「2.2.2」→「sample」→「addons」→「epic-online-services-godot」の順に開いていき、そこにある「bin」フォルダを選択し、「Ctrl + V」でペーストします。「bin」の中身が以下のようになっていたら成功です。

⑭作業フォルダに戻り、「godot-windows」→「addons」→「epic-online-services-godot」→「bin」の順に開いていき、「windows」を選択し、「Ctrl + C」でコピーします。

⑮作業フォルダから、「2.2.2」→「sample」→「addons」→「epic-online-services-godot」→「bin」の順に開いていき、その中に「Ctrl + V」で貼り付けを行い、「windows」フォルダを追加します。

⑯binフォルダ内が以下のようになっていれば成功です。

⑰作業フォルダに戻り、「2.2.2」を開きます。そこにあるsampleフォルダを選択し、「Ctrl + C」でコピーします。

⑱作業フォルダのトップにペーストし、フォルダ名を自身のゲーム名(例: TestGodotGame)に変更します。このフォルダがGodotのプロジェクトフォルダになります。


D.Godotプロジェクトの設定とコード修正

いよいよGodot上でプロジェクトを開き、オンライン接続に必要な情報をコードに書き込んでいきます。

①Cで用いたフォルダから、Godot_v4.4.1-stable_win64.exeを開きます。

②プロジェクトマネージャー画面の左上にある「インポート」を選択します。

③「作業フォルダ」→「自身のゲーム名のフォルダ」→「project.godot」を選び、開く→インポートを押します。

④プロジェクトが開きます。いくつかエラーが表示される場合がありますが、この段階では問題ありません。

⑤メニューバーから「プロジェクト」→「プロジェクト設定」を開き、「一般」タブの「アプリケーション/構成/名前」を自身のゲーム名に変更します。

⑥試しに実行し、「Trying to assign value of type ‘Nil’ to a variable of type ‘String’.」というエラーが出て止まるのであれば、順調です。(違うエラーが出た場合、上手くいってないかもしれません。)

⑦先ほどエラーが出た部分(Main.gdの3-11行目)を修正します。

Epic Developer Community にアクセスし、Dev Portalを開きます。

⑨左側メニューから自身の製品を選択し、再度左側メニューから「製品設定」を開くと、認証情報が表示されます。

⑩以下の対応関係に従って、Main.gd の該当する文字列をそれぞれコピー&ペーストしてください。

・CLIENT_SECRET ← クライアントシークレット
・PRODUCT_ID ← 製品ID
・SANDBOX_ID ← サンドボックスID
・DEPLOYMENT_ID ← デプロイメントID
CLIENT_ID ← クライアントID

⑪なお、サンドボックスIDとデプロイメントIDは、複数あるうち「Dev」と記載されているものをコピーしてください。

PRODUCT_NAME には自身のゲーム名を英語で、PRODUCT_VERSION には "1.0" と入力します。

ENCRYPTION_KEY には64桁のランダムな16進数文字列が必要です。乱数生成サイト などで生成し、文字列として挿入してください。

⑭この状態で実行すると、正しく入力さえできていれば画面が表示されるはずです。

⑮出てきた画面でLoginTypeをAccountPortalに変更し、Loginを押してください。

⑯すると、「LoginError」から始まるエラーが出たと思います。次はこれを修正します。

⑰godotの編集画面に戻り、画面左下のファイルシステムで「hauth.gd」を検索し、出てきた「hauth.gd」をクリックしてスクリプトを開きます。

⑱スクリプトの画面で「Ctrl + F」で検索窓を開き、「opts.login_flags = auth_login_flags」で検索します。4件ヒットするので、そのうち「login_account_portal_asysc」関数内のものを変更します。

⑲該当部分の右辺を以下のように「EOS.Auth.LoginFlags.None」と変更します。

# 変更前
opts.login_flags = auth_login_flags

# 変更後
opts.login_flags = EOS.Auth.LoginFlags.None

⑳再度プロジェクトを実行し、LoginTypeAccountPortal にして「Login」ボタンを押します。今度はエラーではなく、Epic Gamesのログイン画面がブラウザで開くはずです。

㉑最初に作成したアカウントのメールアドレスとパスワードでログインします。認証コードの入力やアクセス許可の確認画面が表示されたら、指示に従って進めてください(Confirm, Continue to app, Allowなど)。

㉒Login Success!の表示が出たら、ひとまずオンライン接続完了です。

㉓(補足)もしゲームの動作が重い場合は、ファイルシステムから test_manual_audio_output.gd を検索して開き、_process 関数全体をコメントアウトすると軽量化できます。

複数行をコメントアウトするには、対象範囲を 'で囲みます。


E.オンライン接続の確認

最後に、実際に2つのアカウントを使ってオンラインで接続できるかを確認します。

①まず、テスト用にもう一つ別のEpicアカウントを作成します(手順A と同様)。

②ゲームを作成した方(1つ目)のアカウントで Dev Portal に入ります。

③左側メニューから「組織」を選び、中央右側にある「新規招待」ボタンを押します。

④先ほど作成した2つ目のアカウントのメールアドレスを入力し、製品に自分のゲームを追加して招待を送信します。

⑤招待された側のアカウントにメールが届くので、「JOIN ORGANIZATION」をクリックします。

⑥ログインを求められたら、2つ目のアカウントでログインします。Dev Portalを更新し、組織のメンバーが2人になっていれば成功です。

PC1台で確認する

①Godotエディタのメニューバーから「デバッグ」→「実行インスタンスのカスタマイズ」をクリックします。

②表示されたウィンドウで、「複数インスタンスを有効」にチェックを入れ、その下の数値を 2 にします。

③この状態でプロジェクトを実行すると、ゲーム画面が2つ起動します。それぞれ別々のアカウントでログインしてください。

④片方の画面で「Lobbies」→「Create lobby」→「Create」を選択してロビーを作成します。

⑤もう片方の画面で「Lobbies」→「Search」→表示されたロビーを選択し「JOIN」を押します。

⑥ロビーのメンバーリストに2人の名前が表示されれば成功です。チャットを送信すると、両方の画面に反映されるはずです。

⑦ホスト(Owner)側で「START」を押すと、簡単なオンラインゲームで遊ぶことができます。

※ 初回起動時にうまく接続できないことがあります。その場合は、一度ゲームを終了して再実行してみてください。

PC2台で別のwifiで確認する

より実践的なオンライン環境でテストするには、別のPCとネットワークを使います。

①Godotの編集画面を開き、「プロジェクト」→「エクスポート」を押します。

②「追加…」から「Windows Desktop」を選択してプリセットを追加します。

③オプションからアプリケーションを選択し、リソースの変更をオフにします。

④画面下部の「プロジェクトのエクスポート」を押すと、保存するフォルダの選択画面になります。

⑤右クリックでそれ用のフォルダを作成し、その後保存することで、作成したフォルダにエクスポートできます。

(↓のようなエラーが出た場合、テンプレートをダウンロードしてください。)

⑥エクスポートした実行可能ファイルと関連ファイル一式を、USBメモリやファイル共有サービスなどを使って、別のネットワークに接続されたもう1台のPCに送ります。

⑦それぞれのPCでゲームのexeファイルを実行し、「PC1台で確認する場合」と同様の操作を行うことで、実際のオンライン接続をテストできます。


終わりに

以上が、Godot EngineとEOSを使ったオンラインマルチプレイ実装の基本的な手順です。
このサンプルプロジェクトを改造したり、スクリプトの内容を詳しく読み解いたりすることで、オリジナルのオンラインゲーム制作に応用することができます。
次回は「生成AIと教育の今」を解説します。

(教材制作・文責 本多)