はじめに
今回はFlutterでゲームを作るために作られた「Flutter Casual Game Toolkit」の紹介とサンプルコードを動かすまでの流れを紹介します。
Flutter Casual Game Toolkitについて
Learn about free & open source multiplatform 2D game develop…
Flutter Casual Game Toolkit は 2022年のGoogle I/O で発表されたモバイルでのカジュアルゲーム開発をしやすくさせる、新規および既存のリソースをまとめたものです。
2022年5月20日現在では以下のようなリソースが存在します。
- テンプレートゲームのGitHubリポジトリ
- ゲーム制作の解説動画
- iOS/Android でリリース済みの3目並べゲームのソースコード
それぞれについて解説していきます。
テンプレートのGitHubリポジトリ
A collection of Flutter examples and demos. Contribute to fl…
こちらが今回紹介するゲームテンプレートのリポジトリになります。
後ほど紹介する解説動画でも説明されていますが、このリポジトリでは次の機能が事前に作成されており、お金を稼ぐことを想定して作られたものになっています。
- メインメニュー
- 効果音やBGM
- 広告
- アプリ内課金
- アチーブメントとリーダーボード
- Crashlyticsのサポート
ゲーム制作の解説動画
先ほど紹介したリポジトリの機能やコードの動きを紹介しています。
全部英語で解説されているのですが、Youtubeの設定で日本語字幕にしてあげれば深くを理解できなくても大体の内容を掴めると思います。
私がこの動画を見て捉えた内容をざっとまとめます。
- ゲームアプリにはゲーム的なゲームとアプリ的なゲームが存在する
- ゲーム的なゲームとはマインクラフトや原神、フォートナイトといった常に変化があり続けるゲーム
- アプリ的なゲームとは○×ゲームや囲碁、将棋といったターン制でユーザーの入力待機を行うゲーム
- Flutterではアプリ的なゲームが得意である
- ゲームアプリの収益の呼びやすさ
- リポジトリ内の機能と各ファイルの解説
- ゲーム開発に便利なアセットサイトの紹介
特に後半のアセットサイトの紹介場面は役に立つ内容が多いのではないでしょうか??
リリース済みアプリのソースコード
このリポジトリは先ほど紹介したゲームテンプレートが使用されています。
動作と流れを実際に作られたアプリから学んでみるのもアリかもしれませんね!
サンプルコードを動かす
さて、本記事の本題である「Flutter Casual Game Toolkit」のサンプルコードの動作確認を行いましょう!
サンプルコードのクローン
A collection of Flutter examples and demos. Contribute to fl…
ゲームテンプレートはこちらのリポジトリなのですが、リポジトリの中の「game_template」フォルダのみが欲しいため、今回はGitコマンドでクローンをするのではなく、リポジトリをzip形式でダウンロードします。
A collection of Flutter examples and demos. Contribute to fl…
こちらにアクセスをしてzipファイルでリポジトリをダウンロードしてください。このリポジトリのサイズはとても大きいので事前に十分な空き容量を用意して実行してください。
ダウンロードしたリポジトリのzipファイルを解凍してその中にある「game_template」を管理しやすい場所へ移動してください。
.gitigonreファイルとanalysis_options.yamlの書き換え
先ほどの方法で「game_template」フォルダのみをコピーするとGitで管理する際に用いられる「.gitignore」ファイルとFlutterで使用される「analysis_options.yaml」ファイルが不完全な状態です。
VSCodeなどで先ほどダウンロードして解凍した「samples-master」フォルダを開いて、隠しファイルの「.gitignore」ファイルをコピーして「game_template」フォルダに移動してください。
「analysis_options.yaml」ファイルについては次のコードをコピぺして貼り替えてください。
include: package:flutter_lints/flutter.yaml
analyzer:
strong-mode:
implicit-casts: false
implicit-dynamic: false
linter:
rules:
# Remove or force lint rules by adding lines like the following.
# The lints below are disabled in order to make things smoother in early
# development. Consider enabling them once development is further along.
prefer_const_constructors: false # Annoying in early development
prefer_single_quotes: false # Annoying in early development
avoid_types_on_closure_parameters: true
avoid_void_async: true
cancel_subscriptions: true
close_sinks: true
directives_ordering: true
package_api_docs: true
package_prefixed_library_names: true
test_types_in_equals: true
throw_in_finally: true
unawaited_futures: true
unnecessary_statements: true
use_super_parameters: true
依存パッケージのインストール
ターミナルなどで「game_template」のディレクトリまで移動して次のコマンドを実行してください。
flutter pub get
初回の実行だとインストールに時間がかかりますが気長に待ちましょう
サンプルアプリの実行
依存パッケージをインストールしたディレクトリと同一のディレクトリで次のコマンドを実行します。
flutter run
次にシミュレーターのデバイスを選択するリストが表示されますので、任意の数字を入力してシミュレーションデバイスを選択してください。
ビルドが完了するとサンプルゲームアプリが起動します。
BGMやSEなどが流れて簡単なゲーム(スライドバーを動かすゲーム?)が試せますね。
おわりに
今回は「Flutter Casual Game Toolkit」とサンプルコードの動かし方について紹介しました。Flutterでもより簡単にゲームが作成できるようになるのは夢がありますね!
本ブログでは今後もFlutterやGAS、Pythonについての記事を書いていきますので、フォローお願いします。