Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Kohki Miki
PDF, PPTX
53,123 views
cocos2d-x 3.0 + C++11で始めるゲーム開発超入門
cocos2d-xの簡単な紹介と、cocos2d-x 3.0のalpha版でどのように変わったかを紹介します。
Entertainment & Humor
◦
Read more
78
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 76
2
/ 76
3
/ 76
4
/ 76
5
/ 76
6
/ 76
7
/ 76
8
/ 76
9
/ 76
10
/ 76
11
/ 76
12
/ 76
13
/ 76
14
/ 76
15
/ 76
16
/ 76
17
/ 76
18
/ 76
19
/ 76
20
/ 76
21
/ 76
22
/ 76
23
/ 76
24
/ 76
25
/ 76
26
/ 76
27
/ 76
28
/ 76
29
/ 76
30
/ 76
31
/ 76
32
/ 76
33
/ 76
34
/ 76
35
/ 76
36
/ 76
37
/ 76
38
/ 76
39
/ 76
40
/ 76
41
/ 76
42
/ 76
43
/ 76
44
/ 76
45
/ 76
46
/ 76
47
/ 76
48
/ 76
49
/ 76
50
/ 76
51
/ 76
52
/ 76
53
/ 76
54
/ 76
55
/ 76
56
/ 76
57
/ 76
58
/ 76
59
/ 76
60
/ 76
61
/ 76
62
/ 76
63
/ 76
64
/ 76
65
/ 76
66
/ 76
67
/ 76
68
/ 76
69
/ 76
70
/ 76
71
/ 76
72
/ 76
73
/ 76
74
/ 76
75
/ 76
76
/ 76
More Related Content
PDF
表も裏もすべて見せます! KLab謹製大規模オンラインゲームの リアルタイムチャットマイクロサービス
by
KLab Inc. / Tech
PPTX
Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例
by
gree_tech
PPTX
Deep-Dive into Scriptable Build Pipeline
by
Haruto Otake
PDF
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
by
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
by
DeNA
PDF
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
by
Unity Technologies Japan K.K.
PDF
NDC 2015 삼시세끼 빌드만들기
by
Hyunsuk Ahn
PDF
NDC 2014, 피할 수 없는 문자열의 세계
by
tcaesvk
表も裏もすべて見せます! KLab謹製大規模オンラインゲームの リアルタイムチャットマイクロサービス
by
KLab Inc. / Tech
Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例
by
gree_tech
Deep-Dive into Scriptable Build Pipeline
by
Haruto Otake
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
by
エピック・ゲームズ・ジャパン Epic Games Japan
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
by
DeNA
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
by
Unity Technologies Japan K.K.
NDC 2015 삼시세끼 빌드만들기
by
Hyunsuk Ahn
NDC 2014, 피할 수 없는 문자열의 세계
by
tcaesvk
What's hot
PDF
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
by
日本マイクロソフト株式会社
PDF
オブジェクト指向エクササイズのススメ
by
Yoji Kanno
PPTX
UE4を用いたTPS制作事例 EDF:IR アニメーション作成事例紹介
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
運用してわかったLookerの本質的メリット : Data Engineering Study #8
by
Masatoshi Abe
PPTX
DeNA TechCon2019 How to implement live streaming client using Unity
by
Takeyuki Ogura
PDF
Cedec2015 お客様に驚きを提供する運営 消滅都市の事例から-
by
gree_tech
PDF
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
by
モノビット エンジン
PDF
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
by
UnityTechnologiesJapan002
PPTX
アプリ起動時間高速化 ~推測するな、計測せよ~
by
gree_tech
PPTX
なぜなにリアルタイムレンダリング
by
Satoshi Kodaira
PDF
自宅で出来る!ゲームサーバの作り方
by
光晶 上原
PDF
オンラインゲームの仕組みと工夫
by
Yuta Imai
PDF
インタフェース完全に理解した
by
torisoup
PPTX
Androidで画像処理リベンジ
by
Daisuke Takai
PPTX
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
by
DongMin Choi
PDF
White Paper: Using Perforce 'Attributes' for Managing Game Asset Metadata
by
Perforce
PDF
온라인 게임 처음부터 끝까지 동적언어로 만들기
by
Seungjae Lee
PDF
송창규, unity build로 빌드타임 반토막내기, NDC2010
by
devCAT Studio, NEXON
PDF
Spark & Zeppelin을 활용한 한국어 텍스트 분류
by
Taejun Kim
PDF
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
by
devCAT Studio, NEXON
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
by
日本マイクロソフト株式会社
オブジェクト指向エクササイズのススメ
by
Yoji Kanno
UE4を用いたTPS制作事例 EDF:IR アニメーション作成事例紹介
by
エピック・ゲームズ・ジャパン Epic Games Japan
運用してわかったLookerの本質的メリット : Data Engineering Study #8
by
Masatoshi Abe
DeNA TechCon2019 How to implement live streaming client using Unity
by
Takeyuki Ogura
Cedec2015 お客様に驚きを提供する運営 消滅都市の事例から-
by
gree_tech
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
by
モノビット エンジン
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
by
UnityTechnologiesJapan002
アプリ起動時間高速化 ~推測するな、計測せよ~
by
gree_tech
なぜなにリアルタイムレンダリング
by
Satoshi Kodaira
自宅で出来る!ゲームサーバの作り方
by
光晶 上原
オンラインゲームの仕組みと工夫
by
Yuta Imai
インタフェース完全に理解した
by
torisoup
Androidで画像処理リベンジ
by
Daisuke Takai
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
by
DongMin Choi
White Paper: Using Perforce 'Attributes' for Managing Game Asset Metadata
by
Perforce
온라인 게임 처음부터 끝까지 동적언어로 만들기
by
Seungjae Lee
송창규, unity build로 빌드타임 반토막내기, NDC2010
by
devCAT Studio, NEXON
Spark & Zeppelin을 활용한 한국어 텍스트 분류
by
Taejun Kim
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
by
devCAT Studio, NEXON
Similar to cocos2d-x 3.0 + C++11で始めるゲーム開発超入門
PDF
Cocos2d-x(v3.x)で作るマルチプラットフォームゲーム
by
Norio Akagi
PDF
Windowsでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
by
Tomoaki Shimizu
PDF
Cocos2d xをさらにさわってみよう!
by
Tomoaki Shimizu
PDF
cocos2d-xのすすめ
by
cowboy_tokyo
PDF
Cocos2d-x勉強会 2014/10/05
by
Yasuhiro Matsuda
PDF
cocos2d-xの概要とこれまでの進化・これからの展開
by
Tomoaki Shimizu
KEY
Cocos2d xをさわってみよう!
by
Tomoaki Shimizu
KEY
Cocos2d platforms
by
Keisuke Hata
PDF
cocos2d-x公開講座 in 鹿児島
by
Tomoaki Shimizu
PDF
Macでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
by
Tomoaki Shimizu
PDF
Macでcocos2d-x 2.1.3を使用した、iOSアプリの開発環境構築について
by
Tomoaki Shimizu
PDF
Cocos2dx 8hour
by
Tomohiko Okita
KEY
Cocos2d xのススメ
by
Tomoaki Shimizu
PDF
Cocos2d-x公開講座 in 鹿児島
by
Tomoaki Shimizu
PDF
Cocos2d-xによる最新ゲーム開発
by
Chukong Technologies Japan
PDF
cocos2d-xハンズオン勉強会 in 名古屋
by
Tomoaki Shimizu
PDF
かんたんなcocos2d-xの紹介
by
Tomoaki Shimizu
PDF
cocos2d-x 3.0による変更点
by
Tomoaki Shimizu
PDF
Cocos2d x talks
by
大騎 池本
PDF
20150108 cocos2d x-talk
by
Keisuke Kobayashi
Cocos2d-x(v3.x)で作るマルチプラットフォームゲーム
by
Norio Akagi
Windowsでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
by
Tomoaki Shimizu
Cocos2d xをさらにさわってみよう!
by
Tomoaki Shimizu
cocos2d-xのすすめ
by
cowboy_tokyo
Cocos2d-x勉強会 2014/10/05
by
Yasuhiro Matsuda
cocos2d-xの概要とこれまでの進化・これからの展開
by
Tomoaki Shimizu
Cocos2d xをさわってみよう!
by
Tomoaki Shimizu
Cocos2d platforms
by
Keisuke Hata
cocos2d-x公開講座 in 鹿児島
by
Tomoaki Shimizu
Macでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
by
Tomoaki Shimizu
Macでcocos2d-x 2.1.3を使用した、iOSアプリの開発環境構築について
by
Tomoaki Shimizu
Cocos2dx 8hour
by
Tomohiko Okita
Cocos2d xのススメ
by
Tomoaki Shimizu
Cocos2d-x公開講座 in 鹿児島
by
Tomoaki Shimizu
Cocos2d-xによる最新ゲーム開発
by
Chukong Technologies Japan
cocos2d-xハンズオン勉強会 in 名古屋
by
Tomoaki Shimizu
かんたんなcocos2d-xの紹介
by
Tomoaki Shimizu
cocos2d-x 3.0による変更点
by
Tomoaki Shimizu
Cocos2d x talks
by
大騎 池本
20150108 cocos2d x-talk
by
Keisuke Kobayashi
More from Kohki Miki
PDF
エターナらないゲーム開発
by
Kohki Miki
PDF
札幌ゲーム製作者コミュニティKawaz「いどのなかにいる」
by
Kohki Miki
PDF
【TDDBC2.1】やる夫で学ぶTDD
by
Kohki Miki
KEY
PyGame入門
by
Kohki Miki
PDF
cocos2d-consoleでパッケージ管理
by
Kohki Miki
PDF
Decksetがよかった話
by
Kohki Miki
PDF
nomad-cliの紹介
by
Kohki Miki
PDF
watchOS 2でゲーム作ってみた話
by
Kohki Miki
PDF
Kobold2Dで始めるゲーム開発
by
Kohki Miki
KEY
cocos2で始める iPhoneゲーム開発入門
by
Kohki Miki
KEY
Kawaz的jQuery入門
by
Kohki Miki
PDF
ゲームコミュニティサミット2014「*いどのなかにいる*」
by
Kohki Miki
PDF
〜ゲーム制作を始めてみよう〜 Kawaz入会希望者向けスライド
by
Kohki Miki
PDF
ゲームコミュニティサミット2014に参加してきた話
by
Kohki Miki
PDF
Kawaz Hipchat超入門
by
Kohki Miki
PDF
VOXCHRONICLE企画草案
by
Kohki Miki
PDF
Unite Japanに参加してきた話
by
Kohki Miki
PDF
Kawaz Third Impact
by
Kohki Miki
KEY
はてな技術勉強会 #4LT「札幌ゲーム制作者コミュニティKawaz」について
by
Kohki Miki
KEY
はてなインターンシップ2011、ワークショップ発表プレゼン
by
Kohki Miki
エターナらないゲーム開発
by
Kohki Miki
札幌ゲーム製作者コミュニティKawaz「いどのなかにいる」
by
Kohki Miki
【TDDBC2.1】やる夫で学ぶTDD
by
Kohki Miki
PyGame入門
by
Kohki Miki
cocos2d-consoleでパッケージ管理
by
Kohki Miki
Decksetがよかった話
by
Kohki Miki
nomad-cliの紹介
by
Kohki Miki
watchOS 2でゲーム作ってみた話
by
Kohki Miki
Kobold2Dで始めるゲーム開発
by
Kohki Miki
cocos2で始める iPhoneゲーム開発入門
by
Kohki Miki
Kawaz的jQuery入門
by
Kohki Miki
ゲームコミュニティサミット2014「*いどのなかにいる*」
by
Kohki Miki
〜ゲーム制作を始めてみよう〜 Kawaz入会希望者向けスライド
by
Kohki Miki
ゲームコミュニティサミット2014に参加してきた話
by
Kohki Miki
Kawaz Hipchat超入門
by
Kohki Miki
VOXCHRONICLE企画草案
by
Kohki Miki
Unite Japanに参加してきた話
by
Kohki Miki
Kawaz Third Impact
by
Kohki Miki
はてな技術勉強会 #4LT「札幌ゲーム制作者コミュニティKawaz」について
by
Kohki Miki
はてなインターンシップ2011、ワークショップ発表プレゼン
by
Kohki Miki
cocos2d-x 3.0 + C++11で始めるゲーム開発超入門
1.
cocos2d-x 3.0で始める ゲーム開発超入門 Sapporo C++
#5 @giginet
2.
自己紹介 • Twitter/Github @giginet • 北海道大学情報科学研究科 M1 • はてなインターン・クックパッドインターン • 札幌ゲーム製作者コミュニティKawaz • Objective-C/Python/JavaScript
etc… • ゲームプログラミングとかしてます
3.
Kawaz • 札幌ゲーム製作者コミュニティKawazをやってます • プログラマ、音屋、グラフィッカー、シナリオライター、プロ アマ含め100名ぐらいでゲーム作ってます • http://www.kawaz.org/
4.
今日話すこと • C++で記述できるiPhone/Android向けゲームフレームワーク 「cocos2d-x」の紹介 • cocos2d-x ここがすごい • cocos2d-x ここがひどい • cocos2d-x
3.0 + C++11とこれからのcocos2d-x http://www.cocos2d-x.org/
5.
今日話すこと • タイトルが「cocos2d-x 3.0で始める ゲーム超入門」だけど 入門向けの内容は少なめです • 全てを語るには時間が足りない
6.
今日話すこと • C++でiPhone/Androidゲームを作ろう! • cocos2d-xの紹介を軽めに • 実装とC++の言語機能寄りの話を厚めにしました • cocos2d-xの資料自体は無数にあるので、簡単に紹介した後、 最新版の3.0はここが凄いという話をしていきます • Objective-Cの話もあるよ! • cocos2d-xの布教とKawaz、GGJの勧誘
7.
cocos2d-xとは • cocos2d-x スマートフォン開発向けのゲームフレームワーク • iPhone/Androidを初めとする多くのプラットフォーム対応 • オープンソース、無料 • OpenGL ES2.0互換の高速な動作 • 豊富な機能と拡張、サードパーティーツール
8.
http://www.cocos2d-x.org/
9.
cocos2d-xとは • cocos2d-x スマートフォン開発向けのゲームフレームワーク • 元々cocos2d-iphoneというObjective-C製のゲームフレーム ワークがあった • とても良かったが、iPhoneでしか動かない、Objective-Cでしか 書けないと宗教上の理由で不満
10.
cocos2d-xとは • cocos2d-iphoneをクロスプラットフォームでC++にかけるよ うにしよう! • →cocos2dのC++ Porting、cocos2d-xの誕生
11.
VOXCHRONICLE • 音と行動が同期する奥スクロールRPG • 12人の音屋、700以上のアセットによる音楽の自動生成 • 東京ゲームショウ2013 Sense of
Wonder Night 審査通過
12.
VOXCHRONICLE http://www.youtube.com/watch?v=xdRyo4RzWsU
13.
発表者の活動 • @giginetのcocos2d関係の活動 • 過去の発表(資料古い) • cocos2d入門 http://www.slideshare.net/giginet/ cocos2d-8420196 • cocos2で始める iPhoneゲーム開発入門
http:// www.slideshare.net/giginet/cocos2-iphone • Kobold2Dで始めるゲーム開発 http:// www.slideshare.net/giginet/devsap
14.
発表者の活動 • @giginetのcocos2d関係の活動 • ブログ記事 • JenkinsでLuaのSyntaxチェックを自動化してみた http:// giginet.hateblo.jp/entry/2013/05/03/175830 • iPhoneゲーム開発に役立つツール13選まとめ http:// giginet.hateblo.jp/entry/2013/02/23/130310 • OUYA+cocos2d-xで始めるゲーム開発入門
http:// giginet.hateblo.jp/entry/2013/07/06/231629
15.
発表者の活動 • @giginetのcocos2d関係の活動 • 本家にPull Request • cocos2d-xのバグを直したらmergeされた話 http:// giginet.hateblo.jp/entry/2013/03/04/194604
16.
cocos2d-xのここがすごい
17.
クロスプラットフォーム • 高い移植性 • 1ソースでどこでも動く • iPhone/Android/Windows/Mac/Linux/Windows Phone/ Windows Metro/
Blackberry/ Tizen etc…
18.
豊富な機能 • やたらと機能が豊富で、サンプルコードも多い • ざっとREADME参照のこと
19.
豊富な機能
20.
豊富な機能
21.
豊富な採用実績 • ソーシャルゲームの開発事例がちらほら挙がりだした • 日本だと『ブレイブフロンティア』が有名
22.
優れたツール • 互換のあるGUIツールが非常に充実している • マップエディタ、インターフェイスビルダー、IDE、スプライ ト作成ツールetc…
23.
Cocos Builder
24.
Level Helper
25.
zwoptex
26.
Tiled Map Editor
27.
様々なPorting • cocos2d-xと同じAPIを持つライブラリが豊富 • • cocos2d-html5(JavaScript) • • cocos2d-iphone(Objective-C これが元) cocos2d-XNA(C# MonoGame/XNA) cocos2dの思想を受け継ぐフレームワークも多い • PS
Mobile GameEngine2D (C# SCE) • SpriteKit (Objective-C Apple)
28.
秀逸なScript-Binding • Lua/JavaScriptエンジン搭載 • • その気になればC++のコードを一切書かなくても良い JavaScriptはcocos2d-html5と完全な互換性 • レベルデザインとロジックの分離が容易 • 簡単コード生成
29.
VOXCHRONICLEのレベルデザイン(Lua)
30.
活発なコミュニティ • 日本のユーザー会cocos2d-x.jp • 東京の方では頻繁に勉強会が開かれているらしい
31.
活発なコミュニティ • 本家のフォーラムも盛況 • アップデートも早い
32.
豊富な参考書籍 • 日本語の書籍もぼちぼち出始めた(2 3冊) • 今後増えそう
33.
まとめ • cocos2d-xすごい • スマートフォンのゲームを作るにはUnityと並んでデファクトに なりつつある
34.
cocos2d-xのここがひどい
35.
ここがひどい • 前述の通り、非常に秀逸なゲームフレームワーク • 大作を1本作ってみると、イケてないところが山のようにある
36.
ここがひどい1 • Objective-C由来の独特な命名規則 • cocos2d-xは前述の通りcocos2dのPortingなので、命名規 則がObjective-C由来で慣れていないと気持ち悪い
37.
Vender Prefixのついたクラス名
38.
getを付けないgetter
39.
kから始まる定数
40.
ここがひどい2 • メモリ管理が辛い • Objective-Cでは、全てのオブジェクトが持つ参照カウンタ でメモリ管理をしなくてはならない • 最近のObjective-CはARC(Automatic Reference Counting) という仕組みで操作が不要になっているが、cocos2d-xでは 自分での操作が必要である
41.
// メンバにオブジェクトを格納 _memberNode =
new CCNode(); // 参照カウンタ1 ! _memberNode->release(); // 参照カウンタ0 _memberNode = NULL; ! // メンバにオブジェクトを格納(autorelease) _memberNode = CCNode::create(); // 参照カウンタ1(autorelease) _memberNode->retain(); // 参照カウンタ2 ! // 略 _memberNode->release(); // 参照カウンタ0 _memberNode = NULL; 地獄っぽい
42.
// localスコープでオブジェクトを格納 CCNode *node
= new CCNode(); // 参照カウンタ1 node->autorelease(); // autorelease ! // コンテナにオブジェクトを格納 CCNode *node = CCNode::create(); // 参照カウンタ1(autorelease) CCArray *array = CCArray::create(); array->addObject(node); // 参照カウンタ2 地獄っぽい
43.
ここがひどい3 • 関数ポインタの扱いが最悪 • Objective-Cのセレクター構文を持ってきているため、関数 ポインタを謎のマクロでwrapしなくてはいけない
44.
! CCMenuItem *item =
[CCMenuItemImage itemFromNormalImage:@"button.png" selectedImage:@"button_selected.png" target:self selector:@selector(onButtonPressed:)]; cocos2d(Objective-C) ! CCMenuItemImage* button = CCMenuItemImage::create("button.png", "button_selected.png", this, menu_selector(MainScene::onButtonPressed) ); cocos2d-x(C++)
45.
ここがひどい4 • 演算子オーバーロードがない • Objective-Cには演算子オーバーロードがないため、簡単な 操作が関数化されている CCPoint point =
ccp(100, 20); // 原点を定義 CCPoint vector = ccp(30, 40); // ベクトルを定義 CCPoint point2 = ccpAdd(point, ccpMult(vector, 5)); // ベクトルの四則演算
46.
ここがひどい5 • Objective-Cの便利機能がことごとく使えない • プロパティ、Blocks(Closure)、GCD、カテゴリといった、 パワフルな言語機能が全て使えない • かといって、C++の言語機能が使えるわけでもない
47.
ここがひどい5 • propertyがなくて地獄っぽい • • 例えばごく普通のsetter Objective-Cではこう書けばいいところが @property (nonatomic, strong)
NSObject *object;! cocos2d(Objective-C)
48.
ここがひどい5 • propertyがなくて地獄っぽい • cocos2d-xだとこう using namespace cocos2d;! private
CCObject *Class::_object;! ! void Class::setObject(CCObject *object) {! if (_object) {! _object->release();! }! _object = object;! if (object) {! object->retain();! }! }! cocos2d-x(C++)
49.
ここがひどい5 • Blocks(closure)もない • C++(03)にはclosureに相当する機能がないため、Blocksを 使ったインターフェイスは全て削除されている id button =
[CCMenuItemImage itemFromNormalImage:@"button.png" selectedImage:@"button_selected.png" block:^(id sender) { // ボタンを押したときの処理 }]; cocos2d(Objective-C)
50.
VOXCHRONICLEでは • boostを利用することで負担を軽減させていた • boost::shared_ptr便利 ! ! ! ! using namespace cocos2d;! private
boost::shared_ptr<CCObject> Class::_object;! ! void Class::setObject(CCObject *object) {! _object = boost::shared_ptr<CCObject>(object);! }! cocos2d-x + boost(C++) ! • boost::lambdaはさすがに使いませんでした
51.
ここがひどい6 • クロスプラットフォーム対応が辛い • 各種サンプルプロジェクトは付属しているが、手作業でのソー スの移動やプロジェクトの設定が必須 • 特にAndroidで動かすのが大変
52.
まとめ • cocos2d-x 2.xはObjective-Cの良い機能と、C++の良い機能 を両方取っ払った劣悪な開発環境だった • • • Objective-C、Cocoaの知識がないと取っつきづらい Objective-C/C++どちらに慣れている技術者にとっても冗長 で書きづらい クロスプラットフォーム対応を謳っているが、実際にクロス化す るのは手作業が多く大変
53.
これからのcocos2d-x
54.
cocos2d-x 3.0 • 今年9月、cocos2d 3.0のα版がリリース • コンセプトの刷新! • Remove
all the Objective-C patterns. • • Objective-C版cocos2dとの互換性を取ることをやめる方向 にシフトした よりC++っぽい書き方ができるように!!!!
55.
Vender Prefixがなくなった!
56.
クラス名が平和になった
57.
propertyの命名が変わった
58.
定数の命名も変わった
59.
演算子オーバーロードがつかえるようになった CCPoint point =
ccp(100, 20); CCPoint vector = ccp(30, 40); CCPoint point2 = ccpAdd(point, ccpMult(vector, 5)); cocos2d-x 2.x auto point = Point(100, 20); auto vector = Point(30, 40); auto point2 = point + point2 * 5; cocos2d-x 3.0
60.
C++11に対応 • C++11に対応 • 内部実装が刷新されてるほか、インターフェイスの多くがC++11 対応に! • std::function, std::thread, enum,
override keyword, smart pointer etc…
61.
lambda ! void MainScene::addButton() { CCMenuItemImage*
button = CCMenuItemImage::create("button.png", "button_selected.png", this, menu_selector(MainScene::onButtonPressed) ); } ! void MainScene::onButtonPressed(cocos2d::CCObject *sender) { // ボタンを押したときの処理 } cocos2d-x 2.x
62.
lambda auto button =
MenuItemImage::create("button.png", "button_selected.png", [&](Object *sender) { // ボタンを押したときの処理 } ); cocos2d-x 3.0
63.
lambda id button =
[CCMenuItemImage itemFromNormalImage:@"button.png" selectedImage:@"button_selected.png" block:^(id sender) { // ボタンを押したときの処理 }]; cocos2d(Objective-C)
64.
smart pointer using namespace
cocos2d;! private CCObject *Class::_object;! ! void Class::setObject(CCObject *object) {! if (_object) {! _object->release();! }! _object = object;! if (object) {! object->retain();! }! }! cocos2d-x 2.0
65.
smart pointer using namespace
cocos2d;! private std::shared_ptr<Object> Class::_object;! ! void Class::setObject(Object *object) {! _object = std::shared_ptr<Object>(object);! }! cocos2d-x 3.0
66.
scoped enum CCLabelTTF *label
= CCLabelTTF::create("Hello", "Helvetica", 16, CCSizeMake(200, 40), kCCTextAlignmentLeft ); cocos2d-x 2.x auto label = LabelTTF::create("Hello", ! "Helvetica", ! 16, ! Size(200, 40), ! TextHAlignment::LEFT! ); cocos2d-x 3.0
67.
クロス対応が楽に • 今まで、クロスプラットフォームを謳っていた割に対応が非常 に大変だった • cocos2d-x 3.0から便利スクリプトが付属して楽になりました
68.
クロス対応が楽に • create-multi-platform-projects.pyというその名の通りのスク リプトが付属
69.
クロス対応が楽に • 複数のプラットフォーム向けのプロジェクトが瞬時に生成
70.
その他の新機能 • 統一的なEventDispatcher • pthreadからstd::threadへの置き換え • Rendererの刷新 • Labelの向上 • http://www.cocos2d-x.org/wiki/ Release_Notes_for_Cocos2d-x_v300
71.
互換性の問題 • 現段階(2013/12/7)ではまだα版 • 現時点ではバグ報告も結構上がってきてて危ないかも・・・・・・? • 2.xのAPIのほとんどがdeprecatedになってしまっているため、 今から作り出すゲームはどちらを採用すべきか悩みどころ
72.
まとめ • 今までのcocos2d-xはObjective-Cの文化を知らないと扱うの は難しかった • これからはC++の言語機能をフル活用してゲームが開発できる • すごく良いからみんな使おう • C++11の便利tips教えてください
73.
cocos2d-x in 札幌 • 東京では結構コミュニティが活発化している • 札幌では使っている人がほぼいなくて情報共有がほぼできない • 話せるネタが無限にあるので、興味がある人が多かったら cocos2d-x勉強会したい
74.
Global Game Jam • 48時間でゲーム開発するイベント • 世界63ヶ国で16000人以上のゲー ム製作者が3141のゲームを制作 • 2014/1/24(土)∼1/26(日)札幌で も開催! • http://kawaz.doorkeeper.jp/ events/7291
75.
cocos2d-x in GGJ! • Global
Game Jamにcocos2d-xチームを作ろう! • 例年Kobold2D(Objective-C)で参加していたが、cocos2d-x チームを作りたい気運の高まり • 打倒Unity • 世界中で作られたゲーム3000本のうち、1000本以上がUnity 製だった(GGJ2013)
76.
ご清聴 ありがとうございました
Download