cocos2d 2.1 beta1, 2リリース
マイナーバージョンアップですが大きなアップデートであるcocos2d 2.1beta1,2がリリースされました。
割と短期間に1 → 2とリリースされたため、beta2の方を落としてみてください。
リリースノートはまとめて記載しています。
cocos2d-iphone v2.1 beta2 released | cocos2d for iPhone
以下、本家から抜粋
Highlights:
- JavaScript bindings for cocos2d, Chipmunk and CocosBuilder Reader
Cocos2d、Chipmuck, CocosBuilder ReaderのJavaScriptバインディング対応 - Better physics support: PhysicsSprite and Debug Physics node
PhysicsSpriteのサポート、デバッグ用のPhysics サポート - Improved physics templates (try the Chipmunk template)
Physicsテンプレートの改善 - Supports PVR v3 file format
PVR v3ファイルフォーマットへの対応 - Improved GL shader code
OpenGL シェーダーコードの改善 - New actions that mimics flash behavior: RotationalSkew
RotationalSkewのサポート(ActionTestで確認可能) - Fixes for iOS 6 (supports new auto-rotation without flicker)
iOS 6における修正:new auto rotation のサポート - Updated templates: Compatible with iPhone 5 Retina Display, and fixes in Mac templates
iPhone 5 retina display, Mac版テンプレートの修正など含む - LabelTTF works on Mac Retina Display
LabelTTFがMac Retina Displayでも動作
cocos2d-iphone v2.1 is part if a bigger project to create multi platform games. Please read the cocos2d + JavaScript documentation for further info:
RotationSkewは、動作動画を撮影してみました。
cocos2d v2.1での大きな変更点は、なんといってもJavaScript Binding対応が行われたということでしょう。インストールすると付属のテンプレートから利用可能です。
iOSImpactのようなWebKitのJavaScriptCoreをカスタマイズしたものではなく、Mozilla製のSpriderMonkeyというJavaScript VMを搭載し、javascriptをインタプリタ処理して実行しています。
JavaScript Bindingのメリットは?
- JavaScriptだけでゲームの記述ができるようになる
- JavaScript -> JSB -> NativeCodeと言う形で最終的にNativeなcocos2dが実行されるのでパフォーマンスに優れている
- HTML5版をほぼ100%の互換性
- 自作cocos2dクラスなどの新しいAPIなども追加可能(詳細は後日まとめる予定)
- RetinaDisplay、iPhone 5にも対応
- CocosBuilderやパーティクルなども対応!iOS版と100%互換性
実際に少し触ってみましたが、想像以上に良い出来です。非常に嬉しいのは、JSで書いても最終的にcocos2dのクラスを直接呼び出すのでこれまでcocos2d-iphoneで書いていたコードがほとんど100%使えます。
JavaScriptでゲームが書けます!スマホでも動きます!
というのはこれまでいくつか見てきましたが、これまでのcocos2dの使い心地を残しつつ、javascriptでゲームが記述でき、且つRetinaDisplay, iPhone5の解像度にも対応。
個人的にはもう2Dゲームはこれで良いかもしれません。しかし、javascriptはインタプリタで実行されるためパフォーマンスに優れているとはいえません。これについては、WWDC2012の時に作者と話をする機会があったためきいてみましたが、ゲームの種類に応じてobjc版とjs版を使い分けると良いそうです。