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.

GTMF2017 モノビットセッション資料(2)

2,483 views

Published on

2017年に7月14日に2部構成で公開いたしましたGTMF2017のスライド用の動画です。

「リアルタイム通信エンジンの新しい選択肢」をテーマに、1コアあたり20,000同時接続を達成した超高速リアルタイム通信エンジン「Monobit Revolution Sever(MRS)」と、「Monobit Unity Networking 2.0」について、使い勝手や性能試験の結果、導入方法やコストについて、実際のゲームやVRコンテンツでの採用例を交えて、詳しくご紹介致しました。

Published in: Engineering
  • Be the first to comment

GTMF2017 モノビットセッション資料(2)

  1. 1. 11 株式会社モノビット Unityによる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 19 2,VR VoiceChat 2.0編
  20. 20. 2020 20 アプリケーション実装者が数クリックでボイスチャットが実装可能に MUNの使用が前提条件なので、 プレイヤーキャラクターなどにコンポーネントの追加のみで ボイスチャットを実現できること 実際にボイスチャットをアプリケーションに組み込むために、 プレイヤーキャラクター (MonobitViewコンポーネントが追加されている)に対し、 [Add Component]で[Monobit Voice]を追加するだけで ボイスチャットの実装を完了する事が確認できます。 ■ 『VR Voice Chat 』とは
  21. 21. 2121 21 ■ VoiceChatとオブジェクト同期の組み込み

×