Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

【GTMF2015】モノビットMOエンジンforUnity ワークフロー解説

15.863 visualizaciones

Publicado el

GTMF2015で行ったMOエンジンforUnityワークフロー解説のスライドです。

Publicado en: Ingeniería
  • Sé el primero en comentar

【GTMF2015】モノビットMOエンジンforUnity ワークフロー解説

  1. 1. モノビットMOエンジンfor  Unity ワークフロー解説 モノビットMOエンジンfor  Unity ワークフロー解説 本城 嘉太郎 安田 京人本城 嘉太郎 安田 京人 株式会社株式会社 GTMF2015GTMF2015
  2. 2. ■モノビット社&講演者紹介■モノビット社&講演者紹介 2 ・株式会社モノビット 2005年年よりネットワークゲームの開発と運営を⾏行行っているゲーム制作会社です。 2013年年よりミドルウェア事業を開始。『モノビットエンジン』のブランドで リアルタイム通信エンジンやMOエンジンの販売を⾏行行っています。 ・講演者紹介 ・株式会社モノビット 2005年年よりネットワークゲームの開発と運営を⾏行行っているゲーム制作会社です。 2013年年よりミドルウェア事業を開始。『モノビットエンジン』のブランドで リアルタイム通信エンジンやMOエンジンの販売を⾏行行っています。 ・講演者紹介 Confidential <本城 嘉太郎郎> 神⼾戸出⾝身。モノビット社代表取締役。元ゲームプログラマ &ネットワークエンジニア。CEDECで4年年連続でネットワ ークゲームの運営企画やサーバ技術の講演を⾏行行っています 。そのうち2講演はトップクラスの評価を頂き、翌年年の CEDEC  AWARDの選考委員を務めました。 <本城 嘉太郎郎> 神⼾戸出⾝身。モノビット社代表取締役。元ゲームプログラマ &ネットワークエンジニア。CEDECで4年年連続でネットワ ークゲームの運営企画やサーバ技術の講演を⾏行行っています 。そのうち2講演はトップクラスの評価を頂き、翌年年の CEDEC  AWARDの選考委員を務めました。 <安⽥田 京⼈人(Kyoto Yasuda)> 株式会社モノビットミドルウェア事業部部⻑⾧長 ・IT系企業でSE兼PGとして2年年勤務。 ・6年年間⼤大⼿手デベロッパーでコンシューマーゲームプログラマーとしてアク ションゲームを中⼼心に様々なジャンルのゲーム開発に携わる。 ・オンラインゲームの知識識を⾝身に付けるため株式会社モノビットに⼊入社。 現在はモノビットエンジンの開発指揮とエヴァンジェリストとしても活動。 <安⽥田 京⼈人(Kyoto Yasuda)> 株式会社モノビットミドルウェア事業部部⻑⾧長 ・IT系企業でSE兼PGとして2年年勤務。 ・6年年間⼤大⼿手デベロッパーでコンシューマーゲームプログラマーとしてアク ションゲームを中⼼心に様々なジャンルのゲーム開発に携わる。 ・オンラインゲームの知識識を⾝身に付けるため株式会社モノビットに⼊入社。 現在はモノビットエンジンの開発指揮とエヴァンジェリストとしても活動。
  3. 3. ■モノビットエンジンとは?■モノビットエンジンとは? モノビット社が提供するネットワークミドルウェア製品群です。 <モノビットエンジン製品リスト> 1.ネットワークゲームフレームワーク ⇒  いろいろなゲームのバックエンド システムで利利⽤用されているLAMPフレームワークです。 2 .リアルタイム通信エンジン ⇒  本格的オンラインゲームを作成できる 通信ミドルウェア。Unity版を無料料公開中。 3 .MOエンジン for  Unity   ⇒  MO、MOBA系ゲームに特化した いわゆる「MOゲームツクール」です。 モノビット社が提供するネットワークミドルウェア製品群です。 <モノビットエンジン製品リスト> 1.ネットワークゲームフレームワーク ⇒  いろいろなゲームのバックエンド システムで利利⽤用されているLAMPフレームワークです。 2 .リアルタイム通信エンジン ⇒  本格的オンラインゲームを作成できる 通信ミドルウェア。Unity版を無料料公開中。 3 .MOエンジン for  Unity   ⇒  MO、MOBA系ゲームに特化した いわゆる「MOゲームツクール」です。 3
  4. 4. 4 ■ネットワークゲームフレームワークについて■ネットワークゲームフレームワークについて
  5. 5. 5 ■ネットワークゲームフレームワークについて■ネットワークゲームフレームワークについて
  6. 6. 6 ■リアルタイム通信エンジンについて■リアルタイム通信エンジンについて <モノビット・リアルタイム通信エンジン> モノビットリアルタイム通信エンジンとは、 本格的なオンラインゲーム制作を前提に設計・開発された ⾼高機能なリアルタイム通信ミドルウェアです。 シンプルなターン制のゲームから、 ⾼高速レスポンスが求められるマルチプレイのアクションゲーム ⼤大規模なサーバシステムが必要なMMORPGまで あらゆるジャンルのオンラインゲームを スムーズに開発することができます。 <モノビット・リアルタイム通信エンジン> モノビットリアルタイム通信エンジンとは、 本格的なオンラインゲーム制作を前提に設計・開発された ⾼高機能なリアルタイム通信ミドルウェアです。 シンプルなターン制のゲームから、 ⾼高速レスポンスが求められるマルチプレイのアクションゲーム ⼤大規模なサーバシステムが必要なMMORPGまで あらゆるジャンルのオンラインゲームを スムーズに開発することができます。
  7. 7. ■リアルタイム通信エンジンについて■リアルタイム通信エンジンについて 7
  8. 8. ツールにより⾃自動⽣生成された通信制御プログラム ■リアルタイム通信エンジン■リアルタイム通信エンジン 8 クライアントプログラム お客様が 開発する部分 リアルタイム通信エンジン が提供する部分 クライアントSDK Webサーバ連携モジュール データ同期システム Virtual Network機能 通信コード ⾃自動⽣生成ツール KVS連携モジュール 独⾃自プロトコル l 各プラットフォームごと のSDKにより、RPC通信 コードを⾃自動⽣生成 l ⾼高速PRC⾃自動⽣生成ツール により通信処理理を⾃自動⽣生 成 l 暗号化、および圧縮も⾃自 動的に実施 l C++、C#⾔言語によるゲ ームサーバコードの記述 が可能 l マッチングサーバを完全 に独⾃自カスタマイズ可能 l 安価なLinuxサーバで動作 l ほぼ全てのクラウドやオ ンプレミス環境にインス トール可能 l コンソールゲーム機から ゲームエンジンまで、豊 富なプラットフォームに 対応 l プロトコルは、TCP、 UDP、Reliable  UDPに対 応 l マッチングやバトルな ど、さまざまなサンプル プログラムをソースコー ドごと提供 l PHPやRubyなどWeb系 サーバとのデータ連係機 能搭載 l 過去のWeb系ゲームサー バ資産が利利⽤用可能 リアルタイム通信エンジン コアモジュール エリアサーバ バトルサーバ データサーバ チャットサーバ マッチングサーバ サーバロジック実装インターフェース CentOS系Linux系サーバで動作 ゲームサーバ構成例例
  9. 9. ■リアルタイム通信エンジンの採⽤用実績 9 そのほか、 MMORPGやRTS、MOBAなどが現在開発中です!
  10. 10. MOエンジンについて 10 MOエンジンfor  Unity ワークフロー解説 MOエンジンfor  Unity ワークフロー解説
  11. 11. ■モノビットMOエンジンとは?■モノビットMOエンジンとは? MOエンジンは、 専⽤用スクリプトで駆動するMOタイプのゲーム制作ツールです。 モノビット独⾃自開発のMO-‐‑‒Scriptを使⽤用。 「命令令」や「グラフィック」、「サウンド」を組み合わせることで ゲームの制作を可能とします。 MOエンジンサーバでは、MO-‐‑‒Scriptで プレイヤーや敵のアクション、イベント、ルールなどを設定することで ゲーム全体を制御・調停することができます。 MOエンジンは、 専⽤用スクリプトで駆動するMOタイプのゲーム制作ツールです。 モノビット独⾃自開発のMO-‐‑‒Scriptを使⽤用。 「命令令」や「グラフィック」、「サウンド」を組み合わせることで ゲームの制作を可能とします。 MOエンジンサーバでは、MO-‐‑‒Scriptで プレイヤーや敵のアクション、イベント、ルールなどを設定することで ゲーム全体を制御・調停することができます。 11
  12. 12. ■モノビットMOエンジンとは?■モノビットMOエンジンとは? MO-‐‑‒Scriptは、提供される各種GUIツールで作成・編集を⾏行行う事によっ て⽣生成されます。 また、プレイヤーキャラクタのレベル、ゲーム進⾏行行など動的に変更更され るデータはKVS(Key Value Store)を介してゲームに反映されます。 ツールの出⼒力力で実現できない処理理は、MO-‐‑‒Script⾃自体を編集することで 実現可能となります。 MO-‐‑‒Scriptは、提供される各種GUIツールで作成・編集を⾏行行う事によっ て⽣生成されます。 また、プレイヤーキャラクタのレベル、ゲーム進⾏行行など動的に変更更され るデータはKVS(Key Value Store)を介してゲームに反映されます。 ツールの出⼒力力で実現できない処理理は、MO-‐‑‒Script⾃自体を編集することで 実現可能となります。 12
  13. 13. ■MO-Scriptとは?■MO-Scriptとは? <MO-‐‑‒Scriptとは> MOエンジン⽤用に開発された、キャラクタ制御やAI、UIの制御 アウトゲームのフロー制御などに使⽤用できる軽量量スクリプト⾔言語です。 <特徴> ・アセンブラライクな記述のシンプルで軽い⾔言語 ・プラットフォームに依存しない ・プロジェクト毎に⾃自由にコマンド追加可能 ・コルーチンとしての動作が前提となっており、時系列列的な記述をそのまま縦に 書く事ができる ・グルーコード実装はLuaに⽐比べて僅かな⼿手間で済む ・バイナリコードはリソースとして扱えるため、プログラム実⾏行行中に修正して コンパイルしたバイナリコードのリロードが可能 ・定型部分のマクロ化やサブルーチン化、コマンド化により プランナ・デザイナでも容易易にスクリプトを組める環境の 構築が可能 <MO-‐‑‒Scriptとは> MOエンジン⽤用に開発された、キャラクタ制御やAI、UIの制御 アウトゲームのフロー制御などに使⽤用できる軽量量スクリプト⾔言語です。 <特徴> ・アセンブラライクな記述のシンプルで軽い⾔言語 ・プラットフォームに依存しない ・プロジェクト毎に⾃自由にコマンド追加可能 ・コルーチンとしての動作が前提となっており、時系列列的な記述をそのまま縦に 書く事ができる ・グルーコード実装はLuaに⽐比べて僅かな⼿手間で済む ・バイナリコードはリソースとして扱えるため、プログラム実⾏行行中に修正して コンパイルしたバイナリコードのリロードが可能 ・定型部分のマクロ化やサブルーチン化、コマンド化により プランナ・デザイナでも容易易にスクリプトを組める環境の 構築が可能 13
  14. 14. ■モノビットMOエンジン構成図■モノビットMOエンジン構成図 UnityクライアントUnityクライアント MOエンジン本体(DLL)MOエンジン本体(DLL) スクリプトデータスクリプトデータ Unity描画機能Unity描画機能 リソースリソース モデル・モーション・サウンド・エフェクト リアルタイム通信エンジン(DLL)リアルタイム通信エンジン(DLL) バトルサーバ(Linux)バトルサーバ(Linux) MOエンジン本体(DLL)MOエンジン本体(DLL) スクリプトデータスクリプトデータ リアルタイム通信エンジン(DLL)リアルタイム通信エンジン(DLL) マッチングサーバマッチングサーバ (SQLite & C++) WebサーバWebサーバ ⾮非同期ゲーム制御 MOバトルシーンMOバトルシーン バトル以外の画⾯面バトル以外の画⾯面 画⾯面制御処理理画⾯面制御処理理 ・マイページ ・合成 ・ショップ ・etc… http⾮非同期通信http⾮非同期通信 独⾃自プロトコル独⾃自プロトコル マッチング処理理 (DLL) マッチング処理理 (DLL) 独⾃自プロトコル独⾃自プロトコル <全体構成図><全体構成図> 14
  15. 15. MOエンジン本体MOエンジン本体 スクリプトエンジン 当たり判定ルーチン 通信処理理 キャラクター制御 地形配置制御 スクリプトデータスクリプトデータ キャラクター制御関連 敵配置情報 アクション ゲーム進⾏行行制御 地形設定 モーション エフェクト モデル ステージ制御関連 ゲーム制御関連 背景モデル 背景アタリ アタリ設定 ※キャラクター制御はプレイヤーおよびエネミーで共通です。 勝敗判定 スコア制御 ステージエディタステージエディタ アニメーション コンバータ (FBX2ANM) 地形配置 キャラ配置 アタリ設定ゲーム進⾏行行制御 <開発環境について> ・クライアント側 Unity5 ・サーバ側 Monoもしくは、 .Net Framework(2.0or3.5)と、 ご提供するツール⼀一式 <開発環境について> ・クライアント側 Unity5 ・サーバ側 Monoもしくは、 .Net Framework(2.0or3.5)と、 ご提供するツール⼀一式 オブジェ配置情報AI サウンド イベント制御 静的オブジェクト制御 AI駆動エンジン シーン制御 キャラクターエディタ AIエディタ オブジェ配置 イベント配置 <スクリプトデータとエンジンの関係><スクリプトデータとエンジンの関係> <ツール類> ■モノビットMOエンジン機能概要■モノビットMOエンジン機能概要 15
  16. 16. ■MOエンジンのツールについて■MOエンジンのツールについて MOエンジン同梱されているツール類 キャラクタエディタ AIエディタ ステージエディタ 各種マスタエディタ 各種マスタエディタ 16
  17. 17. ■MOエンジンの準備(セットアップ) プレイヤー エネミー 背景 • アセット • アニメーターと アニメーターコントローラー プレイヤー エネミー スタンドアローンのゲームと同様にアセットとアニメーションの設定 17
  18. 18. ■データ作成(1)■データ作成(1) キャラクタエディタでキャラクタの アニメーション制御スクリプトを作成 AIエディタでエネミーの 思考ルーチンスクリプトを作成 18
  19. 19. ■データ作成(2)■データ作成(2) Unity上の背景をそのままゲームで使⽤用 ステージ⽤用プレハブデータとして保存 19
  20. 20. ■データ作成(3)■データ作成(3) サーバでステージのコリジョンデータも管理理 コリジョン⽤用オブジェクト背景オブジェクト 経路路探索索⽤用プローブオブジェクト 20
  21. 21. ■データ作成(4)■データ作成(4) ゲームオブジェクト出現位置の配置 プレイヤー/エネミー/イベントオブジェクト/静的オブジェクトの 出現ポイントをマウスでマップ上に配置 21
  22. 22. ■データ作成(4)■データ作成(4) ステージ関連データの保存 プレハブの保存 プレイヤー出現情報等の保存 コリジョンデータの保存 22
  23. 23. ■データ作成(4)■データ作成(4) キャラクタなどの動的オブジェクト管理理もツールで設定可能 動的オブジェクト管理理⽤用 マスタ作成エディタ イベント管理理⽤用 マスタ作成エディタ プレイヤーキャラクタ管理理⽤用 マスタ作成エディタ バレット(弾)管理理⽤用 マスタ作成エディタ イベント管理理⽤用 マスタ作成エディタ 23
  24. 24. ■作成したデータをサーバに反映■作成したデータをサーバに反映 サーバ処理理を⾼高速化! MO-‐‑‒Scriptをバイナリデータに変換 サーバプログラムのあるディレクトリ配下にファイルを置くだけ moe_̲for_̲unity └─server └─BattleServer └─bin └─Data ├─collision ←  コリジョンデータ ├─master ←  マスタデータ └─script ←  MO-‐‑‒Scriptデータ └─event 24
  25. 25. ■ゲーム稼働■ゲーム稼働 サーバ起動 ゲームスタート 25
  26. 26. ■MOエンジンのサーバについて■MOエンジンのサーバについて Redis ServerRedis Server Battle   Server Battle   Server Battle Information Server Battle Information Server クライアントクライアント WEB ServerWEB Server Matching Server Matching Server Battle   Server Battle   Server Battle   Server Battle   Server Battle   Server Battle   Server × n <MOエンジン概念念図><MOエンジン概念念図> 26
  27. 27. ■マッチングサーバ■マッチングサーバ MOエンジンのマッチングサーバは、 モノビットリアルタイム通信エンジンを⽤用いてC++で実装され ており 設定された条件でプレイヤーのマッチング処理理を⾏行行います。 例例えば、レベルでのマッチング等 さまざまな条件をSQLiteを⽤用いて記述する事が出来ます。 MOエンジンのマッチングサーバは、 モノビットリアルタイム通信エンジンを⽤用いてC++で実装され ており 設定された条件でプレイヤーのマッチング処理理を⾏行行います。 例例えば、レベルでのマッチング等 さまざまな条件をSQLiteを⽤用いて記述する事が出来ます。 27
  28. 28. Group BGroup BGroup AGroup A ■バトルインフォメーションサーバ■バトルインフォメーションサーバ バトルサーバの管理理を⾏行行うサーバです。 バトルサーバのリストを保持し、死活監視を⾏行行います。 その他、バトルサーバにユーザーデータの受け渡しも⾏行行います。 また、別パッケージとなっているリアルタイム通信エンジンとの ネットワーク共有をも実現させます。 バトルサーバの管理理を⾏行行うサーバです。 バトルサーバのリストを保持し、死活監視を⾏行行います。 その他、バトルサーバにユーザーデータの受け渡しも⾏行行います。 また、別パッケージとなっているリアルタイム通信エンジンとの ネットワーク共有をも実現させます。 Battle   Server Battle   Server Battle Information Server Battle Information Server Battle   Server Battle   Server × n Battle   Server Battle   Server Battle   Server Battle   Server Group A List Group B List 28
  29. 29. ■バトルサーバ■バトルサーバ バトルサーバはお客様のニーズに合わせ リアルタイムに増減することが可能です。 その際、サービスを⼀一旦停⽌止するなどの メンテナンス・インフォメーションが不不要となり サービスそのものに影響を与える事がありません。 バトルサーバはお客様のニーズに合わせ リアルタイムに増減することが可能です。 その際、サービスを⼀一旦停⽌止するなどの メンテナンス・インフォメーションが不不要となり サービスそのものに影響を与える事がありません。 Group BGroup B Group AGroup A Battle   Server Battle   Server Battle   Server Battle   Server … Battle   Server Battle   Server Battle   Server Battle   Server Group CGroup C Battle   Server Battle   Server Battle   Server Battle   Server Battle   Server Battle   Server Battle   Server Battle   Server … Battle   Server Battle   Server Battle   Server Battle   Server … Battle   Server Battle   Server Battle   Server Battle   Server 29
  30. 30. ■最後に■最後に MOエンジンとリアルタイム通信を組み合わせれば MOやMOBAが簡単に実装できます! リアルタイム通信エンジンリアルタイム通信エンジン MOエンジンMOエンジン 30
  31. 31. ご静聴ありがとうございました! ・お気軽にお問合せください contact@monobit.co.jp 来⽉月からセミナーも開催していきます! モノビットリアルタイム通信のダウンロードはこちらから http://www.monobitengine.com/dl_rtc.html モノビットMOエンジンのダウンロードはこちらから http://www.monobitengine.com/dl_moe.html Facebook モノビットエンジン助け合い所 https://www.facebook.com/groups/monobitengineusers/ Twitter https://twitter.com/monobit_engine 来⽉月からセミナーも開催していきます! 31

×