Flutterの Casual Games Toolkit のサンプルを動かしてみる
Flutterの Casual Games Toolkit のサンプルを動かしてみる手順を書きます
概要
Flutter Casual Games Toolkit という、Flutterでカジュアルゲームを素早く作るためのツールキットがあります。2022年に発表されたとのことなので比較的新しいですね。私は今までゲームは作ったことがありませんが、公式ページやYoutube動画を見てみるとかなり良さそうで自分も作ってみたくなりました。用意されているテンプレートには後述するようにあらゆる機能が事前に実装されていて、オリジナルゲーム自体の開発に集中できるようにしてくれています。Get Started にはサンプルを動かしてみる詳しい手順までは載っていなかったので、手元で動かしてみた手順をまとめておきます。
テンプレート
テンプレートには既に以下の機能が実装されています。
- 音
- 音楽
- メインメニュースクリーン
- 設定
- 広告
- アプリ内課金
- Game Center と Google Play Games Services
- クラッシュレポート(監視)
一部設定の追加が必要な機能もありますが、詳しくはリポジトリに書いてあるようです。
https://github.com/flutter/samples/tree/main/game_template
サンプルを動かす
サンプルリポジトリをclone
今回必要なのは game_template だけですが、今後他のものも必要になるかもしれないので、親の samples リポジトリ自体をcloneしてきます。結構重いのでしばらく時間がかかります。
$ git clone samples
開発用の適当なディレクトリを作成
FlutterでHello Worldする時は flutter create
コマンドを使いましたが、今回はtemplateからスタートしたいのでコピーするところから始めます。
$ cd workspace
$ mkdir game_sample_tkugimot
game_templateディレクトリ以下のコードをコピー
$ cp -r samples/game_template/. game_sample_tkugimot
※ 上記のコマンドで非表示ファイル (.がつくファイル) も含めてコピーしています。
IntelliJでディレクトリを開いてpub get
IntelliJを起動 → File → Open で開きます。その後、パッケージをインストールしておきます。(IntelliJを起動した時にダイアログが表示されるのでそこから pub get で良いです)
$ flutter pub get
エラー解決
私の実行環境だと以下のエラーが出力されました。
/Users/tkugimot/development/flutter/bin/flutter --no-color pub get
Resolving dependencies...
The current Dart SDK version is 3.0.6.
Because game_template requires SDK version ^3.1.0-0, version solving failed.
Process finished with exit code 1
Dartのバージョンが古かったようです。調べてみると以下のStackOverFlowがヒットしました。
https://stackoverflow.com/questions/55898181/update-dart-sdk-for-flutter
結論としては以下のコマンドを実行することで解決できました。
$ flutter channel master
$ flutter upgrade
シミュレータを起動してmain.dartを実行
Open iOS Simulator をクリックしてシミュレータを起動し、iPhone 14 Pro (mobile) を選択し、実行ボタンをクリックします。
テンプレートのゲーム自体は本当に簡単なものになっていて、スライドバーを特定のパーセンテージ以上の場所までスライドしたらクリアという謎ゲームですがw なんか全体的にオシャレです...!
まだ Flutterでアイコンをタップしたら音が出るシンプルなアプリを開発してリリースする 1/n アプリを開発する に書いたような簡単なアプリしか作ったことがないので、今後この Casual Game Toolkit を使ってもっと本格的なアプリを作ってみたいと思います。
今一番作りたいアプリはタイピングゲームなんですが、ちょっと難易度的に今の知識量だと途中で挫折しそうな気がするので、もう一つ簡単なアプリを挟んだ方が良いかなという気もしています。引き続き更新していきます...!