search
LoginSignup
4

More than 5 years have passed since last update.

posted at

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

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

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
What you can do with signing up
4