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
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
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
by
Unity Technologies Japan K.K.
PDF
【Unity道場】新しいPrefabワークフロー入門
by
Unity Technologies Japan K.K.
PDF
Nutanix AHVの計画・設計・構築・運用 Overview
by
Satoshi Shimazaki
PDF
UE4における自動プレイのポストモーテム
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
【Unite Tokyo 2019】3Dアバターファイルフォーマット「VRM」詳説
by
UnityTechnologiesJapan002
PDF
画像生成・生成モデル メタサーベイ
by
cvpaper. challenge
PDF
[DL輪読会]NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
by
Deep Learning JP
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
by
エピック・ゲームズ・ジャパン Epic Games Japan
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
by
Unity Technologies Japan K.K.
【Unity道場】新しいPrefabワークフロー入門
by
Unity Technologies Japan K.K.
Nutanix AHVの計画・設計・構築・運用 Overview
by
Satoshi Shimazaki
UE4における自動プレイのポストモーテム
by
エピック・ゲームズ・ジャパン Epic Games Japan
【Unite Tokyo 2019】3Dアバターファイルフォーマット「VRM」詳説
by
UnityTechnologiesJapan002
画像生成・生成モデル メタサーベイ
by
cvpaper. challenge
[DL輪読会]NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
by
Deep Learning JP
What's hot
PDF
System.Drawing 周りの話
by
Satoru Fujimori
PPTX
システム間連携を担うSpring Integrationのエンタープライズ開発での活用
by
apkiban
PDF
いまさら聞けないarmを使ったNEONの基礎と活用事例
by
Fixstars Corporation
PDF
Keycloak拡張入門
by
Hiroyuki Wada
PDF
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
by
A AOKI
PDF
CEDEC2017 アーティストのためのリアルタイムシェーダー学習法
by
小林 信行
PDF
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
by
Preferred Networks
PDF
Nutanix運用指南術
by
Takahiro HAGIWARA
PDF
[GTMF2019] Python / BlueprintによるUnreal Engineの自動化
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
by
NTT DATA Technology & Innovation
PDF
20180729 Preferred Networksの機械学習クラスタを支える技術
by
Preferred Networks
PDF
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
by
Fixstars Corporation
PDF
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
by
SSII
PDF
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
by
Preferred Networks
PPTX
Gstreamer Basics
by
Seiji Hiraki
PDF
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
by
Unity Technologies Japan K.K.
PDF
ぼうけんにでかけよう Kubernetes KEDA
by
Tsukasa Kato
PDF
ガイデットフィルタとその周辺
by
Norishige Fukushima
PPTX
キーボード自作のススメ
by
Retrieva inc.
PPTX
Python / BlueprintによるUnreal Engineの自動化 / GTMF2019
by
Game Tools & Middleware Forum
System.Drawing 周りの話
by
Satoru Fujimori
システム間連携を担うSpring Integrationのエンタープライズ開発での活用
by
apkiban
いまさら聞けないarmを使ったNEONの基礎と活用事例
by
Fixstars Corporation
Keycloak拡張入門
by
Hiroyuki Wada
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
by
A AOKI
CEDEC2017 アーティストのためのリアルタイムシェーダー学習法
by
小林 信行
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
by
Preferred Networks
Nutanix運用指南術
by
Takahiro HAGIWARA
[GTMF2019] Python / BlueprintによるUnreal Engineの自動化
by
エピック・ゲームズ・ジャパン Epic Games Japan
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
by
NTT DATA Technology & Innovation
20180729 Preferred Networksの機械学習クラスタを支える技術
by
Preferred Networks
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
by
Fixstars Corporation
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
by
SSII
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
by
Preferred Networks
Gstreamer Basics
by
Seiji Hiraki
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
by
Unity Technologies Japan K.K.
ぼうけんにでかけよう Kubernetes KEDA
by
Tsukasa Kato
ガイデットフィルタとその周辺
by
Norishige Fukushima
キーボード自作のススメ
by
Retrieva inc.
Python / BlueprintによるUnreal Engineの自動化 / GTMF2019
by
Game Tools & Middleware Forum
Similar to cocos2d-x 3.0 + C++11で始めるゲーム開発超入門
PPTX
Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例
by
gree_tech
PDF
cocos2d-xのすすめ
by
cowboy_tokyo
PDF
Windowsでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
by
Tomoaki Shimizu
KEY
Cocos2d xをさわってみよう!
by
Tomoaki Shimizu
PDF
Cocos2d xをさらにさわってみよう!
by
Tomoaki Shimizu
PDF
Cocos2d-x勉強会 2014/10/05
by
Yasuhiro Matsuda
PDF
cocos2d-xの概要とこれまでの進化・これからの展開
by
Tomoaki Shimizu
KEY
Cocos2d platforms
by
Keisuke Hata
PDF
Macでcocos2d-x 2.1.3を使用した、iOSアプリの開発環境構築について
by
Tomoaki Shimizu
PDF
Macでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
by
Tomoaki Shimizu
PDF
cocos2d-x公開講座 in 鹿児島
by
Tomoaki Shimizu
KEY
Cocos2d xのススメ
by
Tomoaki Shimizu
PDF
Cocos2dx 8hour
by
Tomohiko Okita
PDF
Cocos2d-xによる最新ゲーム開発
by
Chukong Technologies Japan
PDF
Cocos2d-x公開講座 in 鹿児島
by
Tomoaki Shimizu
PDF
cocos2d-x 3.0による変更点
by
Tomoaki Shimizu
PDF
cocos2d-xハンズオン勉強会 in 名古屋
by
Tomoaki Shimizu
PDF
かんたんなcocos2d-xの紹介
by
Tomoaki Shimizu
PDF
Cocos2d x talks
by
大騎 池本
PDF
20150108 cocos2d x-talk
by
Keisuke Kobayashi
Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例
by
gree_tech
cocos2d-xのすすめ
by
cowboy_tokyo
Windowsでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
by
Tomoaki Shimizu
Cocos2d xをさわってみよう!
by
Tomoaki Shimizu
Cocos2d xをさらにさわってみよう!
by
Tomoaki Shimizu
Cocos2d-x勉強会 2014/10/05
by
Yasuhiro Matsuda
cocos2d-xの概要とこれまでの進化・これからの展開
by
Tomoaki Shimizu
Cocos2d platforms
by
Keisuke Hata
Macでcocos2d-x 2.1.3を使用した、iOSアプリの開発環境構築について
by
Tomoaki Shimizu
Macでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
by
Tomoaki Shimizu
cocos2d-x公開講座 in 鹿児島
by
Tomoaki Shimizu
Cocos2d xのススメ
by
Tomoaki Shimizu
Cocos2dx 8hour
by
Tomohiko Okita
Cocos2d-xによる最新ゲーム開発
by
Chukong Technologies Japan
Cocos2d-x公開講座 in 鹿児島
by
Tomoaki Shimizu
cocos2d-x 3.0による変更点
by
Tomoaki Shimizu
cocos2d-xハンズオン勉強会 in 名古屋
by
Tomoaki Shimizu
かんたんなcocos2d-xの紹介
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
cocos2d-consoleでパッケージ管理
by
Kohki Miki
PDF
Decksetがよかった話
by
Kohki Miki
PDF
【TDDBC2.1】やる夫で学ぶTDD
by
Kohki Miki
PDF
nomad-cliの紹介
by
Kohki Miki
KEY
PyGame入門
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
cocos2d-consoleでパッケージ管理
by
Kohki Miki
Decksetがよかった話
by
Kohki Miki
【TDDBC2.1】やる夫で学ぶTDD
by
Kohki Miki
nomad-cliの紹介
by
Kohki Miki
PyGame入門
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