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を使っての アプリアップデート事例 – 中 貴弘様、和田孝尚様
釣り★スタ 公式サイト – GREEブラウザーゲームを衣装して2011年にアプリを配信。
もともとはFlashLiteなどで作成をしていたが、HTML5で作成。
2013年ごとに色々と限界を感じてきた。(機種によって、反応やアニメーションなどの問題。)
ネイテイブ化をするために[cocos2d-JS]を採用。条件はiOS4.3,Android2.2以降で利用できること。
V2系を利用。V3になると、OSを切り捨てなければいけなくなるから。
HTMLと同じくコードが丸見えになるので、見せたくないものは「JaveScript-Binding」を利用して隠微。
今後はV3にバージョンアップをする予定をしている。
- UI : cocos2d-JSベース
- その他 : JaveScript-Binding
サウンド実装のちょっとした”気配り”でユーザに快適感を – 一條貴彰様
サウンドのミドルウェア「ADX2」の紹介。何ができるか?
- クロスフェード
- 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月に開催される予定みたいですので、都合がつけば参加をしてみたいと思います。
