Submit Search
Upload
cocos2d-x 3.0 + C++11で始めるゲーム開発超入門
•
78 likes
•
52,935 views
Kohki Miki
Follow
cocos2d-xの簡単な紹介と、cocos2d-x 3.0のalpha版でどのように変わったかを紹介します。
Read less
Read more
Entertainment & Humor
Report
Share
Report
Share
1 of 76
Download now
Download to read offline
Recommended
リクルート式 自然言語処理技術の適応事例紹介
リクルート式 自然言語処理技術の適応事例紹介
Recruit Technologies
cvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tips
cvpaper. challenge
クラシックゲームを用いたディープラーニングの近年の発展
クラシックゲームを用いたディープラーニングの近年の発展
Youichiro Miyake
R seminar on igraph
R seminar on igraph
Kazuhiro Takemoto
[DL輪読会]SlowFast Networks for Video Recognition
[DL輪読会]SlowFast Networks for Video Recognition
Deep Learning JP
AI初心者だった私が E資格取得して専門職に転職した話
AI初心者だった私が E資格取得して専門職に転職した話
川上 詩織
自然言語処理 Word2vec
自然言語処理 Word2vec
naoto moriyama
CG2013 09
CG2013 09
shiozawa_h
Recommended
リクルート式 自然言語処理技術の適応事例紹介
リクルート式 自然言語処理技術の適応事例紹介
Recruit Technologies
cvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tips
cvpaper. challenge
クラシックゲームを用いたディープラーニングの近年の発展
クラシックゲームを用いたディープラーニングの近年の発展
Youichiro Miyake
R seminar on igraph
R seminar on igraph
Kazuhiro Takemoto
[DL輪読会]SlowFast Networks for Video Recognition
[DL輪読会]SlowFast Networks for Video Recognition
Deep Learning JP
AI初心者だった私が E資格取得して専門職に転職した話
AI初心者だった私が E資格取得して専門職に転職した話
川上 詩織
自然言語処理 Word2vec
自然言語処理 Word2vec
naoto moriyama
CG2013 09
CG2013 09
shiozawa_h
デプスセンサとその応用
デプスセンサとその応用
Norishige Fukushima
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
増田 亨
教師なし画像特徴表現学習の動向 {Un, Self} supervised representation learning (CVPR 2018 完全読破...
教師なし画像特徴表現学習の動向 {Un, Self} supervised representation learning (CVPR 2018 完全読破...
cvpaper. challenge
潜在ディリクレ配分法
潜在ディリクレ配分法
y-uti
ざっくり DDD 入門!!
ざっくり DDD 入門!!
Yukei Wachi
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Youichiro Miyake
MLflowで学ぶMLOpsことはじめ
MLflowで学ぶMLOpsことはじめ
Kenichi Sonoda
[DLHacks]Comet ML -機械学習のためのGitHub-
[DLHacks]Comet ML -機械学習のためのGitHub-
Deep Learning JP
SIX ABEJA 講演資料 もうブラックボックスとは呼ばせない~機械学習を支援する情報
SIX ABEJA 講演資料 もうブラックボックスとは呼ばせない~機械学習を支援する情報
Takayuki Itoh
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
Shota Imai
AHC-Lab M1勉強会 論文の読み方・書き方
AHC-Lab M1勉強会 論文の読み方・書き方
Shinagawa Seitaro
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
takaya imai
シェル・ワンライナー160本ノック
シェル・ワンライナー160本ノック
Ryuichi Ueda
Direct x raytracing the life of a ray tracing kernel
Direct x raytracing the life of a ray tracing kernel
Masaya Takeshige
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
Ken'ichi Matsui
Recent Progress on Single-Image Super-Resolution
Recent Progress on Single-Image Super-Resolution
Hiroto Honda
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
Yoshiki Hayama
Visual Studio CodeでRを使う
Visual Studio CodeでRを使う
Atsushi Hayakawa
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
Cocos2d x-sprite3d
Cocos2d x-sprite3d
aktsk
Cocos2d platforms
Cocos2d platforms
Keisuke Hata
More Related Content
What's hot
デプスセンサとその応用
デプスセンサとその応用
Norishige Fukushima
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
増田 亨
教師なし画像特徴表現学習の動向 {Un, Self} supervised representation learning (CVPR 2018 完全読破...
教師なし画像特徴表現学習の動向 {Un, Self} supervised representation learning (CVPR 2018 完全読破...
cvpaper. challenge
潜在ディリクレ配分法
潜在ディリクレ配分法
y-uti
ざっくり DDD 入門!!
ざっくり DDD 入門!!
Yukei Wachi
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Youichiro Miyake
MLflowで学ぶMLOpsことはじめ
MLflowで学ぶMLOpsことはじめ
Kenichi Sonoda
[DLHacks]Comet ML -機械学習のためのGitHub-
[DLHacks]Comet ML -機械学習のためのGitHub-
Deep Learning JP
SIX ABEJA 講演資料 もうブラックボックスとは呼ばせない~機械学習を支援する情報
SIX ABEJA 講演資料 もうブラックボックスとは呼ばせない~機械学習を支援する情報
Takayuki Itoh
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
Shota Imai
AHC-Lab M1勉強会 論文の読み方・書き方
AHC-Lab M1勉強会 論文の読み方・書き方
Shinagawa Seitaro
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
takaya imai
シェル・ワンライナー160本ノック
シェル・ワンライナー160本ノック
Ryuichi Ueda
Direct x raytracing the life of a ray tracing kernel
Direct x raytracing the life of a ray tracing kernel
Masaya Takeshige
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
Ken'ichi Matsui
Recent Progress on Single-Image Super-Resolution
Recent Progress on Single-Image Super-Resolution
Hiroto Honda
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
Yoshiki Hayama
Visual Studio CodeでRを使う
Visual Studio CodeでRを使う
Atsushi Hayakawa
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
What's hot
(20)
デプスセンサとその応用
デプスセンサとその応用
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
教師なし画像特徴表現学習の動向 {Un, Self} supervised representation learning (CVPR 2018 完全読破...
教師なし画像特徴表現学習の動向 {Un, Self} supervised representation learning (CVPR 2018 完全読破...
潜在ディリクレ配分法
潜在ディリクレ配分法
ざっくり DDD 入門!!
ざっくり DDD 入門!!
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
MLflowで学ぶMLOpsことはじめ
MLflowで学ぶMLOpsことはじめ
[DLHacks]Comet ML -機械学習のためのGitHub-
[DLHacks]Comet ML -機械学習のためのGitHub-
SIX ABEJA 講演資料 もうブラックボックスとは呼ばせない~機械学習を支援する情報
SIX ABEJA 講演資料 もうブラックボックスとは呼ばせない~機械学習を支援する情報
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
AHC-Lab M1勉強会 論文の読み方・書き方
AHC-Lab M1勉強会 論文の読み方・書き方
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
シェル・ワンライナー160本ノック
シェル・ワンライナー160本ノック
Direct x raytracing the life of a ray tracing kernel
Direct x raytracing the life of a ray tracing kernel
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
Recent Progress on Single-Image Super-Resolution
Recent Progress on Single-Image Super-Resolution
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
Visual Studio CodeでRを使う
Visual Studio CodeでRを使う
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Similar to cocos2d-x 3.0 + C++11で始めるゲーム開発超入門
Cocos2d x-sprite3d
Cocos2d x-sprite3d
aktsk
Cocos2d platforms
Cocos2d platforms
Keisuke Hata
Cocosサービスについて
Cocosサービスについて
Chukong Technologies Japan
cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島
Tomoaki Shimizu
cocos2d-xとCocosBuilder
cocos2d-xとCocosBuilder
Tomoaki Shimizu
CocosBuilderとcocos2d-x JSB
CocosBuilderとcocos2d-x JSB
Tomoaki Shimizu
Macでcocos2d-x 3.0alphaを使用した、iOSアプリの開発環境構築について
Macでcocos2d-x 3.0alphaを使用した、iOSアプリの開発環境構築について
Tomoaki Shimizu
Cocos2d-x(v3.x)で作るマルチプラットフォームゲーム
Cocos2d-x(v3.x)で作るマルチプラットフォームゲーム
Norio Akagi
Cocos2d-x Console @Cocos Talks #3
Cocos2d-x Console @Cocos Talks #3
Akihiro Matsuura
Macでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
Macでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
Tomoaki Shimizu
cocos2d-xとCocosBuilderでゲームを作ってみよう
cocos2d-xとCocosBuilderでゲームを作ってみよう
Tomoaki Shimizu
Macでcocos2d-x 3.0alpha0を使用した、クロスプラットフォーム開発環境構築について
Macでcocos2d-x 3.0alpha0を使用した、クロスプラットフォーム開発環境構築について
Tomoaki Shimizu
20130912 macでcocos2d x 3.0alphaを使用した、クロスプラットフォーム開発環境構築について
20130912 macでcocos2d x 3.0alphaを使用した、クロスプラットフォーム開発環境構築について
Tomoaki Shimizu
Macでcocos2d-x 3.0betaを使用した、クロスプラットフォーム開発環境構築について
Macでcocos2d-x 3.0betaを使用した、クロスプラットフォーム開発環境構築について
Tomoaki Shimizu
Cocos2dx 8hour
Cocos2dx 8hour
Tomohiko Okita
Cocos2d-x によるスマートフォンアプリ開発のこれまでとこれから
Cocos2d-x によるスマートフォンアプリ開発のこれまでとこれから
Akihiro Matsuura
Macでcocos2d-x 2.1.3を使用した、Androidアプリの開発環境構築について
Macでcocos2d-x 2.1.3を使用した、Androidアプリの開発環境構築について
Tomoaki Shimizu
Macでcocos2d-x 2.1.3を使用した、iOSアプリの開発環境構築について
Macでcocos2d-x 2.1.3を使用した、iOSアプリの開発環境構築について
Tomoaki Shimizu
GTMF2015: Cocos最新情報と日本展開 | Chukong Technologies Japan株式会社
GTMF2015: Cocos最新情報と日本展開 | Chukong Technologies Japan株式会社
Game Tools & Middleware Forum
㉒初期プロジェクトを改造!
㉒初期プロジェクトを改造!
Nishida Kansuke
Similar to cocos2d-x 3.0 + C++11で始めるゲーム開発超入門
(20)
Cocos2d x-sprite3d
Cocos2d x-sprite3d
Cocos2d platforms
Cocos2d platforms
Cocosサービスについて
Cocosサービスについて
cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島
cocos2d-xとCocosBuilder
cocos2d-xとCocosBuilder
CocosBuilderとcocos2d-x JSB
CocosBuilderとcocos2d-x JSB
Macでcocos2d-x 3.0alphaを使用した、iOSアプリの開発環境構築について
Macでcocos2d-x 3.0alphaを使用した、iOSアプリの開発環境構築について
Cocos2d-x(v3.x)で作るマルチプラットフォームゲーム
Cocos2d-x(v3.x)で作るマルチプラットフォームゲーム
Cocos2d-x Console @Cocos Talks #3
Cocos2d-x Console @Cocos Talks #3
Macでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
Macでcocos2d-x 2.1.2を使用した、Androidアプリの開発環境構築について
cocos2d-xとCocosBuilderでゲームを作ってみよう
cocos2d-xとCocosBuilderでゲームを作ってみよう
Macでcocos2d-x 3.0alpha0を使用した、クロスプラットフォーム開発環境構築について
Macでcocos2d-x 3.0alpha0を使用した、クロスプラットフォーム開発環境構築について
20130912 macでcocos2d x 3.0alphaを使用した、クロスプラットフォーム開発環境構築について
20130912 macでcocos2d x 3.0alphaを使用した、クロスプラットフォーム開発環境構築について
Macでcocos2d-x 3.0betaを使用した、クロスプラットフォーム開発環境構築について
Macでcocos2d-x 3.0betaを使用した、クロスプラットフォーム開発環境構築について
Cocos2dx 8hour
Cocos2dx 8hour
Cocos2d-x によるスマートフォンアプリ開発のこれまでとこれから
Cocos2d-x によるスマートフォンアプリ開発のこれまでとこれから
Macでcocos2d-x 2.1.3を使用した、Androidアプリの開発環境構築について
Macでcocos2d-x 2.1.3を使用した、Androidアプリの開発環境構築について
Macでcocos2d-x 2.1.3を使用した、iOSアプリの開発環境構築について
Macでcocos2d-x 2.1.3を使用した、iOSアプリの開発環境構築について
GTMF2015: Cocos最新情報と日本展開 | Chukong Technologies Japan株式会社
GTMF2015: Cocos最新情報と日本展開 | Chukong Technologies Japan株式会社
㉒初期プロジェクトを改造!
㉒初期プロジェクトを改造!
More from Kohki Miki
watchOS 2でゲーム作ってみた話
watchOS 2でゲーム作ってみた話
Kohki Miki
cocos2d-consoleでパッケージ管理
cocos2d-consoleでパッケージ管理
Kohki Miki
エターナらないゲーム開発
エターナらないゲーム開発
Kohki Miki
ゲームコミュニティサミット2014に参加してきた話
ゲームコミュニティサミット2014に参加してきた話
Kohki Miki
ゲームコミュニティサミット2014「*いどのなかにいる*」
ゲームコミュニティサミット2014「*いどのなかにいる*」
Kohki Miki
札幌ゲーム製作者コミュニティKawaz「いどのなかにいる」
札幌ゲーム製作者コミュニティKawaz「いどのなかにいる」
Kohki Miki
Kawaz Hipchat超入門
Kawaz Hipchat超入門
Kohki Miki
Kawaz Third Impact
Kawaz Third Impact
Kohki Miki
Decksetがよかった話
Decksetがよかった話
Kohki Miki
Unite Japanに参加してきた話
Unite Japanに参加してきた話
Kohki Miki
nomad-cliの紹介
nomad-cliの紹介
Kohki Miki
VOXCHRONICLE企画草案
VOXCHRONICLE企画草案
Kohki Miki
〜ゲーム制作を始めてみよう〜 Kawaz入会希望者向けスライド
〜ゲーム制作を始めてみよう〜 Kawaz入会希望者向けスライド
Kohki Miki
Kawaz的jQuery入門
Kawaz的jQuery入門
Kohki Miki
Kobold2Dで始めるゲーム開発
Kobold2Dで始めるゲーム開発
Kohki Miki
【TDDBC2.1】やる夫で学ぶTDD
【TDDBC2.1】やる夫で学ぶTDD
Kohki Miki
はてな技術勉強会 #4LT「札幌ゲーム制作者コミュニティKawaz」について
はてな技術勉強会 #4LT「札幌ゲーム制作者コミュニティKawaz」について
Kohki Miki
はてなインターンシップ2011、ワークショップ発表プレゼン
はてなインターンシップ2011、ワークショップ発表プレゼン
Kohki Miki
cocos2で始める iPhoneゲーム開発入門
cocos2で始める iPhoneゲーム開発入門
Kohki Miki
PyGame入門
PyGame入門
Kohki Miki
More from Kohki Miki
(20)
watchOS 2でゲーム作ってみた話
watchOS 2でゲーム作ってみた話
cocos2d-consoleでパッケージ管理
cocos2d-consoleでパッケージ管理
エターナらないゲーム開発
エターナらないゲーム開発
ゲームコミュニティサミット2014に参加してきた話
ゲームコミュニティサミット2014に参加してきた話
ゲームコミュニティサミット2014「*いどのなかにいる*」
ゲームコミュニティサミット2014「*いどのなかにいる*」
札幌ゲーム製作者コミュニティKawaz「いどのなかにいる」
札幌ゲーム製作者コミュニティKawaz「いどのなかにいる」
Kawaz Hipchat超入門
Kawaz Hipchat超入門
Kawaz Third Impact
Kawaz Third Impact
Decksetがよかった話
Decksetがよかった話
Unite Japanに参加してきた話
Unite Japanに参加してきた話
nomad-cliの紹介
nomad-cliの紹介
VOXCHRONICLE企画草案
VOXCHRONICLE企画草案
〜ゲーム制作を始めてみよう〜 Kawaz入会希望者向けスライド
〜ゲーム制作を始めてみよう〜 Kawaz入会希望者向けスライド
Kawaz的jQuery入門
Kawaz的jQuery入門
Kobold2Dで始めるゲーム開発
Kobold2Dで始めるゲーム開発
【TDDBC2.1】やる夫で学ぶTDD
【TDDBC2.1】やる夫で学ぶTDD
はてな技術勉強会 #4LT「札幌ゲーム制作者コミュニティKawaz」について
はてな技術勉強会 #4LT「札幌ゲーム制作者コミュニティKawaz」について
はてなインターンシップ2011、ワークショップ発表プレゼン
はてなインターンシップ2011、ワークショップ発表プレゼン
cocos2で始める iPhoneゲーム開発入門
cocos2で始める iPhoneゲーム開発入門
PyGame入門
PyGame入門
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 now