3/13日に東京で行われました「Cocos2d-x Talks」に行ってきました。 簡単ではありますが、内容をブログに書いていきたいと思います。 Cocos2d-x Talks #2 : ATND
Cocos最新情報 - 清水友晶様
登壇者は、cocos2dxの開発をしている[Chukong Technologles]の清水さん。
cocos2dxの現状
中国はcoocs2dxの本場なので79%のシェアを誇っている。 現在日本では21%。(Unity36%) 2Dのゲームがまだまだ強い市場なので、トップセールスのアプリの中でcocos2dxを利用しているアプリが多い。
cocos2dxの今後
cocos2dxV3.xが進化をして行く。3.5~3.6と。 V3.1から3Dに対応して、現在オープンソースでサンプルプロジェクトを公開している。
cocosStudioが2Dのエディット機能しかなかったのですが、3Dのエディット機能が追加をされる予定。 また、3Dのパーティクルも設定をすることができるようになる。 機能は追加されるが無料で引き続き使える。
V4.x
V4系の開発が進められているらしい。 来月の4月2日に北京で行われるカンファレンスで発表をされる予定。
初心者にやさしく
最初の開発環境を整えるのが難しく、初心者の方が利用するのが難しかった。 この部分を解消するために「cocos2d-JS」と「cocos Code IDE」が登場。
cocos2-JS
以前の[cocos2d-html5]。
現在V3.3が出ている。
1つのソースで、ネイテイブ・Webアプリを作ることができる。
ネイテイブでWebViewを使うのではなく、[Spider Monkey]を利用している。JSからC++に変換できる。
SpiderMonkey - Wikipedia
cocos Code IDE
C++には対応をしていないが、JavaScriptで利用ができる。 [cocos2d-JS]のSDKを指定するだけで利用ができるので、初期の環境設定が必要ない。 ブレークポイントが使える。
Eclipseベースで作っているらしく起動に時間がかかる。 [cocos2d-JS]の情報が少ない。洋書が一冊出ている。 これを日本語に翻訳して発売できないか考えている。
![]() | Learning Cocos2d-Js Game Development Emanuele Feronato Packt Publishing 売り上げランキング : 24652 Amazonで詳しく見る |
その他
1、CodeZineでcocos2dxの連載が始まった。 無料/国内実績多数のクロスプラットフォーム対応ゲームフレームワーク「Cocos2d-x」の概要と環境構築手順 (1/3):CodeZine
2、cocosちゃんの存在を確認。(写真撮れず)
3、今後のイベント予定。
「釣り★スタ」 でのCocos2d-JSを使っての アプリアップデート事例 - 中 貴弘様、和田孝尚様
ブラウザーゲームを衣装して2011年にアプリを配信。 もともとはFlashLiteなどで作成をしていたが、HTML5で作成。 2013年ごとに色々と限界を感じてきた。(機種によって、反応やアニメーションなどの問題。) ネイテイブ化をするために[cocos2d-JS]を採用。条件はiOS4.3,Android2.2以降で利用できること。 V2系を利用。V3になると、OSを切り捨てなければいけなくなるから。 HTMLと同じくコードが丸見えになるので、見せたくないものは「JaveScript-Binding」を利用して隠微。 今後はV3にバージョンアップをする予定をしている。
- UI : cocos2d-JSベース
- その他 : JaveScript-Binding
サウンド実装のちょっとした"気配り"でユーザに快適感を - 一條貴彰様
何ができるか?
- クロスフェード
- BGMを鳴らしながら、効果音を鳴らした場合の音量調整
- 音のピッチ(高さ)を変更
- BGMの早さの変更
専用の「オーサリングツール」「サウンドツール」を使って音を作成する。
- ボリュームの一括管理
- 専用の音楽フォーマットの利用による軽量化、パフォーマンス向上
- Androidの場合には、音の遅延を少なくする
- 音のディレイ設定。アニメーションと組み合わせつ場合の調整が楽に
- PC上にリモートすることで、テストをしながらボリュームなどの調整ができる
ネイテイブアプリでしか利用ができない。 サウンドツールはWin専用。(Macの開発はしている)
個人開発
無償で利用ができる。 利用する場合は、ストアの説明文に記載が必要。 cocos2dxの本に、利用方法が載っている。 wiki,facebookで情報を公開している。
その他
音楽ツール以外にも、ムービー(エフェクト)を作成できるツールがある。(CRI Sofdec2) このムービーツールは、Androidで見ることができるデモを公開している。 ADX2の解説本(5000円)が出ている。
![]() | CD付 CRI ADX2で作るゲームサウンド制作ガイド[CRI ADX2公式ガイド] (Smart Game Developer) 内田 哉,株式会社CRI・ミドルウェア 翔泳社 売り上げランキング : 495779 Amazonで詳しく見る |
消滅都市” の開発事例 - 渡部晋司様
「消滅都市」ではV3.0を利用している。 17名体勢で、7ヶ月の開発期間。会社の状況で半年でリリースする必要があった。 Greeではcocos2dxを利用した初めての作品。 必要なのもをCherryPickで持ってくる。(Git?)
v2系->V3系への以降がとても大変だった。 今のところ不満がないのでV3.0を利用している。
cocos2dxの付き合い方
個人的にゲームエンジンではなく、フレームワークに近い。 標準のツールがないので、自由に組み合わせて利用できる。 広告系のSDKも苦労せずに組み込めるのが良い所。
ライブラリ
- libdispatch :バックグラウンド処理、通信関係
- Cricket Audio :低コストかつマルチプラットフォームで利用ができるサウンドツール
- LWF for cocos2dx : キャラクター、エフェクト、ガチャ演出
UI
Photoshopで使って素材を作成。 これを配置をするのがメンドクサイ。 Photoshop上で画面を作って、これをJSX(Photoshop 用の JavaScript ファイル)でエクスポートし、独自のライブラリを使ってゲーム上に配置をしている。 アニメーションは、プログラマが作成をした。
テクスチャアトラスにならない。 JSXのエクスポートが遅いなどの「イマイチな」点がある。
パフォーマンス
「消滅都市」はアクションゲームなので、ぬるぬる動くようにしたい。
- CPU・GPU
- メモリ消費量
- データの入出量
- IO:サーバー通信
この辺りが「パフォーマンス」と呼ばれるもの。 「パフォーマンス」を求めるとゲームが完成しないので、リリース前にやるべき。「消滅都市」ではリリース2ヶ月前から行った。 今回は「CPU・GPU」に絞って話をする。
CPU
[Xcode Instruments]を利用して解析。 これを使い、コードの残念な所を直した。
cocos2dx絡みでは行ったこと。
- パーティクルの削除 : LWF利用
- SpriteBatchNodeを明示的に利用 : ドローコールの削減
GPU
[Xcode Frame Debugger] [Xcode Instruments]でiOS側を解析。 [Adreno Profiler][PerfHUD ES]でAndroid側を解析。
GPUの改善に必要なこと。
- 頂点の計算(ポリゴン):3Dゲームの場合
- ピクセルのフィル
- ドローコール
- CPUのパフォーマンス : 熱の影響を受けるので、CPUのパフォーマンスの改善をする
ピクセルのフィルの改善
「消滅都市」では、無駄な透明レイアーが表示されていた。 アルファが0。これは[Xcode Frame Debugger]を見ないとわからない。 また、ピクセルのオーバードローが多かった。同じ点を何回も描いていると負荷がかかるので、描画の重なりに気をつけた。
小手先のテクニック
- 高速のシェーダーの利用:一部の端末で効果あり。
- glClearを呼び出すタイミングの調整:完全な2Dゲームで利用する
- 圧縮テクスチャを利用:品質の劣化の注意
- Androidのハードウェアスケーラーを使う: 画面の引き伸ばしが可能
- フォントデータをスリム化 : 8bitが32bitに変換されるので、CCImageを改造する。(フォントのみ)
カスタムシェーダーとゲーム内表現
HSBを調整するシェーダーを使うと、同じ演出の色を変更することができる。 シェーダーを追加する場合、Android側ではイベントをハンドリングしないとシェーダーが破棄されて、残念なことになる。
アクションゲームの設計 失敗談
ノウハウがなかったので、設計がよくわからなかった。
runAction()
Undate()とrunAction()がゴチャゴチャになったので、Update()だけど動きを付けるようにした。 ゲーム面以外では利用をしている。
iOS8とプリフリ問題
ゲーム開始直後に、ちょっと止まる現象が起こっている。(アクションゲームだと致命的) 原因は[presentRenderbuffer]の時間が関係しているみたい。
最後に
久々の勉強会でしたが、特に「消失都市」のお話はとても参考になりました。 個人的に不具合がなくても、メモリやCPUに使用量などが気になるタイプなので、勉強になりました。「小手先のテクニック」はとても難しい内容でした。
[cocos2d-JS]は、JavaScriptを知らないこともあり、内容がよく分からなかったので、上手くまとめきれませんでした。 C++に比べての速度などが気になるのですが、最初に取り掛かる閾値が低くなりそう感じでした。
サウンドに関しては、現状の標準ライブラリには色々と不満があります。(特にAndroid側) ですので、「ADX2」に関しては以前から注視をしていたのですが、非常に便利に感じます。 個人開発ですと、無償で利用ができるので、これを触ってみたいと感じました。
最後に、今回会場の提供と懇親会を準備していたいたGreeにの皆様ありがとうございました。 次回は4月に開催される予定みたいですので、都合がつけば参加をしてみたいと思います。