LoginSignup
3
4

More than 5 years have passed since last update.

Dartでゲームプログラミングする時に使えるパッケージ

Posted at

「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さんです。

3
4
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
3
4