P2Pで作る異世界:fogさんのVRChat個人開発集会発表内容を徹底解説!

詳細情報

集会名 個人開発集会
日時 2024年09月26日 22:00 - 22:30
テーマ P2Pで作る異世界
発表者 fog
発表資料 ファイル

発表のハイライト

fogさんがVRChatの個人開発集会で発表した「P2Pで作る異世界」は、サーバーコストを抑え、誰でも参加しやすい分散型のオンラインゲームを実現する試みです。UnityとPhoton Fusion、MistNet Libraryを活用し、KademliaやSkip GraphといったP2Pネットワークのアルゴリズムを駆使して、安定した通信と分散型マネジメントを実現しようとしています。

夢は異世界で生活すること!

fogさんは、「異世界で生活すること」という夢を実現するために、様々なゲームを開発してきました。

これまでのゲーム開発:可愛い&癒やしの世界を目指して

これまで、fogさんが開発してきたゲームは、「ひょこ村」「TikChoco Online」など、可愛いキャラクターや癒やしの世界観が特徴です。これらのゲームを通じて、fogさんは「可愛くて癒やされる世界を作りたい」という思いを強く持ち、より多くの人に楽しんでもらえるゲームを目指してきました。

ゲームに「やりたいこと」を詰め込む!

fogさんが目指すゲームには、鉄道、ハウジング、ダンジョン、VRM Avatarの読み込み、天候や時間変化など、様々な要素が盛り込まれています。これは、fogさんがゲームに自分の「やりたいこと」をすべて詰め込みたいという強い気持ちの表れです。

P2Pでサーバーコスト削減と分散化を実現!

しかし、このような大規模なオンラインゲームを開発・運用するには、サーバーコストが大きな課題となります。また、運営側の都合でサービスが終了してしまうリスクも常に存在します。

fogさんは、これらの課題を解決するために、P2P(ピアツーピア)という技術に着目しました。

P2Pとは?

P2Pとは、中央サーバーを介さずに、ユーザー同士が直接通信するネットワークのことです。従来のクライアントサーバー型とは異なり、すべてのユーザーがサーバーの役割を担うため、サーバーコストを削減することができます。

P2Pのメリット:持続可能なゲーム環境を目指して

P2Pには、以下のようなメリットがあります。

  • サーバーコストが削減できる
  • 運用コストが削減できる
  • データの永続性が高い
  • スケーラビリティが高い
  • 特定部分への負荷集中を回避できる
  • ユーザー増加の影響を受けにくい

これらのメリットにより、P2Pは、誰でも参加でき、長く続く持続可能なゲーム環境を作るのに適した技術と言えるでしょう。

P2Pネットワークの構造化

P2Pネットワークは、ユーザー同士がどのように接続するかによって、スター型、フルメッシュ型、パーシャルメッシュ型など、様々な構造を取ることができます。fogさんは、アクションゲームに適した構造を実現するために、Chord、Kademlia、Skip Graphといったアルゴリズムを検討しました。

特に、Kademliaは、実用的な分散ファイルストレージや分散Hole Punchingなどに利用されています。

NAT越えの課題:Hole Punchingで解決!

P2Pネットワークでは、NAT(Network Address Translation)というファイアウォールによって、ユーザー同士が直接通信できないという課題があります。

fogさんは、この課題を解決するために、Hole Punchingという技術を用いています。Hole Punchingは、NATの壁に一時的な穴を開けることで、ユーザー同士が通信できるようにする技術です。

MistNet Library:Unityで簡単にP2Pを実現!

fogさんは、Unityで簡単にP2Pネットワークを構築できるように、MistNet Libraryを開発しました。

このライブラリを使えば、誰でも簡単にUnity上でP2P機能を実装することができます。

分散型マネジメントの試み:自動化で開発効率アップ?!

fogさんは、開発チームのマネジメントも分散化し、自動化を試みました。

タスクの提案・承認・完了、作業会の開催通知、報酬の支払いなどを自動化するシステムを導入したことで、開発チームのコミュニケーションを減らし、開発効率の向上を目指しました。

しかし、その結果、開発スピードが低下してしまったという課題も発生しました。

分散型マネジメントの課題

  • コミュニケーション不足
  • メンバーのモチベーション低下
  • 投票への参加率低下
  • マネジメントの理解不足

これらの課題から、心理的安全性の低下コンテキストの把握不足などが考えられます。

fogさんの所感

fogさんは、今回の取り組みを通して、進捗報告よりも、困ったことがあれば気軽に相談できる場が重要だと感じました。また、開発以外の雑談など、人と人とのコミュニケーションを大切にする必要があると考えています。

まとめ

fogさんの「P2Pで作る異世界」は、サーバーコストを抑え、誰でも参加しやすい分散型のオンラインゲームを実現する野心的な試みです。P2Pネットワークの技術とMistNet Libraryを駆使して、安定した通信と分散型マネジメントを実現しようとしています。

分散型マネジメントの課題も見えてきましたが、fogさんの今後の試行錯誤に期待しましょう!

スライド資料はこちら

個人開発集会の他の発表もチェック!

いいプロンプトの極意はチーム開発スキルにアリ!~LLMとの対話で広がる個人開発の可能性~

UnityプロジェクトをGitで管理して開発効率を爆上げ!バージョン管理で開発の悩みを解決

パチンコで稼ぐってホント?パチプロのひねりさんが語る、稼ぎ方と収支の秘密!

VRChat個人開発集会で聞いた!認証機能を分離してアプリ開発を効率化する方法

最強のWeb開発環境を求めて:GPT Engineerの活用と課題

VRChat内のポスターをスプレッドシートで楽々管理!みかん電機さんの革新的なアイデア