More
Flutter、カジュアルゲームツールキット、およびBack4appを使用して高度なエンドレスランナーゲームを構築する方法
49 分
はじめに カジュアルゲームは、そのシンプルさと魅力的なゲームプレイで人気があり、簡単に学べるメカニクスで幅広いオーディエンスを魅了しています。この高度なチュートリアルでは、flutterのカジュアルゲームツールキットを使用して、完全に機能するエンドレスランナーゲームを開発します。ゲームのバックエンドを管理するために、 back4app を統合し、高得点、プレイヤープロフィール、実績などのユーザーデータを保存します。また、状態管理、パフォーマンス最適化、デプロイメント戦略などの高度なトピックにも掘り下げます。このチュートリアルの終わりまでには、データの永続性と強化された機能を備えた、androidとiosの両方でデプロイ可能な洗練されたエンドレスランナーゲームが完成します。 前提条件 始める前に、以下のものを確認してください flutter開発環境 インストールされ、設定されています。まだ設定していない場合は、 公式flutterインストールガイド https //flutter dev/docs/get started/install を参照してください。 中級flutter知識 flutterウィジェット、状態管理、非同期プログラミングに精通していること。 back4appアカウント back4app https //www back4app com で無料アカウントにサインアップしてください。 back4appの理解 プロジェクトの作成とデータ管理の基本知識。 back4appの始め方ガイド https //www back4app com/docs/get started/welcome を参照してください。 githubアカウント リポジトリをクローンし、バージョン管理を行うため。 状態管理ライブラリの経験 providerやblocなど。 テストとデプロイメントの理解 テストの作成とflutterアプリのデプロイに関する基本的な理解。 ステップ1 – back4appバックエンドの設定 1 1 back4appで新しいプロジェクトを作成する back4appアカウントにログインします。 クリックします "新しいアプリを作成" と名付けます "高度なエンドレスランナーゲーム" 1 2 ユーザーデータのクラスを設定する 次のクラスを作成します ユーザー , スコア , および 実績 ユーザークラス フィールド ユーザー名 (文字列) パスワード (文字列) メール (文字列) プロフィール画像 (ファイル) スコアクラス フィールド ユーザー (ユーザーへのポインタ) ハイスコア (数値) レベル (数値) 実績クラス フィールド ユーザー (ユーザーへのポインタ) 達成名 (文字列) 達成日 (日付) 1 3 セキュリティと権限の設定 ユーザーデータを保護するためにクラスレベルの権限を設定します。 認証されたユーザーのみが自分のデータを読み書きできることを確認します。 1 4 サンプルデータの追加 統合を後でテストするために、クラスにサンプルデータを入力します。 ステップ2 – エンドレスランナー テンプレートのクローンと設定 2 1 flutterカジュアルゲームツールキットリポジトリをクローンする git clone https //github com/flutter/casual games git 2 2 エンドレスランナーテンプレートに移動する cd casual games/templates/endless runner 2 3 ideでプロジェクトを開く visual studio code、android studio、または任意の好みのideを使用します。 flutterとdartのプラグインがインストールされていることを確認します。 2 4 依存関係を更新する 「 pubspec yaml 」を開いて、依存関係を最新のバージョンに更新します。 実行 flutter pub get ステップ 3 – 高度な機能でゲームを強化する 3 1 ユーザー認証の実装 プレイヤーがサインアップ、ログイン、プロフィールを管理できるようにします。 3 1 1 parse server sdkの追加 に pubspec yaml dependencies parse server sdk flutter ^3 1 0 実行 flutter pub get 3 1 2 認証サービスの設定 を作成します lib/services/auth service dart import 'package\ parse server sdk flutter/parse server sdk flutter dart'; class authservice { future\<parseuser> signup(string username, string password, string email) async { var user = parseuser(username, password, email); var response = await user signup(); if (response success) { return response result; } else { throw exception(response error! message); } } future\<parseuser> login(string username, string password) async { var user = parseuser(username, password, null); var response = await user login(); if (response success) { return response result; } else { throw exception(response error! message); } } future\<void> logout() async { var user = await parseuser currentuser() as parseuser; await user logout(); } } 3 1 3 認証画面の作成 サインアップ画面 lib/screens/signup screen dart ログイン画面 lib/screens/login screen dart flutterウィジェットを使用してユーザー入力用のフォームを作成します。 3 2 ui/uxの強化 カスタムアニメーションを実装する animationcontroller を使用して。 lib/theme dart にカスタムテーマを追加する。 3 3 実績とリーダーボードを追加する 実績を表示するためのuiコンポーネントを作成する。 トップスコアを世界中に表示するリーダーボード画面を実装する。 ステップ4 – back4appをゲームに統合する 4 1 main dart でparseを初期化する void main() async { widgetsflutterbinding ensureinitialized(); const keyapplicationid = 'your app id'; const keyclientkey = 'your client key'; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize( keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true, ); runapp(myapp()); } 4 2 資格情報を安全に保存する 環境変数を管理するために flutter dotenv を使用します。 に pubspec yaml dependencies flutter dotenv ^5 0 2 を作成します env ファイル( gitignore に追加します) app id=your app id client key=your client key を更新します main dart import 'package\ flutter dotenv/flutter dotenv dart'; void main() async { widgetsflutterbinding ensureinitialized(); await dotenv load(filename " env"); final keyapplicationid = dotenv env\['app id']!; final keyclientkey = dotenv env\['client key']!; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize( keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true, ); runapp(myapp()); } ステップ 5 – ステート管理の実装 5 1 状態管理ソリューションを選択する 簡単のために、 provider を使用します。 5 1 1 provider依存関係を追加する に pubspec yaml dependencies provider ^6 0 0 実行 flutter pub get 5 2 ゲーム状態管理を作成する 5 2 1 ゲーム状態クラスを作成する lib/models/game state dart import 'package\ flutter/foundation dart'; class gamestate extends changenotifier { int score = 0; int get score => score; void incrementscore() { score++; notifylisteners(); } void resetscore() { score = 0; notifylisteners(); } } 5 2 2 ゲーム状態を提供する に main dart import 'package\ provider/provider dart'; import 'models/game state dart'; void main() async { // parse initialization runapp( multiprovider( providers \[ changenotifierprovider(create ( ) => gamestate()), ], child myapp(), ), ); } 5 2 3 ウィジェットでゲーム状態を消費する ゲーム画面で int score = context watch\<gamestate>() score; ステップ 6 – パフォーマンスの最適化 6 1 ゲームパフォーマンス スプライト管理 メモリ使用量を減らすためにスプライトシートを使用します。 フレームレート最適化 パフォーマンスとバッテリー寿命のバランスを取るためにフレームレートを制限します。 6 2 ネットワーク最適化 データキャッシング ネットワークコールを減らすためにキャッシングメカニズムを実装します。 バッチリクエスト バックエンドとの通信時にバッチ操作を使用します。 6 3 コードプロファイリング flutterの devtools を使用してアプリをプロファイリングします。 パフォーマンスのボトルネックを特定して修正します。 ステップ 7 – 堅牢なエラーハンドリングとテスト 7 1 エラーハンドリング トライキャッチブロック 例外を処理するために非同期呼び出しをラップします。 try { var result = await someasyncfunction(); } catch (e) { // handle error } ユーザーフィードバック エラーが発生したときにユーザーフレンドリーなメッセージを表示します。 7 2 ロギング エラーや重要なイベントを記録するために、 logging パッケージを使用します。 「 pubspec yaml 」で dependencies logging ^1 0 2 7 3 テスト 7 3 1 ユニットテスト モデルとサービスのテストを作成します。 「 test/game state test dart 」の例テスト import 'package\ flutter test/flutter test dart'; import 'package\ your app/models/game state dart'; void main() { test('score increments correctly', () { final gamestate = gamestate(); gamestate incrementscore(); expect(gamestate score, 1); }); } 7 3 2 統合テスト アプリのuiとインタラクションをテストします。 flutterの統合テストフレームワークを使用します。 ステップ8 – ゲームのデプロイ 8 1 デプロイの準備 アプリアイコンとスプラッシュスクリーン ブランドに合わせてカスタマイズします。 アプリバンドルid androidとiosのためにユニークな識別子を設定します。 8 2 リリースバージョンのビルド android 署名設定で android/app/build gradle を更新します。 実行 flutter build apk release ios xcodeで ios/runner xcworkspace を開きます。 署名と機能を設定します。 実行 flutter build ios release 8 3 app store 提出 google play ストア 公式ガイド https //developer android com/distribute/console に従ってください。 apple app store 公式ガイド https //developer apple com/app store/submit/ に従ってください。 結論 この高度なチュートリアルでは、flutterのカジュアルゲームツールキットを使用して、機能豊富なエンドレスランナーゲームを構築し、バックエンドサービスのためにback4appを統合しました。以下の内容をカバーしました ユーザー認証 プレイヤーがサインアップ、ログイン、プロフィールを管理できるようにします。 状態管理 効率的な状態管理のためにproviderを使用します。 パフォーマンス最適化 ゲームとネットワークのパフォーマンスを向上させます。 エラーハンドリングとテスト 堅牢なエラーハンドリングを実装し、テストを作成します。 デプロイメント アプリをアプリストアに準備して提出します。 この包括的なアプローチは、信頼性のあるバックエンド統合を持つプロフェッショナルグレードのflutterアプリケーションを開発するためのスキルを提供します。さらに、次のような機能を追加してゲームを拡張できます。 ソーシャルシェアリング プレイヤーがソーシャルメディアで成果を共有できるようにします。 アプリ内購入 購入可能なアイテムやアップグレードでゲームを収益化します。 マルチプレイヤーサポート リアルタイムまたはターン制のマルチプレイヤー機能を実装します。 flutterとback4appの統合に関する詳細情報は、次を参照してください。 flutterドキュメント https //flutter dev/docs back4app flutterガイド https //www back4app com/docs/flutter/overview parse serverガイド https //docs parseplatform org 楽しいコーディングとゲーム開発を!