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

More Related Content

What's hot

「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについてSEGADevTech
 
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するYoshifumi Kawai
 
RenderTextureの正しいα値は?
RenderTextureの正しいα値は?RenderTextureの正しいα値は?
RenderTextureの正しいα値は?KLab Inc. / Tech
 
なぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリングなぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリングSatoshi Kodaira
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例Fixstars Corporation
 
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するTakahito Tejima
 
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介torisoup
 
Unityで始めるバーチャルプロダクション
Unityで始めるバーチャルプロダクションUnityで始めるバーチャルプロダクション
Unityで始めるバーチャルプロダクションUnity Technologies Japan K.K.
 
F.E.A.Rにおけるゴール指向プランニング
F.E.A.Rにおけるゴール指向プランニングF.E.A.Rにおけるゴール指向プランニング
F.E.A.Rにおけるゴール指向プランニングYouichiro Miyake
 
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門増田 亨
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計増田 亨
 
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみたYuusuke Takeuchi
 
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpテストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpkyon mm
 
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外Takuya Sato
 

What's hot (20)

「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
 
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
 
Localization case study on EARTH DEFENSE FORCE: IRON RAIN
Localization case study on EARTH DEFENSE FORCE: IRON RAINLocalization case study on EARTH DEFENSE FORCE: IRON RAIN
Localization case study on EARTH DEFENSE FORCE: IRON RAIN
 
UE4における大規模背景制作事例 最適化ワークフロー編
UE4における大規模背景制作事例 最適化ワークフロー編UE4における大規模背景制作事例 最適化ワークフロー編
UE4における大規模背景制作事例 最適化ワークフロー編
 
RenderTextureの正しいα値は?
RenderTextureの正しいα値は?RenderTextureの正しいα値は?
RenderTextureの正しいα値は?
 
なぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリングなぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリング
 
UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow)
UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow) UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow)
UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow)
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
 
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
 
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
 
Fortniteを支える技術
Fortniteを支える技術Fortniteを支える技術
Fortniteを支える技術
 
Unityで始めるバーチャルプロダクション
Unityで始めるバーチャルプロダクションUnityで始めるバーチャルプロダクション
Unityで始めるバーチャルプロダクション
 
UE4 Performance and Profiling | Unreal Dev Day Montreal 2017 (日本語訳)
UE4 Performance and Profiling | Unreal Dev Day Montreal 2017 (日本語訳)UE4 Performance and Profiling | Unreal Dev Day Montreal 2017 (日本語訳)
UE4 Performance and Profiling | Unreal Dev Day Montreal 2017 (日本語訳)
 
F.E.A.Rにおけるゴール指向プランニング
F.E.A.Rにおけるゴール指向プランニングF.E.A.Rにおけるゴール指向プランニング
F.E.A.Rにおけるゴール指向プランニング
 
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
 
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
 
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpテストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
 
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外
 
UE4におけるレベル制作事例
UE4におけるレベル制作事例  UE4におけるレベル制作事例
UE4におけるレベル制作事例
 

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

DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方dena_study
 
Flex開発を加速するFlash Builder 4新機能紹介
Flex開発を加速するFlash Builder 4新機能紹介Flex開発を加速するFlash Builder 4新機能紹介
Flex開発を加速するFlash Builder 4新機能紹介Keisuke Todoroki
 
Dev camp2012jpn day2special
Dev camp2012jpn day2specialDev camp2012jpn day2special
Dev camp2012jpn day2specialKatsuhito Katoh
 
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...Developer Camp 2012 Japan Fall
 
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指してAkira Inoue
 
とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例agileware_jp
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)NTT DATA Technology & Innovation
 
Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -Toshiyuki Hirata
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今Yuki Igarashi
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#Yuta Matsumura
 
Daisukei vsug ef
Daisukei vsug efDaisukei vsug ef
Daisukei vsug efvsug_jim
 
3Dリッチコンテンツビジネス活用のご提案ver3.1
3Dリッチコンテンツビジネス活用のご提案ver3.13Dリッチコンテンツビジネス活用のご提案ver3.1
3Dリッチコンテンツビジネス活用のご提案ver3.1ITDORAKU
 
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービスマスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービスToshiyuki Hirata
 
Rancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるRancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるMichitaka Terada
 
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconUnityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconDeNA
 
PHPにおけるRIA事情と開発
PHPにおけるRIA事情と開発PHPにおけるRIA事情と開発
PHPにおけるRIA事情と開発konekto
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
.NET Conf 2017 Japan Keynote ".NET Everywhere!"
.NET Conf 2017 Japan Keynote ".NET Everywhere!".NET Conf 2017 Japan Keynote ".NET Everywhere!"
.NET Conf 2017 Japan Keynote ".NET Everywhere!"Akira Inoue
 
ノーツが日本を救う(2002/3/13)
ノーツが日本を救う(2002/3/13)ノーツが日本を救う(2002/3/13)
ノーツが日本を救う(2002/3/13)伸夫 森本
 

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

DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方
 
Flex開発を加速するFlash Builder 4新機能紹介
Flex開発を加速するFlash Builder 4新機能紹介Flex開発を加速するFlash Builder 4新機能紹介
Flex開発を加速するFlash Builder 4新機能紹介
 
Dev camp2012jpn day2special
Dev camp2012jpn day2specialDev camp2012jpn day2special
Dev camp2012jpn day2special
 
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
Developr Camp 2012 Japan Fall Day2 Special Session - Visual Studio 2012 で始める ...
 
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
 
とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
 
Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
 
Daisukei vsug ef
Daisukei vsug efDaisukei vsug ef
Daisukei vsug ef
 
3Dリッチコンテンツビジネス活用のご提案ver3.1
3Dリッチコンテンツビジネス活用のご提案ver3.13Dリッチコンテンツビジネス活用のご提案ver3.1
3Dリッチコンテンツビジネス活用のご提案ver3.1
 
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービスマスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
 
Rancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるRancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げる
 
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconUnityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechcon
 
Mithril
MithrilMithril
Mithril
 
PHPにおけるRIA事情と開発
PHPにおけるRIA事情と開発PHPにおけるRIA事情と開発
PHPにおけるRIA事情と開発
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
.NET Conf 2017 Japan Keynote ".NET Everywhere!"
.NET Conf 2017 Japan Keynote ".NET Everywhere!".NET Conf 2017 Japan Keynote ".NET Everywhere!"
.NET Conf 2017 Japan Keynote ".NET Everywhere!"
 
ノーツが日本を救う(2002/3/13)
ノーツが日本を救う(2002/3/13)ノーツが日本を救う(2002/3/13)
ノーツが日本を救う(2002/3/13)
 

More from DeNA

DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DRIVE CHARTの裏側  〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜DRIVE CHARTの裏側  〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜DeNA
 
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用DeNA
 
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...DeNA
 
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】DeNA
 
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】DeNA
 
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】DeNA
 
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】DeNA
 
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】DeNA
 
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】DeNA
 
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】DeNA
 
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】DeNA
 
DeNA の Slack 導入と活用の事例紹介
DeNA の Slack 導入と活用の事例紹介DeNA の Slack 導入と活用の事例紹介
DeNA の Slack 導入と活用の事例紹介DeNA
 
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]DeNA
 
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
オートモーティブ領域における 位置情報関連アルゴリズムあれこれオートモーティブ領域における 位置情報関連アルゴリズムあれこれ
オートモーティブ領域における 位置情報関連アルゴリズムあれこれDeNA
 
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]DeNA
 
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]DeNA
 
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]DeNA
 
MOV お客さま探索ナビの GCP ML開発フローについて
MOV お客さま探索ナビの GCP ML開発フローについてMOV お客さま探索ナビの GCP ML開発フローについて
MOV お客さま探索ナビの GCP ML開発フローについてDeNA
 
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]DeNA
 
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化DeNA
 

More from DeNA (20)

DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DRIVE CHARTの裏側  〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜DRIVE CHARTの裏側  〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
 
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
 
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
 
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
 
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
 
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
 
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
 
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
 
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
 
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
 
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
 
DeNA の Slack 導入と活用の事例紹介
DeNA の Slack 導入と活用の事例紹介DeNA の Slack 導入と活用の事例紹介
DeNA の Slack 導入と活用の事例紹介
 
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
 
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
オートモーティブ領域における 位置情報関連アルゴリズムあれこれオートモーティブ領域における 位置情報関連アルゴリズムあれこれ
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
 
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
 
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
 
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
 
MOV お客さま探索ナビの GCP ML開発フローについて
MOV お客さま探索ナビの GCP ML開発フローについてMOV お客さま探索ナビの GCP ML開発フローについて
MOV お客さま探索ナビの GCP ML開発フローについて
 
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
 
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化
 

Recently uploaded

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 

Recently uploaded (8)

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 

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

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