Cocos2d-x Talks #3 に参加してきたよ〜って記事
今話題で先進気鋭のゲームエンジンCocos2d-xの勉強会があるということで、参加してきた。Cocos2d-x Talks #3 場所はサイバードさんのTHEATRE CYBIRD。場所がおしゃで綺麗でした(写真撮るの忘れた)
ここでCocos2d-xとは、
Cocos2d-xは、オープンソースのゲームフレームワークです。1つのソースコードから複数OS(iOS, Android, Win, …)に対応したアプリ・ゲームを開発することができます。コアエンジンはC++で書かれているため、軽量かつ軽快に動作します。そのコアエンジンのソースコードは全て公開されているため、自分に合ったカスタマイズをすることも可能です。アプリ・ゲームの開発には、C++, Lua, JavaScriptから選択することができます。 UIエディタ・アニメーションエディタが備わっているCocos Studioや、統合開発環境であるCocos Code IDEなども、無償で公開しています。
とのことで、弊社サービスでもメインゲームエンジンとして使っております。
Cocos最新情報 by Chukong Technologies Japan 清水さん
最初はChukong Technologies Japanの清水さんからの発表。Cocos2d-x といえば清水さんというくらい、参考書でお世話になっている方で、感慨深かった。
- 作者: 清水友晶
- 出版社/メーカー: リックテレコム
- 発売日: 2013/06/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
Cocosv2.2の現状
そもそも Cocos2d-x というゲームフレームワークだったものがエディタ機能がリッチになり、Cocos Studioが生まれ、そこからプラットフォームとしてのCocosが誕生。
今はv2.2ということで、日本語のページには表示されてないので、海外のページからダウンロードする必要があるみたい。ダウンロードページ
シェアとしては、50%は中国、日本は30%ぐらいで、欧米は10%程度という感じらしい。
Androidに対する互換性も低かったのが v3.5 では、Android に 99.37%対応。バイナリサイズとしても、Androidだと2M程度にまで小さくなっている。
3D Roadmap
現状の Cocos2d-x も3D対応が進んでいるが、v3.6、 v3.7 でも3D対応は追加されていく予定。 それとともに Editor 機能も拡充されていく予定。
Cocos2d-x の3D機能も拡充されて、今ではきれいな3D表示が可能になったっていう紹介。
Magic rushっていうソフト(日本未公開)も Cocos2d-x と CocosStudioで作れてて、それだけでもぬるぬる動いてるって紹介。
Cocos2d-js
JSもいい感じに性能が上がっているらしい。
またのちほどスライドなどが公開されれば、更新しようと思う。
ver.3 の最新機能を使って効率的に開発を行う by 株式会社シュハリ 松浦さん
松浦さんも、Cocos2d-x 関連の本の著者で、
- 作者: 松浦晃洋,齊藤建二,古木映治
- 出版社/メーカー: 秀和システム
- 発売日: 2013/06/04
- メディア: 単行本
- この商品を含むブログ (5件) を見る
- 作者: 清水友晶,松浦晃洋,加島拓,加藤直人,木村信行,小林伸隆,鶴田亮,西田寛輔,藤田泰生,八反田智和(HatchUp)
- 出版社/メーカー: マイナビ
- 発売日: 2015/02/26
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
などの本の著者らしい。
4/2には北京であった、Cocos2d-xのカンファレンスにも参加され、レポートは週刊アスキーPlusで公開されている。(まだ読んでない)
松浦さんからは Cocos v2.2についてと CocosのConsole機能についての発表があった。
Cocos v2.2
清水さんからも紹介があったCocos v2.2を使うと、ターミナルからcocosコマンドを使わなくてもXCodeのように新しいプロジェクト生成が可能となっている。 Assetのダウンロードなども可能となっており、Unityのアセットストアのようなものを目指しているらしい。 このCocos v2.2から新しいプロジェクトを作成する際には、CocosFramework v3.5(いままでの Cocos2d-x v3.5)を使うこととなり、この CocosFramework はプレビルドされた形でダウンロードされる。
そのため、Cocos v2.2を使う際のメリットとデメリットとしては、
メリット
- プロジェクトの新規作成が簡単
- プレビルドされてる
- Buildが早い
デメリット
- ソースがヘッダしかみれない
- カスタマイズできない
というものらしい。 これはプレビルドの結果そうなっているものと考えられる。
CocosのConsole 機能
これは自分も知らなかったし、会場の中でも使ったことのある人は少ないようだったのだが、Cocosプロジェクトの中でTCPポートをlistenして、コマンドを受け付ける事ができる。
チュートリアルにも書かれているが、導入自体は簡単で、AppDelegate.cpp
のapplicationDidFinishLaunching
関数の中で、
auto console = director->getConsole(); console->listenOnTCP(1234);
とだけ、書くことで、localhost
の1234
ポートをlistenした状態でアプリが起動する。
あとは
$ telnet localhost 1234
とコマンドをうつことで、CocosのConsoleコマンドが使える。touchのエミュレーションも行うことができ、tapとswipeが選択できるので、アプリのテストにも使えそう。他のアプリの情報としては、シーングラフ構造を確認したり、テクスチャキャッシュに何が保存されているかも確認することができる。あとは端末のログなども。
他にもupload
コマンドで指定したファイルのアップロードも行うことができ、ゲームのマスターデータを入れ替えることで、アプリを再ビルドすることなどなく、テストすることが可能。
注意点としてはupload
コマンドが
> upload {保存したいファイル名} {ファイルデータをbase64エンコードしたもの}
という書式になっており、なかなかシェルでそのまま叩くのは大変なので、シェルスクリプトなどを書いたほうが良さそう。松浦さんも自身のシェルスクリプトを公開されていた。
さらに、コマンド自体は拡張可能になっており、upload
コマンドのように好きなコマンドを追加する事が可能。
コマンドの作成方法とかはCocos2d-xのソースをみることが一番参考になるらしく。ここらへんのソースが参考になりそう。
コマンドの注意点としては、ネットワークスレッドで実行されるためUIの操作などの場合は、Scheduler
のperformFunctionInCocosThread
でラムダをラップするなどが必要。
Cocos2d-xとSpriteStudioを使った「音ゲー」開発のお話 by ウェブテクノロジ 高井さん
Amane☆Danceという音ゲーを作る際にいろいろ辛かったことなどの共有。 中のキャラが踊っているところに、タップするボタンが出てくるので、タイミングを合わせてタップしたりするゲームのよう。
アニメーションはOPTPiX SpriteStudioを使用したとのこと。
Cocos2d-x のv2系を使って作成していたとのことで、Cocos2d-x 2系のサウンド事情として機能が必要最低限しかなく、曲が再生されたことをとるコールバックをとれないため、曲ごとの再生時間情報と、ゲームプレイの経過時間を保持する必要があったそう。
Cocos2d-xのサウンド周りはv3系でもいろいろと機能が足りてない感じなのでわかる〜ってなったりしてた。
発表者の高井さんは、まだ学生らしく、ゲーム業界への就職を希望されてるとのことなので、応援したいところ。
Cocos2d-x 3.2を用いたサイバードの開発事例 by サイバード 加島さん、池本さん
- イケメン王国 女王と真実のキス
- 名探偵コナン ミステリータウン
などの開発を Cocos2d-x を使ってなされているよう。 今までは外側だけアプリで、中の表示部分の大半がWebだったものを、ユーザ体感の向上のためにすべてアプリ化する流れになったらしい。
アプリ化を進める上で、今までのWeb開発とは違い、
- 画面に入らないものは全部スクロール画面にしよう問題
- 審査スケジュールが考慮されておらず、スケジュールがあやふや問題
- リリース後に変えられない問題
などがあったそうで、共感。
その他、Cocosのアプリ開発を進める上で、タッチイベントのハンドリングが難しかったり、CocosのGUIコンポーネントである、ControlButtonやEditBoxの挙動が変などの問題があり、結局拡張クラスを作成したりするはめになったらしい。
サイバードでもこういったところで作ったもののライブラリ化を進めて基板化する予定だそうだが、CocosのUI部分も痒いところに手が届かないことが多いため、こういった知見で生まれたコンポーネントは結構会社ごとの資産になりそうだな〜と思った。
まとめ
久しぶりの勉強会参加であったが、いろんな人と交流することができてよかった。 また、Cocos の Console 機能についても、使えてなかったのでそういった知見を知ることができてよかったように思う。 得たものはきちんとアウトプットして消化せねば。
補足
折角会場が代官山だったので、先輩とともに最近出来たばかりのクラフトビールの蒸留所に立ち寄ってきた。よい。
今日の登壇者の方々の発表はまた後日資料がアップされるとのことなので、また資料がアップされたら更新したいと思います。