Unity オンライン接続調査

調査1

  - Unity 標準のネットワークライブラリ開発を待つべき?いつ開発が終わるかわからないが

  - MagicOnion

    - .NET 5.0+ / .NET Core 3.1

    - 入門 https://www.slideshare.net/torisoup/magiconion-174973732

    - https://qiita.com/mitchydeath/items/cecf01493d1efeb4ae55

  - OpenAyame https://github.com/OpenAyame/ayame/blob/develop/docs/USE.md

    - Unity公式でWebRTCのパッケージがある

    - goなのでサーバー選定に制約

    - 1ルーム2名とあるが、用途として十分

  - SkyWay https://webrtc.ecl.ntt.com/

    - URLにある通り、NTTのサービス

    - 無料サーバー

      - 接続回数  50万回/月まで

        - 1対戦毎に切断するならこっちがネックになりそう

          - 10分に1回×8時間×土日×4週=384なので、月1300人ぐらい

        - シグナリングサーバーとの接続回数の可能性

          - 接続を維持する実装が必要

            - ロビーからのデュエルは報酬画面後にロビーに戻る

          - 1時間連続して遊ぶ×8回×土日×4週=64なので、月7800人ぐらい

      - サーバ通信量(※)  500GB/月まで

    - TURN がある

    - Android/iOS/JavaScriptはSDKがある

    - Unityについては明言はあるものの実装が分からない

      - ダウンロードにwindows用バイナリがある。

        - 実行後待機状態になる。port 8000 とあるので、これが WebRTC Gateway らしい

          - ということは、Unity とは別に起動しておくプログラムのようだ。よってAndroidはAndroidでSDKを使うし、Windows向けは別途配布が必要

        - 実行ファイルに引数はなく、実行ファイルと同じ並びに設定ファイルを置くことで変更

          - https://github.com/skyway/skyway-webrtc-gateway/blob/master/docs/config.md

        - https://github.com/skyway/skyway-webrtc-gateway/blob/master/samples/util.rb にあるように、/peers にJSONでAPIキー等を渡すと開始

      - 出来そうだが、いずれにしても保留

        - 結果的にAndroid/iOS/Web の相互接続のみ対応するならこれでもいい

  - Azure

    - 料金  https://azure.microsoft.com/ja-jp/free/

      - App Service

      - 他と違って VM は無さそう

    - 上記 MagicOnion を使うなら

      - Unity+MagicOnionのサンプルプログラムをコンテナ化してAzureContainerInstancesで簡単に動かす方法 https://qiita.com/_y_minami/items/aa57873bbb9ea0b36dd2

        - Dockerを含むので冗長

    - 上記 OpenAyame を使うなら

      - VM がないので無料は不可

      - Azure SDK for Go  https://docs.microsoft.com/ja-jp/azure/developer/go/

        - 1.8 以上と互換性、とある

        - バージョン指定はコードの修正が必要かも https://github.com/Azure/azure-sdk-for-go/#versioning

  - AWS

    - 料金 https://aws.amazon.com/jp/free/free-tier/

      - 常に無料、にチェック

        - Amazon EC2 は候補に出てこない

      - 12か月間無料(手続き必要)

        - Amazon EC2 は月ごとに750時間稼働が無料

    - 上記 MagicOnion を使うなら

      - Amazon Linux 2 上に .NET 5 と MagicOnion を使ったゲームサーバー開発環境作ってみた https://dev.classmethod.jp/articles/create-dev-env-for-dotnet-5-and-magiconion-on-amazon-linux-2-ec2/

        - Amazon EC2 を使う

    - 上記 OpenAyame を使うなら

      - AWS SDK for Go  https://aws.amazon.com/jp/sdk-for-go/

        - Amazon Elastic Compute Cloud(Amazon EC2) を使うらしい

        - go は 1.15なので要件を満たす

    - → 結果、無料で続ける事は出来なそう

  - GCP

    https://open-match.dev/site/docs/overview/

Unityが協力しているので親和性はありそう

Openとあるように、他のクラウドでも動かせる可能性

k8s上にセットアップ

https://cloud.google.com/kubernetes-engine/pricing

無料枠は $74 。最初のうちは使い切る事は無さそう

PlayFabと比較すると、Unityプラグインがないようだ https://github.com/googleforgames/open-match/issues/1221

自力実装の部分が多いのはつらい

  - 料金  https://cloud.google.com/free/docs/gcp-free-tier?hl=ja

    - 上記 MagicOnion を使うなら

      - App Engine  https://cloud.google.com/appengine/docs/flexible/dotnet?hl=ja

        - .Net Core 3.1で作る

        - Visual Studio の拡張がある。2019も対応

      - Compute Engine  https://cloud.google.com/compute/docs?hl=ja

        - チュートリアルだと .Net Framework を選ぶ、とある点が気になる。

    - 上記 OpenAyame を使うなら

      - App Engine

        - go の推奨バージョンは1.15となっているが、App Engineは1.12なので見送り

      - Compute Engine

  - PlayFab  https://playfab.com/

    - Azure上のサービス

    - 料金 https://playfab.com/pricing/

      - 開発モードである間は無料。デフォルト

        - 10万ユーザーまで

      - パーティ  https://docs.microsoft.com/ja-jp/gaming/playfab/features/multiplayer/networking/

        - チャットとデータ通信とある

        - Free だと「PlayFab Party Connectivity andVoiceの合計最大10,000分が含まれます。」とある

        - Unityプラグイン  https://docs.microsoft.com/ja-jp/gaming/playfab/features/multiplayer/networking/party-unity-plugin-quickstart

        - P2Pの記述がある https://docs.microsoft.com/ja-jp/gaming/playfab/features/multiplayer/networking/concepts-direct-peer-connectivity

          - Win10およびXBoxのみ

          - 直接接続をしたらカウントされない

          - 接続できなかったら自動的にサーバー経由になる

        - 招待  https://docs.microsoft.com/ja-jp/gaming/playfab/features/multiplayer/networking/concepts-invitations-security-model

          - これそのまま使えそう

        - Androidだとマイク許可が必要とある。

          - コード修正で無効化できる

      - マッチメイキング https://docs.microsoft.com/ja-jp/gaming/playfab/features/multiplayer/matchmaking/

        - プレビュー

      - マルチプレイヤーサーバー

        - サーバーサイドの処理が必要な時

        - 最大750時間の無料コンピューティング時間でのホスティング

        - 地域が 米国東部、北ヨーロッパ しかない。

          - 無料の場合の可能性

    - クイックスタート: Unity の PlayFab クライアントライブラリ (C#)  https://docs.microsoft.com/ja-jp/gaming/playfab/sdks/unity3d/quickstart

    - →ユーザーデータ管理だけ使うのもアリでは

  - gamelift  https://aws.amazon.com/jp/gamelift/

    - AWS上のサービス

    - 料金  https://aws.amazon.com/jp/gamelift/pricing/

      - AWS と同じく12か月制限

  - agones  https://agones.dev/site/docs/getting-started/

    - GCP上のサービス

    - Kubernetes を使う

    - 料金は Kubernetes も含め無料範囲内

    - Dockerを使うなら、GCPの単独で十分

    - Unity SDK https://agones.dev/site/docs/guides/client-sdks/unity/

    - →サーバー側を自分で書く場合なら使ってもよさそう

  - Unity プロジェクトに Firebase を追加する  https://firebase.google.com/docs/unity/setup?hl=ja

    - データ永続化だけ任せるなら

調査2

最低要件

知識

基礎  https://medium.com/@shivamrawat_756/guide-to-p2p-over-internet-9f7cf41470bd

libp2p  https://libp2p.io/

WebRTC  https://webrtc.org/

peerjs  https://github.com/peers/peerjs

localturnnel  https://github.com/localtunnel/localtunnel

調査

修正

2026/02/22 更新しました。主な内容は変わっていません。

top

その他の投稿

20260103-01 Unity Entities Tips
20251231-01 Unity UI Toolkit カスタムコントロールサンプル
20250913-01 Unity アプリで Android 16KB ページサイズ確認
20250912-01 Unity 6 で Editor がちらつく問題
20250906-01 Win10サポート終了 ChromeOS Flex を入れてみてつまづいた所
20250812-02 Unity UI Toolkit でのタップ操作検出
20250812-01 Unity UI Toolkit でマップ画面 with RenderTexture
20250811-01 Unity UI Toolkit での座標変換
20250721-01 Unityでカメラが平行投影の場合にScreenToWorldPointがズレる
20250712-01 Unity既存プロジェクトにURP追加