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.
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technology Conferenc...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
自己紹介
■惠良 和隆(えら かずたか/Kazutaka Era) @erakazu
⁃ 2002年 株式会社フロム・ソフトウェア入社
• コンソ...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
アジェンダ
■内製ゲームエンジンLift Engine®とは?
■Lift Engine®の現在
■Lift Engine®が目指す未来
■...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
4
内製ゲームエンジン Lift Engine®とは?
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Lift Engine®とは?
■DeNAでのネイティブアプリ開発への取り組みの1つ
⁃ コンテンツに特化・最適化されたシステムを開発するために
...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
徹底的な最適化を実現
■2D描画に特化したダイナミックバッチング
■マルチレイヤーレンダリング
■独自フォントテクスチャ描画
⁃ iOS/Andr...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Lift Engine®採用タイトル
7
・・・
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
8
Lift Engine®の現在
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
9
2Dゲームエンジン
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
10
3Dゲームエンジン
2Dゲームエンジン
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
11
いまさら!?
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
3Dゲームエンジンへ
■なぜ独自の3Dゲームエンジンを作るのか?
⁃ クイックにゲームを作るだけであればUnityで十分
⁃ 一方で、全...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
13
話は変わって・・・
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNAにおけるアプリ開発の現状
■選択と集中によりネイティブアプリ開発に対応できた
⁃ 基盤開発による技術力の積み上げ
⁃ ゲーム開発エンジ...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNAにおけるアプリ開発の現状
■選択と集中によりネイティブアプリ開発に対応できた
⁃ 基盤開発による技術力の積み上げ
⁃ ゲーム開発エンジ...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Lift Engine® 3D化の要件
■DeNAの目指すゲーム開発の方向性に合致するもの
■何でも出来る汎用ゲームエンジンを求めない
■ケ...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Lift Engine® 3Dの概要
■目的≠ 3Dゲームエンジンの開発
■アプリケーションの仕様にできるだけ制限を与えない基本構造
■レンダ...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Lift Engine®とゲームの関係
18
Platform
Lift Engine® 2D
Application(Game)
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Lift Engine®とゲームの関係(2)
19
Platform
Lift Engine® 3D
Application Library
A...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Lift Engine® 3Dで新規実装した機能
■新レンダリングパイプライン
⁃ コマンドバッファを採用し、レンダリングは専用スレッドで行う方式...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Lift Engine® 3Dで新規実装した機能(2)
■cocos2d-xベースの描画処理も移植
⁃ レンダリングスレッドで任意の処理を実行する...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Lift Engine® 3Dで新規実装した機能(3)
■3D系の算術関数
⁃ ベクトル、行列演算のSIMD対応(NEON、SSE)
⁃ プリミテ...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Lift Engine® 3Dで新規実装した機能(4)
■動的Bitmapフォントテクスチャ生成
⁃ cocos2d-xではラベル単位での画像生成...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Application Library層について
24
Platform
Lift Engine® 3D
Application Library
...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Application Library層について
25
Platform
Lift Engine® 3D
Arcana
Application(G...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Arcanaとは
■Lift Engine® 3Dの上位に位置するアプリケーションフレームワーク
■ゲームの作り方のルールを規定する
⁃ シーン...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Arcanaが規定するもの
■シーングラフ管理
⁃ 一般的なシーングラフとほぼ同じもの
⁃ ゲームオブジェクトの親子関係でシーンを構成
⁃ 様...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Arcanaのレンダリングエンジン
■モダンなレンダリングフィーチャーへの対応
■Deferred / Forward Rendering
■P...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Arcanaのレンダリングエンジン(2)
■技術的には前世代コンシューマ(PS3/Xbox360)と同等水準
■PS4/Xbox ONE世代の技...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Arcanaの提供するツール開発環境
■ゲーム開発中はWindows/OSXビルドを中心に行う
■ゲーム実装の大半をDLL(もしくはdylib...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Arcanaの提供するツール開発環境(2)
■ゲーム実装をDLL化するメリットはメタデータの共通化
■C++のクラス定義にメタデータの定義を追加...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Arcanaが提供するゲーム開発環境(3)
32
Excel
GUI Tool
w/o Preview
Converter
GUI Tool
w...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Arcanaが提供するゲーム用モジュール
■Particle Effect
■Post Effect
■Animation Sequence ...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
34
DEMO
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
3
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
3
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
37
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
3
Lift Engine®が目指す未来
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Lift Engine®の目標
■開発・運用効率の向上
⁃ 現在は開発効率を引き上げるための仕組み作りのフェーズ
⁃ タイトル開発に合わせて効率向...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
当面の目標
40
Excel
GUI Tool
w/o Preview
Converter
GUI Tool
with Preview
Conve...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
当面の目標
41
Excel
GUI Tool
w/o Preview
Converter
GUI Tool
with Preview
Conve...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
まとめ
■DeNAではタイトル開発効率を向上することを徹底する
■Unityを使った開発だけでなく、独自エンジン開発でよりワークフローの最適化
...
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
43
ご清聴ありがとうございました
Upcoming SlideShare
Loading in …5
×

DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon

1,282 views

Published on

DeNA TechCon 2017の登壇資料です。

Published in: Technology
  • Be the first to comment

DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon

  1. 1. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technology Conference 2017 DeNA内製ゲームエンジンの現状と 目指す未来 株式会社ディー・エヌ・エー Japanリージョンゲーム事業本部 開発基盤部 部長 惠良 和隆 1
  2. 2. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 自己紹介 ■惠良 和隆(えら かずたか/Kazutaka Era) @erakazu ⁃ 2002年 株式会社フロム・ソフトウェア入社 • コンソールゲームの開発(クライアント、サーバー)、共通ライブラリ、フレームワークの開発、 開発環境構築などを担当 ⁃ 2013年10月 株式会社ディー・エヌ・エー入社 • ゲームアプリ開発に必要なライブラリやフレームワーク、サービスなどの 基盤開発を行う部門をリード • ゲーム開発のワークフロー整備 • ゲームシステムのアーキテクチャアドバイザ • ゲーム開発用内製ミドルウェア、ゲームエンジン等の開発 2
  3. 3. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. アジェンダ ■内製ゲームエンジンLift Engine®とは? ■Lift Engine®の現在 ■Lift Engine®が目指す未来 ■まとめ 3
  4. 4. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 4 内製ゲームエンジン Lift Engine®とは?
  5. 5. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Lift Engine®とは? ■DeNAでのネイティブアプリ開発への取り組みの1つ ⁃ コンテンツに特化・最適化されたシステムを開発するために ブラックボックスのない内製ゲームエンジンを開発 ■cocos2d-xをベースとする2Dゲーム開発のためのゲームエンジン ⁃ 作り方を意図的に制限し、ゲームシステム設計における迷いを排除 ■ゲーム開発に必要な(cocos2d-xに欠けていた)機能の実装 ⁃ 独自メモリ管理 ⁃ マルチスレッド対応 ⁃ 非同期I/O ⁃ ロガー ⁃ etc 5
  6. 6. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 徹底的な最適化を実現 ■2D描画に特化したダイナミックバッチング ■マルチレイヤーレンダリング ■独自フォントテクスチャ描画 ⁃ iOS/Androidのシステムフォント描画ではなく FreeTypeによるフォントテクスチャ描画を導入 ■OPTPiX SpriteStudioランタイム ⁃ シェーダの最適化、スプライト描画フローの最適化によるパフォーマンスの向上 ■内製アニメーション作成ツールAnimationBuilder用の最適化されたランタイム 6
  7. 7. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Lift Engine®採用タイトル 7 ・・・
  8. 8. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 8 Lift Engine®の現在
  9. 9. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 9 2Dゲームエンジン
  10. 10. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 10 3Dゲームエンジン 2Dゲームエンジン
  11. 11. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 11 いまさら!?
  12. 12. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 3Dゲームエンジンへ ■なぜ独自の3Dゲームエンジンを作るのか? ⁃ クイックにゲームを作るだけであればUnityで十分 ⁃ 一方で、全てを自由に出来るゲーム開発環境も欲しい ■ゲームの仕様に合わせたカスタマイズが欲しくなる ⁃ Unityネイティブプラグインだけでは越えられない壁 ⁃ Unityのバージョンアップによる仕様変更の弊害 ■ゲーム開発における選択肢を広げる ■タイトル特化型の最適化をゲームシステムだけでなく、コンテンツ パイプライン、ワークフローも含めて構築したい 12
  13. 13. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 13 話は変わって・・・
  14. 14. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNAにおけるアプリ開発の現状 ■選択と集中によりネイティブアプリ開発に対応できた ⁃ 基盤開発による技術力の積み上げ ⁃ ゲーム開発エンジニアとして習得すべきことを絞り込む ■一方で、残された課題も多い ⁃ 効率的な運用が出来ない ⁃ プラットフォーマーの審査だけが問題ではない ⁃ 施策量(=コンテンツ)の増大 ⁃ チーム規模の拡大 ⁃ 生産性の低下 14
  15. 15. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNAにおけるアプリ開発の現状 ■選択と集中によりネイティブアプリ開発に対応できた ⁃ 基盤開発による技術力の積み上げ ⁃ ゲーム開発エンジニアとして習得すべきことを絞り込む ■一方で、残された課題も多い ⁃ 効率的な運用が出来ない ⁃ プラットフォーマーの審査だけが問題ではない ⁃ 施策量(=コンテンツ)の増大 ⁃ チーム規模の拡大 ⁃ 生産性の低下 15 この課題をなんとかしたい!!
  16. 16. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Lift Engine® 3D化の要件 ■DeNAの目指すゲーム開発の方向性に合致するもの ■何でも出来る汎用ゲームエンジンを求めない ■ゲーム品質向上のためのTry&Errorの回数を増やす ■徹底的な開発効率の向上 ⁃ ゲームエンジン、ワークフロー、ツールなどを最適化 ■最適化された開発環境を作り易くする ■タイトル毎、必要に応じて部分的な再実装を可能にする 16 便利なものが高効率というわけではない!
  17. 17. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Lift Engine® 3Dの概要 ■目的≠ 3Dゲームエンジンの開発 ■アプリケーションの仕様にできるだけ制限を与えない基本構造 ■レンダリングパイプラインは完全独自なものにする ⁃ より柔軟性の高い仕組みを構築する ■Lift Engine®の立ち位置を再定義 ⁃ ゲーム開発のために必要な汎用機能の提供 ⁃ プラットフォームAPIラッパー ⁃ 3D化のためのプリミティブな機能を提供 ⁃ ゲームシステム実装に対する制限は、Lift Engine®より上のレイヤーで適用する 17
  18. 18. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Lift Engine®とゲームの関係 18 Platform Lift Engine® 2D Application(Game)
  19. 19. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Lift Engine®とゲームの関係(2) 19 Platform Lift Engine® 3D Application Library Application(Game) こ の 部 分 を 提 供
  20. 20. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Lift Engine® 3Dで新規実装した機能 ■新レンダリングパイプライン ⁃ コマンドバッファを採用し、レンダリングは専用スレッドで行う方式に ⁃ メインスレッドで作成したコマンドバッファを使って、次フレームでレンダリング ⁃ 既存の2D描画(cocos2d-xの描画)もコマンドバッファ方式に乗り入れ 20 Main Thread Rendering Thread Frame #n Frame #n+1 CommandBuffer Frame #nで作った コマンドバッファを描画
  21. 21. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Lift Engine® 3Dで新規実装した機能(2) ■cocos2d-xベースの描画処理も移植 ⁃ レンダリングスレッドで任意の処理を実行するための専用コマンドを用意 ⁃ RenderTexture / ClippingNodeなどのシーケンシャルな描画処理で利用 ■セットアップはメインスレッドで、描画処理はレンダリングスレッドで実行 ■パフォーマンスを考え、OpenGLコンテキストの切り替えは極力抑える ■最終的にcocos2d-xベースの描画処理は排除する方向で 21
  22. 22. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Lift Engine® 3Dで新規実装した機能(3) ■3D系の算術関数 ⁃ ベクトル、行列演算のSIMD対応(NEON、SSE) ⁃ プリミティブなコリジョン判定 ■シリアライズのための仕組み ⁃ クラスオブジェクトを簡単にデータ化するための枠組み ⁃ type_info/type_indexのような情報を扱う独自クラスの実装 ■より高速なメモリ管理 ⁃ TLSF(Two-Level Segregated Fit)アロケータ ⁃ スレッドキャッシュ 22
  23. 23. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Lift Engine® 3Dで新規実装した機能(4) ■動的Bitmapフォントテクスチャ生成 ⁃ cocos2d-xではラベル単位での画像生成 ⁃ Lift Engine® 2Dでは複数ラベルのフォントテクスチャを結合してバッチ描画 ⁃ FreeTypeを使ったフォント画像生成 ⁃ ビットマップフォント用画像もFreeTypeで生成 ⁃ レイアウトルールはLabelTTFとほぼ同等 ⁃ 2D/3Dレンダリングへの対応 ■マウス/キーボード入力ハンドリング ⁃ OSX/Windowsの互換性を担保 ⁃ ツール開発用 23
  24. 24. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Application Library層について 24 Platform Lift Engine® 3D Application Library Application(Game)
  25. 25. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Application Library層について 25 Platform Lift Engine® 3D Arcana Application(Game)
  26. 26. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Arcanaとは ■Lift Engine® 3Dの上位に位置するアプリケーションフレームワーク ■ゲームの作り方のルールを規定する ⁃ シーングラフ管理 ⁃ リソース管理 ■共通レンダリングエンジンの提供 ⁃ Lift Engine® 3Dのコマンドバッファを構築 ■DeNAの目指すゲーム開発スタイルを実現するための仕組みを提供 ⁃ ゲーム開発を効率化するための環境を構築するためのもの ⁃ ツール開発フレームワーク ■汎用だがゲーム仕様に寄ったモジュールの提供 26
  27. 27. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Arcanaが規定するもの ■シーングラフ管理 ⁃ 一般的なシーングラフとほぼ同じもの ⁃ ゲームオブジェクトの親子関係でシーンを構成 ⁃ 様々な機能を持ったシーングラフノードを組み合わせることで 振る舞いや表示を決定する ⁃ 構成されたシーングラフはシリアライズ可能 ■リソース管理 ⁃ ゲームが利用する各種リソース(モデル、マテリアル、アニメーション、UIレイアウト、 オーディオ、etc.)の取扱いを統一化 ⁃ カスタムクラス等のオブジェクトをシリアライズしたものも同様に扱う ⁃ ゲームだけでなくツールでも同じ仕組みを利用 27
  28. 28. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Arcanaのレンダリングエンジン ■モダンなレンダリングフィーチャーへの対応 ■Deferred / Forward Rendering ■Physically Based Rendering ■Image Based Lighting ■HDR ■Screen Space Ambient Occlusion ■Motion Blur ■Shadows(Cascaded Shadow Map, Soft Shadow) 28
  29. 29. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Arcanaのレンダリングエンジン(2) ■技術的には前世代コンシューマ(PS3/Xbox360)と同等水準 ■PS4/Xbox ONE世代の技術もそのうち・・・ ■想定スペックは、2020年の低性能端末 ⁃ PS3/Xbox360レベルのグラフィックスを実装出来る性能? ⁃ 課題はメモリ帯域 ■どのような表現技術を使うかはタイトル次第 29
  30. 30. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Arcanaの提供するツール開発環境 ■ゲーム開発中はWindows/OSXビルドを中心に行う ■ゲーム実装の大半をDLL(もしくはdylib)に移す ■ゲームやツールの実行ファイルはDLLを動的リンクする 30 ゲーム.DLL ツール.EXEゲーム.EXE ゲーム実装(DLL)側で提供する機能はツールでもそのまま利用できる
  31. 31. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Arcanaの提供するツール開発環境(2) ■ゲーム実装をDLL化するメリットはメタデータの共通化 ■C++のクラス定義にメタデータの定義を追加 ■メタデータ情報を使って出来ること ⁃ シリアライズ・デシリアライズ ⁃ パラメータ表示・編集用のUIコンポーネント(Inspectorなど) ■不必要にファイルフォーマットを増やさずに、様々なゲームデータを扱うこと が出来るようになる ■ゲーム実装DLLを利用するCUI・GUIツールを作るためのテンプレートも用意 ■作業効率を上げるためのカスタムツールの開発を推進 31
  32. 32. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Arcanaが提供するゲーム開発環境(3) 32 Excel GUI Tool w/o Preview Converter GUI Tool with Preview Converter Game Game Game Debug Function Planner / Designer Planner / Designer Planner / Designer
  33. 33. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Arcanaが提供するゲーム用モジュール ■Particle Effect ■Post Effect ■Animation Sequence Control ■AI ■Collision ■Cloth Simulation ■… ■タイトル開発で必要になった汎用機能は、Arcana上のモジュールとして追加す る 33
  34. 34. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 34 DEMO
  35. 35. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 3
  36. 36. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 3
  37. 37. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 37
  38. 38. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 3 Lift Engine®が目指す未来
  39. 39. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Lift Engine®の目標 ■開発・運用効率の向上 ⁃ 現在は開発効率を引き上げるための仕組み作りのフェーズ ⁃ タイトル開発に合わせて効率向上のためのツール群を積み上げる ⁃ 運用効率が高い状態でタイトルリリースするのがベスト ⁃ 人海戦術に頼らない ■グラフィックスについては選択と集中 ⁃ 一般的に表現に注力すると開発工数は増大する ⁃ 表現力は出来る限りシステムで引き上げる ⁃ デザイナー工数を必要なところに集中する ⁃ 自動生成・シミュレーションなども積極活用 39
  40. 40. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 当面の目標 40 Excel GUI Tool w/o Preview Converter GUI Tool with Preview Converter Game Game Game Debug Function Planner / Designer Planner / Designer Planner / Designer
  41. 41. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 当面の目標 41 Excel GUI Tool w/o Preview Converter GUI Tool with Preview Converter Game Game Game Debug Function Planner / Designer Planner / Designer Planner / Designer イテレーション周期を極限まで短くする
  42. 42. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. まとめ ■DeNAではタイトル開発効率を向上することを徹底する ■Unityを使った開発だけでなく、独自エンジン開発でよりワークフローの最適化 を推し進める ■面白いゲームを作るためには、品質向上に時間を割くことが重要 42 ユーザーのみなさまを魅了する面白いゲームを開発し、 より楽しく質の高いコンテンツやサービスを提供するた めにも、効率的な開発・運営体制を整えることに挑戦し ていきます
  43. 43. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 43 ご清聴ありがとうございました

×