def yasuharu519(self):

日々の妄想

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 といえば清水さんというくらい、参考書でお世話になっている方で、感慨深かった。

cocos2d-x入門

cocos2d-x入門

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 機能も拡充されていく予定。

www.youtube.com

Cocos2d-x の3D機能も拡充されて、今ではきれいな3D表示が可能になったっていう紹介。

Magic rushっていうソフト(日本未公開)も Cocos2d-x と CocosStudioで作れてて、それだけでもぬるぬる動いてるって紹介。

www.youtube.com

Cocos2d-js

JSもいい感じに性能が上がっているらしい。

www.youtube.com

またのちほどスライドなどが公開されれば、更新しようと思う。

ver.3 の最新機能を使って効率的に開発を行う by 株式会社シュハリ 松浦さん

松浦さんも、Cocos2d-x 関連の本の著者で、

Cocos2d-x開発のレシピ

Cocos2d-x開発のレシピ

開発のプロが教える Cocos2d-x逆引きガイドブック

開発のプロが教える Cocos2d-x逆引きガイドブック

  • 作者: 清水友晶,松浦晃洋,加島拓,加藤直人,木村信行,小林伸隆,鶴田亮,西田寛輔,藤田泰生,八反田智和(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.cppapplicationDidFinishLaunching関数の中で、

auto console = director->getConsole();
console->listenOnTCP(1234);

とだけ、書くことで、localhost1234ポートをlistenした状態でアプリが起動する。

あとは

$ telnet localhost 1234

とコマンドをうつことで、CocosのConsoleコマンドが使える。touchのエミュレーションも行うことができ、tapとswipeが選択できるので、アプリのテストにも使えそう。他のアプリの情報としては、シーングラフ構造を確認したり、テクスチャキャッシュに何が保存されているかも確認することができる。あとは端末のログなども。

他にもuploadコマンドで指定したファイルのアップロードも行うことができ、ゲームのマスターデータを入れ替えることで、アプリを再ビルドすることなどなく、テストすることが可能。

注意点としてはuploadコマンドが

> upload {保存したいファイル名} {ファイルデータをbase64エンコードしたもの}

という書式になっており、なかなかシェルでそのまま叩くのは大変なので、シェルスクリプトなどを書いたほうが良さそう。松浦さんも自身のシェルスクリプトを公開されていた。

さらに、コマンド自体は拡張可能になっており、uploadコマンドのように好きなコマンドを追加する事が可能。 コマンドの作成方法とかはCocos2d-xのソースをみることが一番参考になるらしく。ここらへんのソースが参考になりそう。

コマンドの注意点としては、ネットワークスレッドで実行されるためUIの操作などの場合は、SchedulerperformFunctionInCocosThreadでラムダをラップするなどが必要。

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 機能についても、使えてなかったのでそういった知見を知ることができてよかったように思う。 得たものはきちんとアウトプットして消化せねば。

補足

折角会場が代官山だったので、先輩とともに最近出来たばかりのクラフトビールの蒸留所に立ち寄ってきた。よい。

今日の登壇者の方々の発表はまた後日資料がアップされるとのことなので、また資料がアップされたら更新したいと思います。

ビア

Yasuharu Sawadaさん(@yasuharu519)が投稿した写真 -

SVB!

Yasuharu Sawadaさん(@yasuharu519)が投稿した写真 -