Submit Search
Upload
Cocos2d-xの深層 Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
•
9 likes
•
5,766 views
gree_tech
Follow
CEDEC 2016 にて発表された資料です http://cedec.cesa.or.jp/2016/session/ENG/3462.html
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 57
Download now
Download to read offline
Recommended
Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例
Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例
gree_tech
Cocos2d-x Talks #2(2015/3/13)発表資料 https://atnd.org/events/62594 Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例 発表者 グリー株式会社 Wright Flyer Studios部 リードエンジニア 渡部晋司 概要 “消滅都市” はCocos2d-x 3.0を使い少人数、短期間で開発されたスマートフォン向けゲームです。 本セッションでは、その開発、運用プロセスにおいて得られた経験を元に良かった点、悪かった点を実際の事例を交えて紹介し、皆様のお役に立てればと思います。
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/Session-7
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/Session-11
なぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリング
Satoshi Kodaira
第5回VFX技術者交流会で発表した資料のフル版です。
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
日本マイクロソフト株式会社
株式会社オルターブース Chief Technical Architect 松村 優大 Microsoft MVP for Developer Technologies 亀川 和史 2021年11月に .NET 6 がリリースされました。 .NET 6以降、毎年メジャーバージョンアップが行われ、 .NET 開発者にはアプリケーションライフサイクルの素早さが求められてきます。 .NET Framework を維持するのか、.NET 6に移行するのか、アプリケーション開発に関わる方が取り組むべき課題に対してDevOpsプラクティス使って解決しましょう。
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
U-dai Yokoyama
2014/11/8 Developers.IO by Classmethod.Inc 発表資料 Androidアプリケーション開発で読みやすく、変更に強く、テストしやすいコードを書くためにはどうしたらいいか? MVPパターンを用いた設計アプローチと実装例の解説。
[CEDEC2014] 消滅都市のつくりかた 半年で素敵なゲームをリリースするには -
[CEDEC2014] 消滅都市のつくりかた 半年で素敵なゲームをリリースするには -
gree_tech
CEDEC2014の講演資料です。 消滅都市のつくりかた - 半年で素敵なゲームをリリースするには - http://cedec.cesa.or.jp/2014/session/ENG/13320.html
誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ
誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ
Tatsuhiko Yamamura
Addressableの概要的な使い方についての紹介
Recommended
Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例
Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例
gree_tech
Cocos2d-x Talks #2(2015/3/13)発表資料 https://atnd.org/events/62594 Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例 発表者 グリー株式会社 Wright Flyer Studios部 リードエンジニア 渡部晋司 概要 “消滅都市” はCocos2d-x 3.0を使い少人数、短期間で開発されたスマートフォン向けゲームです。 本セッションでは、その開発、運用プロセスにおいて得られた経験を元に良かった点、悪かった点を実際の事例を交えて紹介し、皆様のお役に立てればと思います。
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/Session-7
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/Session-11
なぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリング
Satoshi Kodaira
第5回VFX技術者交流会で発表した資料のフル版です。
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
日本マイクロソフト株式会社
株式会社オルターブース Chief Technical Architect 松村 優大 Microsoft MVP for Developer Technologies 亀川 和史 2021年11月に .NET 6 がリリースされました。 .NET 6以降、毎年メジャーバージョンアップが行われ、 .NET 開発者にはアプリケーションライフサイクルの素早さが求められてきます。 .NET Framework を維持するのか、.NET 6に移行するのか、アプリケーション開発に関わる方が取り組むべき課題に対してDevOpsプラクティス使って解決しましょう。
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
U-dai Yokoyama
2014/11/8 Developers.IO by Classmethod.Inc 発表資料 Androidアプリケーション開発で読みやすく、変更に強く、テストしやすいコードを書くためにはどうしたらいいか? MVPパターンを用いた設計アプローチと実装例の解説。
[CEDEC2014] 消滅都市のつくりかた 半年で素敵なゲームをリリースするには -
[CEDEC2014] 消滅都市のつくりかた 半年で素敵なゲームをリリースするには -
gree_tech
CEDEC2014の講演資料です。 消滅都市のつくりかた - 半年で素敵なゲームをリリースするには - http://cedec.cesa.or.jp/2014/session/ENG/13320.html
誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ
誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ
Tatsuhiko Yamamura
Addressableの概要的な使い方についての紹介
WFSのゲームエンジンの歴史と今後の戦略
WFSのゲームエンジンの歴史と今後の戦略
gree_tech
「WFS Tech Talk #1」で発表された資料です。 https://gree.connpass.com/event/129292/
UE4 MultiPlayer Online Deep Dive 基礎編1 -Getting Started- (historia様ご講演) #UE4DD
UE4 MultiPlayer Online Deep Dive 基礎編1 -Getting Started- (historia様ご講演) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
2017年7月2日に行われたライセンシー様向けMO勉強会の資料です。基礎編① (登壇者: historia 原龍さま)
View customize1.2.0の紹介
View customize1.2.0の紹介
onozaty
第15回 redmine.tokyo にて発表したView Customize Pluginバージョン1.2.0の紹介資料です
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
2014/06/14に行われたOSC Hokkaido 2014内で株式会社インフィニットループの佐々木が発表したセミナー、「新入社員のための大規模ゲーム開発入門 サーバサイド編」のスライド資料
Unityティーチャートレーニングデイ -認定プログラマー編-
Unityティーチャートレーニングデイ -認定プログラマー編-
Unity Technologies Japan K.K.
Unity認定プログラマーの試験範囲を念頭にプログラマーとして知っておきたいUnityの実装方法について学びます。また、Unity AnalyticsなどUnityが提供するサービス(機能)についても実装方法(Unity認定プログラマー試験レベル)について学びます。 ■こんな人におすすめ ・(調べながらでも) Unityの一通りの機能を使える ・C#の基本的な文法は理解している ■トレーニング環境と準備について ・使用するUnityのバージョン: Unity2019.4.8f1 ・使用するプロジェクト:BaseProject_2019.4.8.1f 以下のURLからダウンロード可能です。 https://drive.google.com/file/d/1L3WExri_sPexkMKz-OaJ0mQTLj4v88LH/view?usp=sharing
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
container runtime meetup #4で発表した資料です。 https://runtime.connpass.com/event/253798/
60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編
エピック・ゲームズ・ジャパン Epic Games Japan
講演動画:https://youtu.be/YXGmiWzHxeo 基礎編:https://www.slideshare.net/EpicGamesJapan/ue4-festeast2019-60fpsbasic 2019年10月6日に行われた「UNREAL FEST EAST 2019」における「60fpsアクションを実現する秘訣を伝授」の登壇資料です。 ●公式サイト https://unrealengine.jp/unrealfest/ === 発売中のタイトル「NARUTO TO BORUTO シノビストライカー」に開発中のプロジェクトの事例も加えて、60fpsアクションゲームを実現するためのポイントや、パフォーマンス・チューニングについて解説します。おまけとして「NARUTO TO BORUTO シノビストライカー」のグラフィック面の技術を紹介。
ららマジでしかできない!?キャラクターアセット最適化事例
ららマジでしかできない!?キャラクターアセット最適化事例
gree_tech
「WFS Tech Talk #1」で発表された資料です。 https://gree.connpass.com/event/129292/
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
UnityTechnologiesJapan002
2019/9/25-6に開催されたUnite Tokyo 2019の講演スライドです。 竹原 涼(株式会社セガゲームス) 山田 英伸(株式会社セガゲームス) こんな人におすすめ ・アセットのダウンロード時間を短縮したいと思っているプログラマ ・HTTP/2 通信に興味を持っているプログラマ 受講者が得られる知見 ・ アセットダウンロードに効果的な HTTP/2通信の概要 ・Unity上での HTTP/2通信の実装事例 ・ネイティブプラグイン(C/C++)の実装事例 Unityのイベント資料はこちらから: https://www.slideshare.net/UnityTechnologiesJapan/clipboards
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
日本マイクロソフト株式会社
日本マイクロソフト株式会社 App Innovation カスタマーエンジニア本部 大田 一希 Windows 11 が 10 月に発表され Visual Studio 2022 と .NET 6 も 11 月に発表されました。 歴史的経緯から様々な選択肢がある Windows アプリ開発技術について、このタイミングで一度整理整と特徴の紹介を行います。 紹介予定の技術:WPF, Windows Forms, MAUI, Windows App SDK, Blazor
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
Yoshifumi Kawai
MagicOnion Meetup #1
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
com044
UE4プログラマー向け勉強会 in 大阪 https://connpass.com/event/76815/
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
historia_Inc
本ドキュメントは、Unreal Engine 専門ゲームデベロッパーである株式会社ヒストリアの社内文書を公開用にアレンジしたものです。バージョン管理ツールPerforce(Helix Core)をUnreal Engine 4 と併せて使うことを前提とした、ヒストリア社内の運用レギュレーションを記してあります。 あくまで弊社内での使い方を記したものですが、ご参考になれば幸いです。 ↓以下のスライドとセットでご覧ください。 https://www.slideshare.net/historia_Inc/helix-core-unreal-engine-4-helix-core ↓docx版のDLはこちら。 http://historia.co.jp/distribution/docs/historia_Perforce_Regulation.zip
Jvm internal
Jvm internal
Go Tanaka
息抜きにUnityであそぼう(3D Game Kit Liteの話)
息抜きにUnityであそぼう(3D Game Kit Liteの話)
Hiromichi Yamada
3D Game Kit Liteを使おう (+URP導入へのリンク、Quibliのメモ)
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
エピック・ゲームズ・ジャパン Epic Games Japan
2017年7月2日に行われたライセンシー様向けMO勉強会の資料です。基礎編② (登壇者: historia 原龍さま)
はじめてのScriptable Build Pipeline
はじめてのScriptable Build Pipeline
Unity Technologies Japan K.K.
AssetBundleやゲームをビルドする新機能、Scriptable Build Pipeineの大雑把な概要と、読み方について紹介します。
【Unite 2017 Tokyo】Unity+WebGLでゲームを開発・運用して見えてきたメリット・デメリット
【Unite 2017 Tokyo】Unity+WebGLでゲームを開発・運用して見えてきたメリット・デメリット
Unite2017Tokyo
講演者:小川 陽平(株式会社DMM.comラボ) 西田 充宏(株式会社DMM.comラボ) 安達 大輔(株式会社DMM.comラボ) こんな人におすすめ ・Unityを勉強・仕事で使用している方 ・これからWebGLで開発・運用を考えている方 ・WebGLで売り上げを立てたい方 受講者が得られる知見 ・WebGL開発のノウハウ ・ブラウザゲーム市場のWebGL動向
UniRxでMV(R)Pパターンをやってみた
UniRxでMV(R)Pパターンをやってみた
torisoup
Model-View-(Reactive)Presenterパターンをやってみた話
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
Unity Technologies Japan K.K.
UnityのUIとはどういったシステムなのか、そして最適化する上で確認すべきポイントとTipsを紹介します。 --- このスライドは、「TECHxGAME COLLEGE#10 Unityでパフォーマンスの良いUIを作る為のTips」で紹介したスライドを少し手直ししたものとなります。 https://techxgamecollege.connpass.com/event/99824/
Cocos2d-x(v3.x)で作るマルチプラットフォームゲーム
Cocos2d-x(v3.x)で作るマルチプラットフォームゲーム
Norio Akagi
JTPA主催のTech talk #1 http://www.jtpa.org/event/seminor/608 での講演スライドです。
cocos2d-xのすすめ
cocos2d-xのすすめ
cowboy_tokyo
More Related Content
What's hot
WFSのゲームエンジンの歴史と今後の戦略
WFSのゲームエンジンの歴史と今後の戦略
gree_tech
「WFS Tech Talk #1」で発表された資料です。 https://gree.connpass.com/event/129292/
UE4 MultiPlayer Online Deep Dive 基礎編1 -Getting Started- (historia様ご講演) #UE4DD
UE4 MultiPlayer Online Deep Dive 基礎編1 -Getting Started- (historia様ご講演) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
2017年7月2日に行われたライセンシー様向けMO勉強会の資料です。基礎編① (登壇者: historia 原龍さま)
View customize1.2.0の紹介
View customize1.2.0の紹介
onozaty
第15回 redmine.tokyo にて発表したView Customize Pluginバージョン1.2.0の紹介資料です
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
2014/06/14に行われたOSC Hokkaido 2014内で株式会社インフィニットループの佐々木が発表したセミナー、「新入社員のための大規模ゲーム開発入門 サーバサイド編」のスライド資料
Unityティーチャートレーニングデイ -認定プログラマー編-
Unityティーチャートレーニングデイ -認定プログラマー編-
Unity Technologies Japan K.K.
Unity認定プログラマーの試験範囲を念頭にプログラマーとして知っておきたいUnityの実装方法について学びます。また、Unity AnalyticsなどUnityが提供するサービス(機能)についても実装方法(Unity認定プログラマー試験レベル)について学びます。 ■こんな人におすすめ ・(調べながらでも) Unityの一通りの機能を使える ・C#の基本的な文法は理解している ■トレーニング環境と準備について ・使用するUnityのバージョン: Unity2019.4.8f1 ・使用するプロジェクト:BaseProject_2019.4.8.1f 以下のURLからダウンロード可能です。 https://drive.google.com/file/d/1L3WExri_sPexkMKz-OaJ0mQTLj4v88LH/view?usp=sharing
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
container runtime meetup #4で発表した資料です。 https://runtime.connpass.com/event/253798/
60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編
エピック・ゲームズ・ジャパン Epic Games Japan
講演動画:https://youtu.be/YXGmiWzHxeo 基礎編:https://www.slideshare.net/EpicGamesJapan/ue4-festeast2019-60fpsbasic 2019年10月6日に行われた「UNREAL FEST EAST 2019」における「60fpsアクションを実現する秘訣を伝授」の登壇資料です。 ●公式サイト https://unrealengine.jp/unrealfest/ === 発売中のタイトル「NARUTO TO BORUTO シノビストライカー」に開発中のプロジェクトの事例も加えて、60fpsアクションゲームを実現するためのポイントや、パフォーマンス・チューニングについて解説します。おまけとして「NARUTO TO BORUTO シノビストライカー」のグラフィック面の技術を紹介。
ららマジでしかできない!?キャラクターアセット最適化事例
ららマジでしかできない!?キャラクターアセット最適化事例
gree_tech
「WFS Tech Talk #1」で発表された資料です。 https://gree.connpass.com/event/129292/
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
UnityTechnologiesJapan002
2019/9/25-6に開催されたUnite Tokyo 2019の講演スライドです。 竹原 涼(株式会社セガゲームス) 山田 英伸(株式会社セガゲームス) こんな人におすすめ ・アセットのダウンロード時間を短縮したいと思っているプログラマ ・HTTP/2 通信に興味を持っているプログラマ 受講者が得られる知見 ・ アセットダウンロードに効果的な HTTP/2通信の概要 ・Unity上での HTTP/2通信の実装事例 ・ネイティブプラグイン(C/C++)の実装事例 Unityのイベント資料はこちらから: https://www.slideshare.net/UnityTechnologiesJapan/clipboards
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
日本マイクロソフト株式会社
日本マイクロソフト株式会社 App Innovation カスタマーエンジニア本部 大田 一希 Windows 11 が 10 月に発表され Visual Studio 2022 と .NET 6 も 11 月に発表されました。 歴史的経緯から様々な選択肢がある Windows アプリ開発技術について、このタイミングで一度整理整と特徴の紹介を行います。 紹介予定の技術:WPF, Windows Forms, MAUI, Windows App SDK, Blazor
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
Yoshifumi Kawai
MagicOnion Meetup #1
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
com044
UE4プログラマー向け勉強会 in 大阪 https://connpass.com/event/76815/
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
historia_Inc
本ドキュメントは、Unreal Engine 専門ゲームデベロッパーである株式会社ヒストリアの社内文書を公開用にアレンジしたものです。バージョン管理ツールPerforce(Helix Core)をUnreal Engine 4 と併せて使うことを前提とした、ヒストリア社内の運用レギュレーションを記してあります。 あくまで弊社内での使い方を記したものですが、ご参考になれば幸いです。 ↓以下のスライドとセットでご覧ください。 https://www.slideshare.net/historia_Inc/helix-core-unreal-engine-4-helix-core ↓docx版のDLはこちら。 http://historia.co.jp/distribution/docs/historia_Perforce_Regulation.zip
Jvm internal
Jvm internal
Go Tanaka
息抜きにUnityであそぼう(3D Game Kit Liteの話)
息抜きにUnityであそぼう(3D Game Kit Liteの話)
Hiromichi Yamada
3D Game Kit Liteを使おう (+URP導入へのリンク、Quibliのメモ)
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
エピック・ゲームズ・ジャパン Epic Games Japan
2017年7月2日に行われたライセンシー様向けMO勉強会の資料です。基礎編② (登壇者: historia 原龍さま)
はじめてのScriptable Build Pipeline
はじめてのScriptable Build Pipeline
Unity Technologies Japan K.K.
AssetBundleやゲームをビルドする新機能、Scriptable Build Pipeineの大雑把な概要と、読み方について紹介します。
【Unite 2017 Tokyo】Unity+WebGLでゲームを開発・運用して見えてきたメリット・デメリット
【Unite 2017 Tokyo】Unity+WebGLでゲームを開発・運用して見えてきたメリット・デメリット
Unite2017Tokyo
講演者:小川 陽平(株式会社DMM.comラボ) 西田 充宏(株式会社DMM.comラボ) 安達 大輔(株式会社DMM.comラボ) こんな人におすすめ ・Unityを勉強・仕事で使用している方 ・これからWebGLで開発・運用を考えている方 ・WebGLで売り上げを立てたい方 受講者が得られる知見 ・WebGL開発のノウハウ ・ブラウザゲーム市場のWebGL動向
UniRxでMV(R)Pパターンをやってみた
UniRxでMV(R)Pパターンをやってみた
torisoup
Model-View-(Reactive)Presenterパターンをやってみた話
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
Unity Technologies Japan K.K.
UnityのUIとはどういったシステムなのか、そして最適化する上で確認すべきポイントとTipsを紹介します。 --- このスライドは、「TECHxGAME COLLEGE#10 Unityでパフォーマンスの良いUIを作る為のTips」で紹介したスライドを少し手直ししたものとなります。 https://techxgamecollege.connpass.com/event/99824/
What's hot
(20)
WFSのゲームエンジンの歴史と今後の戦略
WFSのゲームエンジンの歴史と今後の戦略
UE4 MultiPlayer Online Deep Dive 基礎編1 -Getting Started- (historia様ご講演) #UE4DD
UE4 MultiPlayer Online Deep Dive 基礎編1 -Getting Started- (historia様ご講演) #UE4DD
View customize1.2.0の紹介
View customize1.2.0の紹介
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
Unityティーチャートレーニングデイ -認定プログラマー編-
Unityティーチャートレーニングデイ -認定プログラマー編-
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編
ららマジでしかできない!?キャラクターアセット最適化事例
ららマジでしかできない!?キャラクターアセット最適化事例
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
Jvm internal
Jvm internal
息抜きにUnityであそぼう(3D Game Kit Liteの話)
息抜きにUnityであそぼう(3D Game Kit Liteの話)
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
はじめてのScriptable Build Pipeline
はじめてのScriptable Build Pipeline
【Unite 2017 Tokyo】Unity+WebGLでゲームを開発・運用して見えてきたメリット・デメリット
【Unite 2017 Tokyo】Unity+WebGLでゲームを開発・運用して見えてきたメリット・デメリット
UniRxでMV(R)Pパターンをやってみた
UniRxでMV(R)Pパターンをやってみた
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
Viewers also liked
Cocos2d-x(v3.x)で作るマルチプラットフォームゲーム
Cocos2d-x(v3.x)で作るマルチプラットフォームゲーム
Norio Akagi
JTPA主催のTech talk #1 http://www.jtpa.org/event/seminor/608 での講演スライドです。
cocos2d-xのすすめ
cocos2d-xのすすめ
cowboy_tokyo
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
Tomoaki Shimizu
2016/5/9 イベント&コミュニティスペース dots.にて開催したCocos2d-x(JS) ハンズオン #07 「新エディタ Cocos Creator v1.0」の資料です。Cocos2d-xの開発元であるChukongによる新しいエディタCocos Creatorの利用方法を紹介しました。
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
Tomoaki Shimizu
2015/11/5 イベント&コミュニティスペース dots.にて開催したCocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」の資料です。Cocos2d-xの開発環境設定のほか、プロジェクトの作成・実行などを紹介しました。
ポコロンダンジョンズとリアルタイム通信 -クライアント編-
ポコロンダンジョンズとリアルタイム通信 -クライアント編-
Suguru Shirai
https://atnd.org/events/76070 の発表資料です
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
dena_study
第7回DeNAゲーム開発勉強会×モノビット
Viewers also liked
(6)
Cocos2d-x(v3.x)で作るマルチプラットフォームゲーム
Cocos2d-x(v3.x)で作るマルチプラットフォームゲーム
cocos2d-xのすすめ
cocos2d-xのすすめ
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
ポコロンダンジョンズとリアルタイム通信 -クライアント編-
ポコロンダンジョンズとリアルタイム通信 -クライアント編-
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
Similar to Cocos2d-xの深層 Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
Cocos2d-xの深層〜Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
Cocos2d-xの深層〜Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
Ryuichi Kubuki
2016年8月24日パシフィコ横浜にて開催されたCEDEC 2016での久富木隆一(グリー株式会社)による講演の資料です。 http://cedec.cesa.or.jp/2016/session/ENG/3462.html ピュアJavaまたはObjective-Cで別個に開発されたAndroid/iOS各プラットフォーム向けクライアントコードベースを、Cocos2d-xへの単純移植ではなく、既存アプリへのプラグインのようにCocos2d-x自体をまるごと組み込むこと(embed)により、移行のコストとリスクを最小限に抑制しつつ統合してゆく手法をご紹介いたします。
Cocos2d-xによる最新ゲーム開発
Cocos2d-xによる最新ゲーム開発
Chukong Technologies Japan
Cocos2d-xによる最新ゲーム開発
Node-RED v1.3新機能紹介
Node-RED v1.3新機能紹介
Hitachi, Ltd. OSS Solution Center.
5/18に開催されたNode-RED UG勉強会「v1.3新機能紹介&LT」での発表スライドです。 - 登壇動画: https://youtu.be/X7LU3sVyrO4?t=606 - Twitterまとめ: https://togetter.com/li/1716435 - 本勉強会の案内ページ: https://node-red.connpass.com/event/210698/
Mk data intensive-onic2021
Mk data intensive-onic2021
Miya Kohno
Data Intensive Architecture - Issues on Edge Computing and Multi Access
デバイスWebAPI実装のアップデートと利用事例について
デバイスWebAPI実装のアップデートと利用事例について
Device WebAPI Consortium
デバイスWebAPIコンソーシアム 第8回技術WG会合 株式会社NTTドコモ 山添 隆文 氏
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
Drecom Co., Ltd.
Presentation slide at CEDEC2014.
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
日本マイクロソフト株式会社
var msbuild = new MSBuild(2020); var updates = msbuild.getUpdates("Azure", "Visual Studio", ".NET"); foreach (var update in updates) { update.Show(); }
脅威へ、しなやかかつ持続可能に対応するためのIaC環境 ~循環型IaC~ (CloudNative Security Conference 2022 プレ...
脅威へ、しなやかかつ持続可能に対応するためのIaC環境 ~循環型IaC~ (CloudNative Security Conference 2022 プレ...
NTT DATA Technology & Innovation
脅威へ、しなやかかつ持続可能に対応するためのIaC環境 ~循環型IaC~ (CloudNative Security Conference 2022 プレイベント 発表資料) 2022年7月12日(火) NTTデータ 第一金融事業本部 郵政・政策金融事業部 服部 洋明
「釣り★スタ」でのCocos2d-JSを使ってのアプリアップデート事例 (2)
「釣り★スタ」でのCocos2d-JSを使ってのアプリアップデート事例 (2)
gree_tech
Cocos2d-x Talks #2(2015/3/15)発表資料 「釣り★スタ」でのCocos2d-JSを使っての アプリアップデート事例 発表者 グリー株式会社 Wright Flyer Studios部 中 貴弘 グリー株式会社 Web Game Studio部 / 釣りスタグループ 和田孝尚 概要 日本最初のモバイルソーシャルゲームである「釣り★スタ」 フィーチャーフォンの時代から存在するゲームをCocos2d-JSを使ってのアプリ作成。 既に稼働中のサービスに対して行うアプリアップデート、その中で一番重視したことは実現できたのか。実際にプレイしたユーザからの反応等も交えて開発の事例を紹介できればと思います。
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
日本マイクロソフト株式会社
多くのお客様にご利用いただき、さらなる進化を続けるマネージドサービス "cloud.config" 。2019 年 6 月には国内初の Azure Expert MSP 認定を受けました。cloud.config がご提供する価値は、システムの安定運用だけにとどまりません。AI を駆使し、FIXER が独自に開発したサービスは cloud.config でラッピングされ、SaaS としてすぐにご利用いただけます。また cloud.config の知見を教材化し、人材育成のご支援も始めています。本セッションでは、「クラウド運用」「AI」「人材育成」の切り口で、最新の cloud.config をご紹介します。
GPU Container as a Service を実現するための最新OSS徹底比較
GPU Container as a Service を実現するための最新OSS徹底比較
NTT Communications Technology Development
OpenStack Days Tokyo 2017 での発表資料です。
ITフォーラム2020 AITC(3)
ITフォーラム2020 AITC(3)
aitc_jp
『安心安全な空気を読む家』LookingGlassで空間のAR
Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2
Amazon Web Services Japan
2017/01/24に開催されたGaming Tech Night #2のセッション資料です。
Windows azure mobile services を使った windows ストアアプリ開発 1027
Windows azure mobile services を使った windows ストアアプリ開発 1027
Shotaro Suzuki
技術ひろば 10/27 Windows Azure Mobile Services 資料はこちらです!ソースコードは私のBlog等を参照してください。http://blogs.msdn.com/b/shosuz/
20160903predix_cognitiveservices
20160903predix_cognitiveservices
zuhitoslide
PredixとCognitive Servicesを連携してみた。
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
Yuta Matsumura
https://alterbooth.connpass.com/event/164976/
Cocos2d-xおよび関連サービスについて
Cocos2d-xおよび関連サービスについて
Chukong Technologies Japan
2015/1/9 Cocos2d-x Talks #1にて講演した資料
AWSにおけるIaCを活かしたTerraformの使い方2選! ~循環型IaCとマルチクラウドチックなDR環境~ (HashiTalks: Japan 発...
AWSにおけるIaCを活かしたTerraformの使い方2選! ~循環型IaCとマルチクラウドチックなDR環境~ (HashiTalks: Japan 発...
NTT DATA Technology & Innovation
AWSにおけるIaCを活かしたTerraformの使い方2選! ~循環型IaCとマルチクラウドチックなDR環境~ (HashiTalks: Japan 発表資料) 2022年8月25日(木) NTTデータ 第一金融事業本部 郵政・政策金融事業部 服部 洋明
Dragon board+センサモジュール ハードウェア開発セミナー (2017 06-12) #ドローン #IoT #Azure #zephyr
Dragon board+センサモジュール ハードウェア開発セミナー (2017 06-12) #ドローン #IoT #Azure #zephyr
博宣 今村
IoTあるじゃん セミナー Dragon board+センサモジュール ハードウェア開発セミナー
Hbstudy41 slide
Hbstudy41 slide
Fujishiro Takuya
#hbstudy 41
Similar to Cocos2d-xの深層 Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
(20)
Cocos2d-xの深層〜Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
Cocos2d-xの深層〜Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
Cocos2d-xによる最新ゲーム開発
Cocos2d-xによる最新ゲーム開発
Node-RED v1.3新機能紹介
Node-RED v1.3新機能紹介
Mk data intensive-onic2021
Mk data intensive-onic2021
デバイスWebAPI実装のアップデートと利用事例について
デバイスWebAPI実装のアップデートと利用事例について
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
脅威へ、しなやかかつ持続可能に対応するためのIaC環境 ~循環型IaC~ (CloudNative Security Conference 2022 プレ...
脅威へ、しなやかかつ持続可能に対応するためのIaC環境 ~循環型IaC~ (CloudNative Security Conference 2022 プレ...
「釣り★スタ」でのCocos2d-JSを使ってのアプリアップデート事例 (2)
「釣り★スタ」でのCocos2d-JSを使ってのアプリアップデート事例 (2)
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
GPU Container as a Service を実現するための最新OSS徹底比較
GPU Container as a Service を実現するための最新OSS徹底比較
ITフォーラム2020 AITC(3)
ITフォーラム2020 AITC(3)
Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2
Windows azure mobile services を使った windows ストアアプリ開発 1027
Windows azure mobile services を使った windows ストアアプリ開発 1027
20160903predix_cognitiveservices
20160903predix_cognitiveservices
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
Cocos2d-xおよび関連サービスについて
Cocos2d-xおよび関連サービスについて
AWSにおけるIaCを活かしたTerraformの使い方2選! ~循環型IaCとマルチクラウドチックなDR環境~ (HashiTalks: Japan 発...
AWSにおけるIaCを活かしたTerraformの使い方2選! ~循環型IaCとマルチクラウドチックなDR環境~ (HashiTalks: Japan 発...
Dragon board+センサモジュール ハードウェア開発セミナー (2017 06-12) #ドローン #IoT #Azure #zephyr
Dragon board+センサモジュール ハードウェア開発セミナー (2017 06-12) #ドローン #IoT #Azure #zephyr
Hbstudy41 slide
Hbstudy41 slide
More from gree_tech
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/ShortSession-7
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/ShortSession-8
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/Session-10
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/ShortSession-6
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/Session-9
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/Session-8
海外展開と負荷試験
海外展開と負荷試験
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/Session-6
翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/ShortSession-5
組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/ShortSession-4
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/ShortSession-3
データエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件について
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/ShortSession-2
シェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジー
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/Session-5
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/Session-4
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/ShortSession-1
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/Session-3
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/Session-2
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/Session-1
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/Session-13
基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-
基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/Keynote
REALITY iOSアプリを支える開発効率化
REALITY iOSアプリを支える開発効率化
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/Session-12
More from gree_tech
(20)
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
海外展開と負荷試験
海外展開と負荷試験
翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み
組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
データエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件について
シェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジー
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-
基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-
REALITY iOSアプリを支える開発効率化
REALITY iOSアプリを支える開発効率化
Cocos2d-xの深層 Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
1.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-xの深層 2016/08/24 @ CEDEC 2016 久富木 隆一 (KUBUKI Ryuichi) Cocos2d-x組み込みによる ピュアAndroid/iOSアプリの 外科手術的統合
2.
Copyright © GREE,
Inc. All Rights Reserved. 本日お話する内容 2 1. 自己紹介 2. 前提の共有: Cocos2d-xとは何か 3. Android/iOSクライアント統合という問題 - 2-1. 問題の状況と目指すべきゴール - 2-2. 統合案の検討と採用案 4. Cocos2d-x組み込みによるクライアント統合 - 3-1. Android/iOSアプリの構造 - 3-2. Cocos2d-xのAndroid/iOS実装の構造 - 3-3. Cocos2d-x組み込みの技術的詳細 - 3-4. これからのCocos2d-x 5. 総括
3.
Copyright © GREE,
Inc. All Rights Reserved. 自己紹介 3 • 久富木 隆一 (KUBUKI Ryuichi) • グリー株式会社 • West Game事業本部 GREE International Entertainment(米国サ ンフランシスコ)等、海外ゲーム事業を担当
4.
Copyright © GREE,
Inc. All Rights Reserved. 自己紹介 4 Crime City • Android / iOS • 2011- • Over tens of millions download globally Modern War • Android / iOS • 2011- • Over tens of millions download globally
5.
Copyright © GREE,
Inc. All Rights Reserved. 自己紹介 5 • 久富木 隆一 (KUBUKI Ryuichi) Twitter: @ryukbk 『ゲームアプリの数学 Unityで学ぶ基礎からシェーダーまで』 (SBクリエイティブ刊) • リアルタイム3Dグラフィックスを成 り立たせている数学要素をUnityサン プルプロジェクト付きで解説 • OpenGL ESレンダリングパイプライ ンやGPUアーキテクチャー、モバイ ル向け最適化も紹介
6.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-xとは何か 6 • Cocos2d • iOS向けの2Dゲームエンジン(Objective-C, Ricardo Quesada, 2008) • Cocos2d-x • Cocos2dのAPIを保持しつつ Android/Windows向けに移植(C++, Zhe Wang, 2010) • Cocos2d-xの現在 • Cocos2d作者も合流した主流となり、APIを 独自発展。中国Chukong Technologiesを主 な支援者としてオープンソース開発中
7.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-xとは何か 7 • Cocos2d-xは完全にオープンソース • Unityは完全にオープンソースではない • Cocos2d-xは完全無料 • Unity、Unreal Engineは有料 メリット デメリット • Cocos2d-xにはベンダーサポートはない(コミュ ニティはある) • 3Dや開発環境など発展途上
8.
Copyright © GREE,
Inc. All Rights Reserved. Android/iOSクライアント統合という問題 8 Crime City • Android / iOS • 2011- Modern War • Android / iOS • 2011- • iOS/Androidクライアントを、別々のチーム がそれぞれ独立して開発(ピュアObj-C/Java) • 通信するサーバー、スタティックデータ(マ スターデータ)は共通 • それ以外(ビュー/UI、ロジック)は全てプ ラットフォーム別に独自実装 状況把握
9.
Copyright © GREE,
Inc. All Rights Reserved. Android/iOSクライアント統合という問題 9 • 問題1: 同じゲームの複数の実装 • 車輪の再発明 • Android/iOS開発者が別個にい るためヘッドカウントが2倍 • Android/iOS実装間での見た目 や挙動の差異
10.
Copyright © GREE,
Inc. All Rights Reserved. Android/iOSクライアント統合という問題 10 • 問題2: データ駆動ではないデザイ ンパイプライン • エンジニアがUIやアニメーショ ンの調整を実施 • エンジニアがステート遷移を コードで実装 • スタティックデータの変更以外 エンジニアの助力なしに行えな い
11.
Copyright © GREE,
Inc. All Rights Reserved. Android/iOSクライアント統合という問題 11 • 問題3: 将来にわたって安心(future- proof)ではないレガシーアーキテクチャー • 描画がOpenGL ES 1.1に留まる • 新OSバージョンへの対応コスト • 3D、パーティクル、物理、AIなどゲー ムデザインに影響を与える技術要素の追 加困難 • Objective-CはSwiftに取って代わられる • 開発者を探しにくい
12.
Copyright © GREE,
Inc. All Rights Reserved. Android/iOSクライアント統合という問題 12 1. 同じゲームの複数の実装 2. データ駆動ではないデザイ ンパイプライン 3. 将来にわたって安心 (future-proof)ではないレ ガシーアーキテクチャー 問題
13.
Copyright © GREE,
Inc. All Rights Reserved. Android/iOSクライアント統合という問題 13 よし、Android/iOSで 分かれているクライア ントを1つに統合しよ う! 結論
14.
Copyright © GREE,
Inc. All Rights Reserved. Android/iOSクライアント統合という問題 14 1. 単一の実装への統合 • Write Once, Run Everywhere • ユニットテスト/テスト自動化が楽 2. データ駆動デザインパイプライン • エンジニアリングリソースがボトルネックと ならない 3. 将来にわたって安心(future-proof)なアー キテクチャー • 一般的なゲームエンジンの最新版を利用 • 既に流通しているソフトウェアコンポーネン トの再利用 ゴール
15.
Copyright © GREE,
Inc. All Rights Reserved. Android/iOSクライアント統合という問題 15 1.なるべく早期のローンチを 2.なるべく移行をスムースに 3.なるべく低い金銭的コストで 4.なるべく低い開発者教育コストで 5.サーバーとスタティックデータは 現在のものを流用 6.オリジナルの見た目を踏襲 現実的な追加要件
16.
Copyright © GREE,
Inc. All Rights Reserved. Android/iOSクライアント統合という問題 16 1.保守的な案 • 現実的、低リスク、地味、 コード駆動、旧式 2.革新的な案 • 理想的、高リスク、派手、 データ駆動、モダン 2つの案
17.
Copyright © GREE,
Inc. All Rights Reserved. Android/iOSクライアント統合という問題 17 • 今回のゲーム(既存アプリ)内に、スク リプトエンジン等を組み込むのと同様 に、Cocos2d-xゲームエンジンをまる ごと組み込み(embed) • 新フィーチャーのみCocos2d-xで開発 • 既存アプリのコードを原則再利用し、 必要に応じてCocos2d-x部分へ漸次移 植 保守的な案
18.
Copyright © GREE,
Inc. All Rights Reserved. Android/iOSクライアント統合という問題 18 1. 単一の実装への統合 • C++でAndroid/iOS向けに実装できる • ただし既存アプリ部分とのブリッジAPIを実装 するコードは複雑になる • ただし既存コード(Obj-C/Java)のメインテナ ンスは必要 2. データ駆動デザインパイプライン • Cocos Studio/Cocos Creatorが使える 3. 将来にわたって安心(future-proof)なアー キテクチャー • 最新のオープンソースゲームエンジン 保守的な案(Cocos2d-x組み込み)
19.
Copyright © GREE,
Inc. All Rights Reserved. Android/iOSクライアント統合という問題 19 • Unityへ移植 • 現在のサーバー&スタティックデータ &アセットデータとの互換性を持つク リーン実装 • 課金や通知など再実装/再検証コスト が高い部分のみ既存アプリ実装をネイ ティブプラグイン化して再利用 • データ駆動デザインを促進するUnity アセットの利用 革新的な案
20.
Copyright © GREE,
Inc. All Rights Reserved. Android/iOSクライアント統合という問題 20 1. 単一の実装への統合 • C#でAndroid/iOS向けに実装できる 2. データ駆動デザインパイプライン • Unity Editor中心の開発 • MarkUX: XMLによるMVVMでUI作成 • NodeCanvas: Behaviour TreeやHierarchical State Machineで状態遷移作成 3. 将来にわたって安心(future-proof)なアー キテクチャー • 最新のトレンドを押さえたゲームエンジン 革新的な案(Unity移植)
21.
Copyright © GREE,
Inc. All Rights Reserved. Android/iOSクライアント統合という問題 21 • 保守的な案(Cocos2d-x組み込み)と 革新的な案(Unity移植)を3つのゴー ルの達成度で比較した場合、革新的 な案の方が優位となった • しかし、追加的要件も勘案すると、 保守的な案(Cocos2d-x組み込み)が 優位となったため、今回はそちらを 採用した 採用案
22.
Copyright © GREE,
Inc. All Rights Reserved. Android/iOSクライアント統合という問題 22 1. なるべく早期のローンチを 2. なるべく移行をスムースに 3. なるべく低い金銭的コストで 4. なるべく低い開発者教育コストで 5. サーバーとスタティックデータは現在のものを 流用 6. オリジナルの見た目を踏襲 Cocos2d-x組み込みはこれらの要件を満たす 1: (Cocos2d-x組み込みの技術さえ確立できれば)移植より早く済む。 2/5/6: 既存部分の流用が多いので問題が少ない。 3: Cocos2d-xは無料である。 4: 偶然今回のプロジェクトチームではCocos2d-x経験者が多かったので 問題とならなかった。
23.
Copyright © GREE,
Inc. All Rights Reserved. Android/iOSクライアント統合という問題 23 • Unityのネイティブプラグインは独 自描画を行えるため、既存アプリ部 分をまるごとネイティブプラグイン 化することも考えられる • しかし、Unity側に変更を加える必 要が出てくる可能性、既存アプリ部 分のビルドシステムとの親和性を考 え、今回は見送った Unityへの既存アプリの組み込みはできないのか
24.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 24 • いきなり実装の詳細に入って行く前に、全体の 大まかな構造をイメージし、何ができそうかを 構想してみよう • Cocos2d-x組み込みを思いついたのは、 Cocos2d-xの内部実装に自分が通暁していたか らではなく、一般的なアプリを構成するゲーム エンジンなら必ず一定の構造を内包しているは ずなのでそれを再利用してやればよい、という 想定が自分の中にあったから • ソースコードがある以上どうにでもなるという 楽観があった(OSの仕様に阻まれないかぎりは) 実装の詳細を追う前に
25.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 25 • 単純化して考えると、アプリは4つの要 素から成立している 1. イベントループ 2. ロジック 3. GLビュー 4. ネイティブUIウィジェットビュー アプリの抽象的構造
26.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 26 • 常に動作しているイベントループが必要に応じて 異なるユーザー定義ロジック(Java/Obj-C)を実行 • 結果を、ネイティブUIウィジェットビュー(OS固 有のダイアログなどのUIウィジェット表示)、また はアプリが独自にOpenGL ESでカスタム描画する GLビューへ出力 アプリの抽象的構造
27.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 27 • 常に動作しているイベントループが必要 に応じて異なるユーザー定義ロジック (C++)を実行し、実行結果を、アプリが 独自にOpenGL ESで描画するGLビュー へ反映 Cocos2d-xの抽象的構造
28.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 28 • Cocos2d-xのGLビューが最前面に描 画される Cocos2d-xを組み込んだアプリ構造の完成形
29.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 29 • UIView(とCALayer)の階層にGLビューを含む全 てのビューは属する • Objective-C言語は、ファイル拡張子を.mか ら.mmにするとObjective-C++としてCだけで はなくC++コードを混ぜることができる • Obj-Cの世界とC++の世界のメモリ空間は単一 • Obj-C - C++ - Obj-CまたはC++ - Obj-C - C++の呼び出しとコールバック実行による処理 継続は、同期で、同じスタックフレーム上で起 こる • メタファー: iOSアプリの世界は、モノリシック (一枚岩)な世界である iOSアプリの特性
30.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 30 • 1つのアプリが複数のActivityを内包する • Activityは複数のFragmentを内包する • ActivityはWindowとViewの階層を持つ • ViewはGLビューであるGLSurfaceViewを含む • Activity同士はIntentで通信しあう • Activityが存在するJavaの世界(JVM)と、Linuxネイ ティブのC/C++の世界(NDK)のメモリ空間は、分離さ れており、越境(JNI)のコストは高い • Java - C++ - JavaまたはC++ - Java - C++の呼び出 しとコールバック実行による処理継続は、非同期で、 異なるスタックフレーム/スレッド上で起こる • メタファー: Androidの世界は、分散オブジェクト/ メッセージパッシング/疎結合マイクロサービスの世界 である Androidアプリの特性
31.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 31 • Cocos2d-x自身は、これまで見てきた両プラット フォームの特性を利用しつつ差異を吸収する形で 実装してある • Cocos2d-xは、他アプリに組み込まれることを想 定した構造にはなっていないはず • であれば、今回やるべきことの中心は2つ 1. 既存アプリとCocos2d-xとのブリッジコード を実装してやる 2. Cocos2d-xのAndroid/iOS実装が他アプリの 存在を想定していない構造になっている部分 にパッチを適用(実際はほんの少しで済んだ) Cocos2d-xのAndroid/iOS実装と組み込み
32.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 32 1. (AppDelegateはstatic変数領域に起動時 生成) 2. AppController# didFinishLaunchingWithOptionsでGL ビューであるCCEAGLViewを生成 3. 作成したGLビューをRootViewController でビュー階層内に追加 4. Cocos2d-x側からGLビューに描画を行う GLViewオブジェクトを生成 Cocos2d-xのiOS実装の起動フロー
33.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 33 1. Java: Cocos2dxActivityを生成 2. C++: platform/android下のjavaactivity- android.cppをJNIで呼び出し、Cocos2d-xア プリケーション本体であるAppDelegateをヒー プ領域に生成 3. Java: GLビューであるGLSurfaceViewを生成 4. Java: Cocos2dxRendererを生成 5. C++: javaactivity-android.cppを呼んで、 Cocos2d-x側からGLビューに描画を行う GLViewImplを生成 Cocos2d-xのAndroid実装の起動フロー
34.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 34 1. 既存アプリ内からCocos2d-xを起動してシーンを 作成し、全画面/モーダルダイアログとして表示 • シーン属性情報(例えばCocos2d-xダイアログの表示 サイズ)はJava/Obj-C側ではなくCocos2d-x側で持つ 2. 複数回表示を反復しても問題ないこと(冪等性) 3. アプリ起動直後からCocos2d-xオブジェクト (AppDelegate)がC++側に存在すること 4. パフォーマンス低下を防ぐこと(速度/占有メモリ /占有ストレージサイズ) 5. Cocos2d-xと既存アプリのモジュールを混在させ た単一バイナリを生成するビルドプロジェクトを 構成 Cocos2d-x組み込み要件
35.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 35 1.既存アプリ側からCocos2d-xを 起動し指定したシーンを表示 2.Cocos2d-xから既存アプリ側の Android/iOSネイティブ機能を クロスプラットフォームの同じ インターフェイスで利用するた めのAPI Cocos2d-x組み込みのために実装する機能
36.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 36 • iOSアプリの中からのCocos2d-x起動は、 Cocos2d-x自体のiOS実装同様に、シンプル • Cocos2d-x起動フローと同様のGLビュー生成を、 既存アプリ内でCocos2d-xを起動したい場所から 呼び出すだけ • GLビューをどの位置にどのサイズで生成するか という点のみ解決できればよい • [UIScreen mainScreen].applicationFrameで取得し た画面サイズ(iOS 7以前はw/hが逆なので注意)と、 Cocos2d-xシーン側に設定したシーンサイズを使う • Obj-C++なので既存アプリからCocos2d-x側の関数 を簡単に呼び出せる 組み込みCocos2d-x起動: iOS
37.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 37 • Cocos2d-xのAndroid版はActivity(Cocos2dxActivity) として実装されているため、継承したクラスを作成し 挙動をオーバーライド。「アプリ起動直後から AppDelegateがC++側に存在すること」という要件を 満たすために、起動直後に生成されるメインActivityと してそのクラスを指定 • Cocos2d-xのライブラリ(libcocos2dcpp.so)をロード し、C++側のメモリ空間にAppDelegateとGLViewが 生成されたら、C++側からJavaのCocos2dxActivity継 承クラス側にメッセージを送り、既存アプリのActivity を起動して、既存アプリ起動プロセスを続行 • 既存アプリActivityの中からCocos2d-xのActivityを起 動する • 異種システム間でどのようにメッセージを送る? 組み込みCocos2d-x起動: Android
38.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 38 • Cocos2d-x側と既存アプリ側とのブリッジAPIの 仕様を考える • iOS側はモノリシックな構造だがAndroid側は分 散・疎結合の構造。両方を抽象化し単一のAPIで 制御するためには制限が大きい方に合わせるべき • Android側の、メモリ空間が別れた非同期通信 モデルを基準とする • Cocos2d-xシーンが主体となり、離れた世界(既 存アプリ側)のリソースをC++コードで制御する ための、RPC(remote procedure call:遠隔関数 呼出)の仕組みが要る Cocos2d-x側と既存アプリの通信
39.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 39 • Android • JNI(Java Native Interface)で通信 • API呼び出し時にstd::function/ラムダ式のコール バックを、boost::uuidで生成したUUIDをキーとして マップへ登録。既存アプリ側は受け取っていたUUID を返事を返す際に添えて返し、Cocos2d-x側は対応 コールバックを実行 • iOS • Cocos2d-x -> 既存アプリ: Obj-C++のファイルにC の関数を定義し、externで参照し呼び出し • 既存アプリ -> Cocos2d-x: std::functionで渡された コールバック関数を直接実行 Cocos2d-x側から既存アプリへのRPC
40.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 40 • 宣言: std::functionにコールバックとしてラムダ式を設定する Cocos2d-x側から既存アプリへのRPC • 実行: サーバーから返事が来るとラムダ式が実行される
41.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 41 • iOS • 同じメモリー空間でC/C++の型が共通で存在してい るのでデータ型の問題は存在しない • Android • C++とJavaの世界でデータを翻訳/交換するための合 意が必要 • 任意のデータをペイロードとしてラップし変換/交換 (marshalling)するための便利なバッグがあればよい • 今回使ったもの • boost::variant using VariantValueType = boost::variant<int64_t, double, std::string>; • JSON (rapidjson::Document) RPCとデータ型
42.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 42 • 既存アプリ側から文字列でCocos2d-xシーンを指定したい • まずは可変長テンプレート引数を取れるC++テンプレー ト(Variadic Templates)を使って、型リストの要素各々に 対してラムダ式を適用できるforEachを定義 文字列とデータ型の関連付け
43.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 43 • 登録しておいたシーンクラスのリストの要素に対し、 RTTIのtypeidで取得した型名文字列を abi::__cxa_demangleでデマングルし、そのCocos2d-x シーンを作成するScene::create関数のラムダ式と関連付 け(ラムダ引数のautoはC++14) 文字列とデータ型の関連付け
44.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 44 • 単にデータのやり取りをするだけでなく、 既存アプリ側の特定メソッドを実行するAPI が必要になった • 各プラットフォームのリフレクションの仕 組みが使える • iOS • NSInvocation#invoke • Android • Method#invoke 文字列とコードの関連付け
45.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 45 1. 既存アプリ側からCocos2d-xを起動し指定した シーンを表示 2. Cocos2d-xから既存アプリ側のAndroid/iOSネイ ティブ機能をクロスプラットフォームの同じイン ターフェイスで利用するためのAPI • これらの要素が最低限あればアプリ自体は Cocos2d-xを組み込んだ状態で動くように なっているが、実際にはそのアプリをビル ドするためのプロジェクトを整備しなけれ ばならない Cocos2d-x組み込みアプリのビルド
46.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 46 • iOS • 既存アプリのXcodeプロジェクトにCocos2d-xの Xcodeプロジェクトcocos2d_libs.xcodeprojを入れる • ただしXcodeプロジェクトのマージが難しいので Cocos2d-xバージョンアップのたびに同じ作業が必要 • Android • 既存アプリがモジュラーなgradleビルドシステムを採 用していたので、Cocos2d-xのAndroid Studio向けプ ロジェクトをgradleモジュールとして差し込むことが できる • ただしC++部分はcocosコマンドでビルドする必要が ある • Android Studio 2のInstant Runとは相性が悪い Cocos2d-x組み込みアプリのビルド
47.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 47 • Cocos2d-xのビューを、全画面ではなく画面の1部に表示 • 矩形ではなく、丸みのある角など自由な形状に • フレームバッファーをアルファ値を持てるフォーマット にする • iOS • CCEAGLViewでeaglLayer.opaque = NO、 pixelFormatをkEAGLColorFormatRGBA8に • AndroidはそのままでOK • Cocos2d-x側でそもそも黒く塗りつぶしていたので透明 に替える • FrameBufferで_clearColor(Color4F(0, 0, 0, 0))、 Rendererで_clearColor.a = 0.0f Cocos2d-xシーンのモーダルダイアログ表示
48.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 48 • Cocos2d-xのActivityを表示していると、背後に回った既 存アプリのActivityがOSによって制御できないタイミン グでkillされてしまう トラブルシューティング: Android Activity問題 • AndroidManifestで @android:style/The me.Translucent.NoTit leBar.Fullscreenを指 定し背後の既存アプリ Activityが見えるよう にしてやればkillされな い(全画面表示でも)
49.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 49 • HTC J Butterfly(HTV31)上でのリリースビルドのみで、 OpenGL ESのコンテクストがおかしいことによるエラー が起こる(call to OpenGL ES API with no current context) • Cocos2d-xのAPIを操作しOpenGL ESコンテクストを操 作する可能性のあるJNI呼び出しは、全て GLSurfaceView.queueEvent経由の呼び出しとして Cocos2d-x描画用スレッドで実行されるように • 逆に、Androidのビュー階層をJNIから操作する場合は Handler(Looper.getMainLooper())でUIスレッドにポス ト • Cocos2d-x側では、AndroidからJNIで受けたものは performFunctionInCocosThreadで実行 トラブルシューティング: Androidスレッド問題
50.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 50 • アプリ起動時にAppDelegateのみ初期化しているものの、 Android版Cocos2d-xは元々バックグラウンドからの復帰 時にGLSurfaceViewを再生成するようになっておりその 処理がCocos2d-xビューを生成時にも必要なため、重い 初期化処理が走ることにより表示されるまで時間がか かっていた • Cocos2d-xは内部で使っているシェーダープログラムを 全て起動時に初期化しており、parseUniforms()と glLinkProgramが特に重かった • 3D向けなど使わないシェーダーの初期化を省略 • 今後シェーダーの利用時に初期化されるようになるかも https://github.com/cocos2d/cocos2d-x/issues/15637 トラブルシューティング: Androidシェーダー問題
51.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 51 • Cocos2d-xビュー作成時は既存アプリGLビューのレンダ リングループを止める • Cocos2d-xビュー終了時には、Director::endを呼ぶと次 のフレームで呼ばれるGLViewImpl::end内で、GCDで dispatch_asyncした先で、GLコンテクスト(今誰が描画 しているのか)を既存アプリのものに復帰 • Cocos2d-xと既存アプリのGLコンテクストの競合は起 こっていないはずにもかかわらず、Cocos2d-xを起動し て閉じた後、既存アプリのテクスチャーが時々乱れた • Cocos2d-xビュー作成前に開始されていた既存アプリの テクスチャー非同期ダウンロードジョブが、ダウンロー ド完了時(Cocos2d-x起動中)にglBindTextureなどGLの 関数を呼び出してしまっていたのでスキップするよう変 更 トラブルシューティング: iOSテクスチャー問題
52.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 52 • C++ラムダ式での変数キャプチャには注意 • サーバー通信などをCocos2d-xシーンからブリッジAPIを 経由して行うと、時間が経ち結果が帰ってきた時には元 のシーンが消滅しており、コールバックのラムダ式内に キャプチャされたシーンのthisポインタが無効になってい る場合がある • staticなSceneFactoryでシーン毎にUUIDを発行して 同一性を保証し、シーンが存在しない/そのシーンが 発行していないAPI実行の結果が来た時は弾く • 参照キャプチャ(&)を使うとスタック変数がキャプチャさ れてしまい、iOSではスレッドを分けない限り原則として 同一スタックフレーム上でブリッジAPIが最後まで実行さ れるので問題ないが、Androidではコールバックのスタッ クフレームが異なり無効なアドレスを参照して落ちる トラブルシューティング: シーンライフサイクル問題
53.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 53 • 透明領域を少なくして描画負荷を抑えるために、 Cocos2d-xのGLビューのサイズを、Cocos2d-x 内部で生成するシーンのサイズと同じにして既存 アプリ側から生成する仕様とした • つまり、GLビューのサイズは端末画面サイズ より多くの場合小さくなる • この仕様により、Cocos2d-x側で全画面表示した 場合に行ってくれるスケーリングに頼れないこと になり、様々なAndroid/iOSデバイス向けのス ケーリングのコードを自前実装することになり、 かなり手間になった 失敗点: 自前スケーリングは面倒
54.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 54 • ここまでの手間を経て、ようやくCocos2d-x組み 込みは実用に耐える技術として確立する • しかし、Cocos2d-x自体も日々変化しており、明 日はまた異なるものになっているかもしれない • Director::getInstance()- >getRunningScene()->getChildren().at(0)だ とCameraが取れてしまう(現在のシーンはat(1)) • Cocos2d-xのSceneは、Node/Layerと異なり、 Camera、BaseLight、NavMesh、 Physics3DWorldを持つ • Cocos2d-xは3D/VRゲームエンジンへと変容 を遂げつつある(Cocos2d-xからCocosへ) これからのCocos2d-x
55.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 55 • Cocos Studio開発終了 • Cocos Creatorが主流に • Electronベースでオープンソース。Unityライ クなビジュアル開発環境 • Chukongは、コンソール版をキャンセルして でも開発環境の充実を第一目標に置いている • (UnityがC#で開発するように)JavaScriptでの ダイナミックな開発を推奨、C++は重い処理 を書く場合以外は使われなくなる • プロジェクト構成が従来と変わるので、新し くCocosプロジェクトを起こすならCocos Creatorベースとすべし これからのCocos2d-x
56.
Copyright © GREE,
Inc. All Rights Reserved. Cocos2d-x組み込みによるクライアント統合 56 • 余計な血は流さない • Cocos2d-xへのパッチは最小限に • Cocos2d-x最新版への追随更新を妨 げない • ゴールはあくまでアプリを活かすこと • UnityにCocos2d-xを組み込むことも 不可能ではない… かもしれない • ゲームエンジンの深層は学びの宝庫で ある 総括: 外科手術の心得
57.
Copyright © GREE,
Inc. All Rights Reserved. Thank You
Download now