「Dart Advent Calendar 2014」 4日目として私zukkunが担当します。
Dartでゲームを作るときに使えそうなパッケージをまとめてみました。
game_loop
まずは「game_loop」。その名の通りゲームのメインプールを支える機能を提供するパッケージです。
ループ中での入力まわりの機能も提供されています。
パッケージ説明にある機能一覧は以下のようになっています。
- Main loop optimized for games.
- Keyboard input.
- Mouse input.
- Fullscreen management.
- Pointer lock management.
- Timers.
play_phaser
続いて「play_phaser」です。
こちらはJavaScript向けのPhaserというライブラリのDart移植になっており、主に2Dゲーム向けのゲームエンジンです。
元のPhaser自体がレンダリングエンジンとしてPixi.jsというライブラリを採用しており、Dartのplay_phaserについても、Pixi.jsの移植としてplay_pixiというパッケージが作られており、play_phaserもレンダリングエンジンとしてplay_pixiが使用されています。
個人的におすすめのパッケージで、ゲーム開発に関わる以下のような様々な機能が提供されています。
- WebGL and Canvas
- Preloader
- Sprites
- Groups
- Particles
- Camera
- Sound
- Device Scaling
- Mobile Browser
こちらのパッケージの導入記事を過去に書きました。
StageXL
次は「StageXL」です。
こちらはFlashライクなAPIを利用できるパッケージです。
ActionScriptでFlash開発をしていた人にとっては、おなじみのAPIを利用することができます。
- BitmapData
- EventDispatcher
- DisplayObject
- Bitmap
- Shape
- SimpleButton
- TextField
- MovieClip
- Stage
- Sprite
触ったことはないですが、個人的には「Flash APIなんて忘れてもっと未来に生きようぜ」な感じなので、あまりおすすめではありません。
Ranger-Dart
こちらはまだpub.dartlang.orgに登録されていないパッケージで、私自身もまだ触ったことがないものなんですが、Cocos2d-xの仕組みとAPIをベースにしている、という点で気になっています。
機能一覧は以下のようになっています。
- Scene Graph
- Animation
- Message System
- Pooling
- Sprites and sprite sheets
- Particle System
- HTML5 Canvas
- Design Resolution that is independent of device resolution
- Scene transitions
- Optional Updates-per-second for slower devices
むしろ、Cocos2d-xにDartVMが載ってスクリプトとしてDartが使えるようにならないかなとか夢見てます。
three.dart
最後は、ゲームエンジンではなく3Dライブラリです。
WebGL向けライブラリとしてThree.jsが有名ですが、それのDart移植になります。
このパッケージで簡単な立方体を表示するまでの記事を過去に書きました。
総括
Dartもゲーム向けパッケージが充実してきましたが、まだまだ発展途上という印象もあります。
これから色々使って試して、改善要望を出したり、バグを報告したり、できればPull Requestを出したりと、色々していきたいなと思っています。
明日はTsuguyaさんです。