LoginSignup
63
64

More than 5 years have passed since last update.

Cocos2d-JSはイケてる? イケてない?

Last updated at Posted at 2014-08-03

Cocos2d-JSとは

  • 大手なスマホアプリ用ゲームエンジン Cocos2d-x 。(主にC++使って書く)
  • Javascriptでゲームを書いて、そのままブラウザゲーム・iOSアプリ・Androidアプリ として出力できる!!
  • Cocos2d-xとは別物としてつくられていた、 Cocos-html5 が本体と統合され、シームレスに使えるようになった!

公式が出してるサンプル

ひととおりの開発フロー

  • cocosコマンドでひながたを作る
cocos new SampleGame -p com.example.samplegame -d . -l js
  • Cocos2d-JSのフレームワークにのっとって、javascriptでゲームを書く

  • ブラウザでプレイ・デバッグ

cocos run -p web
  • いいところで、iOSやAndroid向けにビルド
cocos run -p ios
cocos run -p android

イケてるところ

「実装 → 動作確認」をすばやく繰り返しながらゲーム開発

  • iOS・Android両OSに対応したゲームを、ブラウザで確認しながら実装できる。
  • Cocos2d-xで実装する場合、動作確認をするたびにビルドをする必要があるが、こちらは即時プレビューが可能

jsのフレームワークとして

  • scriptの遅延読み込みや依存解決、クラスの仕組みが普通によくできてる (独自っぽいけど)

Cocos2d-x自体との統合がかっこいい

Cocos2d-x本体ともシームレスに統合されていて、開発用のコマンドもインタフェースが共通になっている。

# Cocos2d-xのプロジェクト生成
cocos new MyGame -l cpp -d ~/Projects/ -p com.example.mygame

# Cocos2d-JSのプロジェクト生成
cocos new MyGame -l js -d ~/Projects/ -p com.example.mygame

イケてないところ

まだalpha版

  • APIなどまだ変更される可能性がある
    • 実際、Cocos2d-xの2.x→3.xへの移行時は、いろいろ悲劇が起きている
  • ネットワーク通信系のAPIがまだなさげ!!

ビルドに時間が掛かる (特にAndroid)

  • 開発中、頻繁に実行する必要はないが、JSからCPP、CPPからOS側と、2段階にビルドがあるので、結構時間がかかる。暇。

Javascriptの全部のAPI使えるか定かじゃない

ざっと仕様

  • ccというネームスペースに全部入ってる。
  • 独自?のクラスフレームワークを採用している (cc.Class)
    • cc.Layer.extend()で、Layerをextendしたものを作れる
    • this._superとかも生えてる
    • インスタンス化にはnewじゃなくKlass.create()を使う
      • これはcppの時点でもそうだったので、クラスフレームワークのルールというよりは、そちらに合わせたのかも
  • デフォルトのサンプルでは、ぜんぶapp.jsに一緒くたに入れてある
    • htmlの編集入るとめんどくさいし、gruntとかで結合の仕組みをつくりたいところ
    • あるいは、けっこうモジュールの仕組みがしっかり作ってあるので、そちらに乗っかってもいい
  • app.jsとは別にmain.jsもある。
  • resources.jsresからリソースのURLをとってくるスタイル。g_resourcesは、main.jsの中でperloadしてた。

  • 物理エンジン(chipmunkbox2d)やsocket.ioは、モジュールとして追加記述すれば利用できる。

HTML5系のみなさまに、手を出してみてほしい理由

今後のスマホゲーム市場は、

  • 作りこまれた、体験がリッチなゲーム
  • 軽量でちゃかちゃかしたゲーム

に2分化していく気がする。

後者をスピーディに作る上では、Cocos2d-JSの動作確認の速さは強そう。

Web屋さんの知見がアドバンテージを持っているうちに、手を出してみてはいかが?

参考

63
64
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
63
64