Page 1
Cocos2d-xで ステージビルダー機能開発 技術・UIで工夫したところ
株式会社トランスリミット 川端 和樹
Page 2
自己紹介川端 和樹
2015 新卒入社@Kawabata_Lemon
Page 3
1400万ダウンロード 1000万ダウンロード以上
Page 4
Nonverbal・非言語
Global・グローバル
Page 6
開発環境
Cocos2d-x 3.5
Chipmunk
Page 7
ステージを つくる
ステージをあそぶステージを あそぶ
ステージビルダー機能
1日に1万ステージが作られている 10秒に1つのステージが作られている
Page 13
アジェンダ
ステージを つくる
ステージをあそぶ
Page 16
通常の図形
->スケールと回転のみで対応
Page 18
伸びるオブジェクトcocos2d::ui::Scale9Spriteで処理
->動的に剛体もサイズに応じて作り直している
Page 19
伸びるオブジェクトSprite生成し続ける ->エディター画面で重くなる
->一つのSpriteにシェーダで描かせる
Page 20
頂点シェーダ
フラグメントシェーダ
Page 21
ステージの保持
{ }オブジェクトのタイプ ポジション スケール 角度
コンテントサイズ
->データサイズに気をつける
Page 26
オブジェクトの回転剛体を持つオブジェクトに
setRotationを行っても反映されない
中間ノードを挟んでそれにsetRotationすることで解決
Page 27
タップの判定BoundingBoxでタッチ判定をしていた
->重なった時に編集できない
図形内の座標に変換して 頂点間とのベクトルと外積を計算 ->すべて正かどうかで判断
Page 28
アジェンダ
ステージをあそぶ
ステージをつくる
Page 33
ステージのクリア率
->Amazon SNSにメッセージ送信
プレイ回数を毎回計測するAPIを作ると サーバーの負荷がかかる
->Amazon SQSで集計
Page 34
Deeplink
iOS9だとTwitterの内部ブラウザがDeepLink非対応
Page 35
まとめ・Cocosで物理エンジンを扱うのは大変
・バイナリのサイズを抑えられる・海外からは容量の大きいアプリは嫌がられる
・直接コードをいじれる
・情報リソースの少なさ、仕様・バグの放置
Page 36
世界で戦うプロダクトを作ってみませんか
メンバー募集中!