筋肉とエンジニアリングで すべてを解決するブログ

筋トレ、JavaScript、Ruby で世界を変えてやります。

Cocos2d-x についての概要

まえがき

  • Cocos2d-x を使ってゲームを作れるようになったのでゲームを作りたい人のためになるような有益なドキュメントを多数残すための導入としてこの記事を書いてます。
  • Cocos2d-x を使うにあたって、v2.x の情報はそこそこあったりするんですが、v3.x 系の記事だったりどう作ればいいのよくわからなかったりするので、理論よりも具体的な方法論としてどう書けばいいのかの practice を中心に書いていきたいなと思います!
  • 今回とか初回あたりはゴダゴダ理論チックな部分を書いていきます。

原文翻訳

そもそも公式はこちら

http://www.cocos2d-x.org/products#cocos2dx

どんな風に公式で言ってるのかを翻訳してみると、

Cocos2d-x is an open source game framework written in C++, with a thin platform dependent layer. It can be used to build games, apps and other cross platform GUI based interactive programs. Brand New Graphic Renderer: The Cocos2d-x renderer is optimized for 2D graphics with OpenGL. It supports Skeletal Animation, Sprite Sheet Animation, Coordinate systems, Effects, multi resolution devices, Textures, Transitions, TileMaps and Particles. It adopts a RenderQueue design. Products-ico5_1 Performance: supports auto-batching, auto-culling and caching transform, games are running 1x~20x faster. Products-ico5_2 
 C++ 11 features: take advantage of the awesome Lambda functions, override and final, template container, auto, threads, smart pointers and move semantics.


Cocos2d-x は C++ で書かれたオープンソースの薄いゲームフレームワークです。iOS/Android 両対応の GUI ベースのゲームやアプリが作れます。

新しいグラフィック描画: Cocos2d-x は OpenGL を用いた 2D グラフィックに最適化されていて、

  • 骨格アニメーション
  • スプライトシートアニメーション
  • 座標系
  • エフェクト
  • 解像度に非依存しない作り
  • テクスチャ
  • トランジション
  • タイルマップ
  • パーティクル

などに対応しています。 レンダーキューデザインを採用しています。

パフォーマンスに関しては、オートバッチ、オートクーリング、キャッシュなどに対応していて、最大で20倍速くゲームが動作します。 また、C++11 を採用しているため、ラムダ式、オーバーライド、ファイナル、テンプレートコンテナ、auto、スレッド、スマートポインタ、move semantics が使えます。


ゲーム開発に便利なフレームワークだよ!

ってことですね。(雑)

初めて Cocos2d-x だとか ゲーム作成や描画関連を知る人にとって、それぞれのワードは難しく感じますが、徐々に慣れていくと思います。

そこらへんも一緒に解説とかできたらいいなと思ってます。

バージョンについて

最新は v3.3 final (2014/1/9 現在) です。

※ 新しいものは https://github.com/cocos2d/cocos2d-x/releases だとか、リリースノートを見てください

発展途上ということもあり、 version 0.1 の差はすごい大きいので注意してください。

もっと言えば、rc0 と rc2 と final の変更ですら変更の粒度が大きかったり、大きなバグが解消されていたりします。

v2.x のドキュメントたくさんあるし、安定してるならそっち使ってもいいんじゃない?って思ったりするんですが、 CC という prefix がつかなかったり、 C++11 で便利な auto とか lambda 式のサポートがあるので v3.3 を迷わず使っていいと思います。

ドキュメントについて

発展途上なだけあってほぼほぼドキュメントは存在してくれないと思っていいです。あっても古い、中国語のサイト、といったことが多々あります。

唯一、API Reference があるため、それでだけでも助かります。

http://www.cocos2d-x.org/reference/native-cpp/V3.3/index.html

また、Dash という mac のアプリを使うとすごい便利なので、是非使ってみてください

具体的に困った場面

ネットワーク通じてファイルダウンロードをしたいけど、どうするんだろう?って時があって、 AssetManager というものを使えばいいことがわかったりするんですが、具体的な使い方とかは google 翻訳を使って中国語のサイトから学ぶ、みたいなことがありました。

それでもやり方がわからないなら、ソースを見ればなんとなく解決します。 もしくは、

https://github.com/cocos2d/cocos2d-x/tree/v3/tests/cpp-tests/Classes

こちらの公式のテストケースを調べておくと便利かと思います。

とりあえず一回目はこの辺で。