【レポート】「Cocos2d-x Talks #2」に参加をしてきました。

【レポート】「Cocos2d-x Talks #2」に参加をしてきました。
   

3/13日に東京で行われました「Cocos2d-x Talks」に行ってきました。
簡単ではありますが、内容をブログに書いていきたいと思います。
Cocos2d-x Talks #2 : ATND


2015-3-15-fdsa

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 DevelopmentLearning Cocos2d-Js Game Development
Emanuele Feronato

Packt Publishing
売り上げランキング : 24652

Amazonで詳しく見る

その他

1、CodeZineでcocos2dxの連載が始まった。
無料/国内実績多数のクロスプラットフォーム対応ゲームフレームワーク「Cocos2d-x」の概要と環境構築手順 (1/3):CodeZine

2、cocosちゃんの存在を確認。(写真撮れず)

3、今後のイベント予定。
2015-3-15-fdsaa


「釣り★スタ」 での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

2015-3-15-fda.JPG

サウンド実装のちょっとした”気配り”でユーザに快適感を – 一條貴彰様

サウンドのミドルウェア「ADX2」の紹介。

何ができるか?
  • クロスフェード
  • BGMを鳴らしながら、効果音を鳴らした場合の音量調整
  • 音のピッチ(高さ)を変更
  • BGMの早さの変更
2015-3-15-fddsa

2015-3-15-vffdsa

専用の「オーサリングツール」「サウンドツール」を使って音を作成する。
  • ボリュームの一括管理
  • 専用の音楽フォーマットの利用による軽量化、パフォーマンス向上
  • Androidの場合には、音の遅延を少なくする
  • 音のディレイ設定。アニメーションと組み合わせつ場合の調整が楽に
  • PC上にリモートすることで、テストをしながらボリュームなどの調整ができる
2015-3-15-fdas


ネイテイブアプリでしか利用ができない。
サウンドツールはWin専用。(Macの開発はしている)

個人開発

無償で利用ができる。
利用する場合は、ストアの説明文に記載が必要。
cocos2dxの本に、利用方法が載っている。
wiki,facebookで情報を公開している。

その他

音楽ツール以外にも、ムービー(エフェクト)を作成できるツールがある。(CRI Sofdec2)
このムービーツールは、Androidで見ることができるデモを公開している。
ADX2の解説本(5000円)が出ている。
CD付 CRI ADX2で作るゲームサウンド制作ガイド[CRI ADX2公式ガイド] (Smart Game Developer)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を改造する。(フォントのみ)
IMG 3980

カスタムシェーダーとゲーム内表現

HSBを調整するシェーダーを使うと、同じ演出の色を変更することができる。
シェーダーを追加する場合、Android側ではイベントをハンドリングしないとシェーダーが破棄されて、残念なことになる。

アクションゲームの設計 失敗談

ノウハウがなかったので、設計がよくわからなかった。
IMG 3979

runAction()

Undate()とrunAction()がゴチャゴチャになったので、Update()だけど動きを付けるようにした。
ゲーム面以外では利用をしている。
IMG 3978

iOS8とプリフリ問題

ゲーム開始直後に、ちょっと止まる現象が起こっている。(アクションゲームだと致命的)
原因は[presentRenderbuffer]の時間が関係しているみたい。

最後に

久々の勉強会でしたが、特に「消失都市」のお話はとても参考になりました。
個人的に不具合がなくても、メモリやCPUに使用量などが気になるタイプなので、勉強になりました。「小手先のテクニック」はとても難しい内容でした。

[cocos2d-JS]は、JavaScriptを知らないこともあり、内容がよく分からなかったので、上手くまとめきれませんでした。
C++に比べての速度などが気になるのですが、最初に取り掛かる閾値が低くなりそう感じでした。

サウンドに関しては、現状の標準ライブラリには色々と不満があります。(特にAndroid側)
ですので、「ADX2」に関しては以前から注視をしていたのですが、非常に便利に感じます。
個人開発ですと、無償で利用ができるので、これを触ってみたいと感じました。

最後に、今回会場の提供と懇親会を準備していたいたGreeにの皆様ありがとうございました。
次回は4月に開催される予定みたいですので、都合がつけば参加をしてみたいと思います。

2015-3-15-fdsas

Related Posts Plugin for WordPress, Blogger...