Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

マルチプレーヤーゲームにおける サーバロジック実装と、 VR空間コミュニケーションの実例  安田 京人(モノビットエンジンセミナー2017年4月)

6,513 views

Published on

22017年に4月27日にヤフー社員食堂にて行われましたIDCF様と共催のセミナーで3部構成で公開いたしましたスライドです。

【第2部】
題:マルチプレーヤーゲームにおける サーバロジック実装と、 VR空間コミュニケーションの実例

登壇者:株式会社モノビット ミドルウェア事業部部長   安田 京人

概要:新製品「Monobit Revorution Sever(MRS)」を搭載し、VerアップしたUnity向けリアルタイム通信エンジン「Monobit Unity Networking 2.0」。従来のモノビットエンジン製品群と比較しつつ、性能・価格など3部構成で詳細を公開いたしました。

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

マルチプレーヤーゲームにおける サーバロジック実装と、 VR空間コミュニケーションの実例  安田 京人(モノビットエンジンセミナー2017年4月)

  1. 1. 11 株式会社モノビット マルチプレーヤーゲームにおける サーバロジック実装と、 VR空間コミュニケーションの実例 安田 京人(ミドルウェア事業部部長)
  2. 2. 22 1〃Monobit Unity Networking(MUN)+MRS編
  3. 3. 33 MUNを使えば簡単にマルチプレーヤーゲームの実装が可 能になりますが、 ゲームのロジックを全てクライアントアプリ側に実装す るので、 チート対策という観点では大事な判定はサーバ側で行う のが望ましいです。 今回は、MUNを用いて簡易的な点取りゲームを作成し、 クライアントアプリ側にあるゲームロジックを、 サーバ側に移植したデモを解説したいと思います。 ※本サンプルは今後の MUN アップデートで提供予定 ■ はじめに
  4. 4. 44 作成したゲームの仕様 ・フィールド上にランダムに発生するオブジェクト(ア イテム)を収集するゲーム。 ・同一ルームに集まったユーザー同士でアイテムを奪い 合い、奪ったアイテム数=スコア管理し、競う。 ・最終的にスコアで判定し勝敗を決する。 ■ ゲーム仕様について
  5. 5. 55 ■ ゲーム画面動画
  6. 6. 66 ■ 実装コードを簡単にご紹介
  7. 7. 77 ■ 問題点 クライアントサイドプログラムの問題点 → 率直に言えばチートの問題! ルームホストがゲームルールを管理するので、 ホストが不正(チート)をするとゲームが崩壊する
  8. 8. 88 ■ 問題点 <考えられるチート内容> ・ホストと同じ場所にのみアイテムを出現させる ・ホスト以外のプレイヤーとはアイテムとの当たり判定を 無効にする ・制限時間を超過してもホストのみアイテムの取得を 可能にする
  9. 9. 99 ■ 問題点 そこで、サーバサイドプログラミング
  10. 10. 1010 ■ サーバサイドプログラミング ・ゲームルールはサーバで管理し、 クライアントはルールによって為された 「結果」のみを受け取る ・受け取ったデータをクライアントで改ざんしても、 サーバや他クライアントに送信できない仕組みを 作る ・ホストの回線速度やマシン性能に依存しない ゲーム運用を可能にする
  11. 11. 1111 ■ 具体的なサーバサイドの実装
  12. 12. 1212 ■ 具体的なサーバサイドの実装 ・アイテム取得処理をルームサーバに移行
  13. 13. 1313 ■ 具体的なサーバサイドの実装 ・アイテム出現処理をルームサーバに移行
  14. 14. 1414 ■ 具体的なサーバサイドの実装 ・制限時間経過処理をルームサーバに移行
  15. 15. 1515 ■ クライアントプログラム側の変更点
  16. 16. 1616 ■ 具体的なサーバサイドの実装 ・クライアント側の変更
  17. 17. 1717 ■ 完成したプログラムの動作確認
  18. 18. 1818 ■ まとめ 今回、 MUN クライアントの MonobitNetwork の一部機能に ついて、サーバ用に移植してみました。 実際、ほぼ Unity クライアントと同じようなコーディ ングで実装が可能です。 ※但し、当たり前ですがUnity独自のAPIは当然の事な がら書けない。 勿論自分でC#やC++でゲームロジックを書いてもOK です!
  19. 19. 1919 2〃VR VoiceChat1.0編
  20. 20. 2020 アプリケーション実装者が数クリックでボイスチャットが実装可能に MUNの使用が前提条件なので、 プレイヤーキャラクターなどにコンポーネントの追加のみで ボイスチャットを実現できること 実際にボイスチャットをアプリケーションに組み込むために、 プレイヤーキャラクター (MonobitViewコンポーネントが追加されている)に対し、 [Add Component]で[Monobit Voice]を追加するだけで ボイスチャットの実装を完了する事が確認できます。 ■ 『VR Voice Chat 』とは
  21. 21. 2121 ■ VoiceChatとオブジェクト同期の組み込み

×