Flutterはスマートフォンアプリはもちろんのこと、デスクトップやWebまで幅広くサポートしたフレームワークになります。DartはJavaScriptに似た言語で、習得にはそれほど時間はかからないでしょう。
そんなFlutterは主にユーティリティ系アプリで使われることが多いですが、ゲーム開発にも利用できます。今回はFlutterでのゲーム開発をサポートするフレームワーク・ライブラリを紹介します。
また、NCMBではコミュニティSDKとしてFlutter SDKを提供しています(テクニカルサポート対象外です)。Flutterでのアプリ開発時にぜひ使ってください。
- Flame Engine
- quill | Flutter Package
- SpriteWidget
- illume | Flutter Package
- bonfire | Flutter Package
- Glartek/flutter-unity: A Flutter plugin for embedding Unity projects in Flutter projects.
- Casual Games Toolkit
- まとめ
Flame Engine
Flame Engineは現時点で最も有名なゲームエンジンではないでしょうか。2Dゲームを開発する用のエンジンになっており、デモではレーシングゲームを楽しむことができます。オーディオや衝突検知の仕組みも用意されています。
quill | Flutter Package
quillは軽量なゲームエンジンになります。描画部分は特にサポートされていないようです。すべてのノードをFeatherというオブジェクトを定義し、スプライトとしてQuill内に追加します。そして指定したFPS(60FPSなど)でupdate関数が呼ばれるので、そこで位置を変更したり、アクションを実行します。
SpriteWidget
SpriteWidgetも2Dゲームを開発するためのゲームエンジンになります。スプライト、テクスチャーなどがサポートされており、アルカノイド系のゲームがサンプルとして掲載されています。デモゲームはspritewidget/spaceblast: Demo game for SpriteWidgetにあります。
spritewidget | Flutter Package
illume | Flutter Package
ウィジェットベースのゲームエンジンとのことです。操作するキャラクターなどをウィジェットとして定義して、操作をします。衝突した際などは、そのウィジェットのイベントが呼ばれる仕組みです。よりFlutterらしく書けるかも知れません。
bonfire | Flutter Package
2DのRPGゲームを作るのに適したフレームワークになります。ドット絵のRPGゲームが作成できます。キーボードでの操作に加えて、スマホ用にバーチャルコンソールにも対応しており、面白い使い方ができそうです。
Glartek/flutter-unity: A Flutter plugin for embedding Unity projects in Flutter projects.
flutter_unityはFlutterプロジェクトの中にUnityプロジェクトを埋め込むというソフトウェアです。ゲーム部分はFlutterから切り離せるので、Unityを使って効率的なゲーム開発を行えます。
Glartek/flutter-unity: A Flutter plugin for embedding Unity projects in Flutter projects.
Casual Games Toolkit
Flutter3登場時にGoogleが発表したのがCasual Games Toolkitです。新しいゲームエンジンという訳ではなく、ゲームエンジン自体はFlame Engineを使っています。そして、メインメニューや広告、アプリ内課金、リーダーボードなどの機能面を提供するのがCasual Games Toolkitになるようです。
Casual Games Toolkit | Flutter
まとめ
Flutterでゲーム開発を行えば、マルチプラットフォームに配布が可能になります。もちろんそれはUnityでも可能ですが、C#よりもDartを好む人もいるでしょう。選択肢が増えるのはとても良いことです。
ゲームエンジンが増えれば、ゲームの特性に合わせて選べるようになります。Flutterを習得すれば、様々なジャンルのアプリ開発が行えるようになるでしょう。
NCMBではコミュニティSDKとしてFlutter SDKを提供しています(テクニカルサポート対象外です)。Flutterでのアプリ開発時にぜひ使ってください。