休閒遊戲工具包
Flutter 休閒遊戲工具包(Casual Games Toolkit)整合了全新與現有的資源, 協助你加速在行動平台上開發遊戲。
本頁將說明你可以在哪裡找到這些可用資源。
為什麼選擇 Flutter 開發遊戲?
#Flutter 框架能為六大目標平台打造高效能應用程式, 涵蓋桌面、行動裝置與網頁。
憑藉 Flutter 跨平台開發、高效能與開源授權的優勢,非常適合用於遊戲開發。
休閒遊戲大致可分為兩類:回合制遊戲(turn-based games) 與即時遊戲(real-time games)。 你可能對這兩種類型的遊戲都不陌生, 只是過去未曾以這種方式思考過。
回合制遊戲 指的是面向大眾市場、規則與玩法簡單的遊戲。 這類遊戲包含桌遊、紙牌遊戲、益智遊戲與策略遊戲。 這些遊戲通常只需簡單的使用者輸入, 例如點擊卡牌或輸入數字、字母。 這類遊戲非常適合用 Flutter 開發。
即時遊戲 則是指一連串動作需即時反應的遊戲。 例如無盡奔跑(endless runner)、賽車等遊戲。 你可能想打造具備進階功能的遊戲,例如碰撞偵測、 攝影機視角、遊戲主迴圈等。 這類遊戲可以考慮使用基於 Flutter 打造的開源遊戲引擎 [Flame 遊戲引擎][Flame game engine]。
工具包內容
#休閒遊戲工具包提供以下免費資源:
一個儲存庫,內含三個全新遊戲範本,作為開發休閒遊戲的起點。
一個 [基礎遊戲範本][basic-template], 內容包含:
- 主選單
- 導覽
- 設定
- 關卡選擇
- 玩家進度
- 遊戲場次管理
- 音效
- 主題
一個 [紙牌遊戲範本][card-template], 包含基礎範本的所有內容,並額外提供:
- 拖放功能
- 遊戲狀態管理
- 多人遊戲整合介面
一個與開源遊戲引擎 Flame 合作開發的 [無盡奔跑(endless runner)範本][runner-template]。其實作內容包括:
- FlameGame 基礎範本
- 玩家操控
- 碰撞偵測
- 視差效果
- 物件生成
- 多種視覺特效
一款基於無盡奔跑範本開發的範例遊戲 ——SuperDash。你可以在 iOS、Android 或 [網頁][web]上遊玩, [瀏覽其開源程式碼儲存庫][view the open source code repo],或 [閱讀該遊戲如何於 6 週內完成開發][read how the game was created in 6 weeks]。
整合所需服務的開發者指南。
[Flame Discord][game-discord] 頻道連結。 若你已有 Discord 帳號,可使用此 [直接連結][discord-direct]。
這些遊戲範本與 Cookbook 範例已做出特定選擇以加速開發。 它們包含了如 provider、google_mobile_ads、 in_app_purchase、audioplayers、crashlytics、games_services 等套件。 若你偏好其他套件,也可自行修改程式碼替換。
Flutter 團隊了解未來你可能會考慮遊戲變現, 因此已新增廣告與應用程式內購(in-app purchases)的 Cookbook 範例。
如 [Games][Games] 頁面所述, 當你將 Google 服務(如 [Cloud、Firebase][Cloud, Firebase] 與 [Ads][Ads])整合進遊戲時, 可享有高達 $900 美元的優惠。
開始使用
#準備好了嗎?開始步驟如下:
若尚未安裝,請先[安裝 Flutter][install Flutter]。
[複製(clone)遊戲儲存庫][game-repo]。
檢視你想建立的第一種遊戲類型的
README檔案。- [基礎遊戲][basic-template-readme]
- [紙牌遊戲][card-template-readme]
- [奔跑遊戲][runner-template-readme]
[加入 Flame 社群 Discord 頻道][game-discord] (use the [direct link][discord-direct] if you already have a Discord account)。
閱讀 Codelab 與 Cookbook 範例。
- 使用 Cloud Firestore 建立 [多人遊戲][multiplayer-recipe]。
- 使用 Flutter 建立 文字拼圖遊戲。—全新
- 使用 Flutter 與 Flame 建立 2D 物理遊戲。—全新
- 使用 SoLoud 為你的 Flutter 遊戲加入音效與音樂。—全新
- 讓你的遊戲更有趣, 加入 [排行榜與成就][leaderboard-recipe]。
- 透過 [遊戲內廣告][ads-recipe] 與 [應用程式內購][iap-recipe] 變現你的遊戲。
- 使用 [Firebase Authentication][firebase-auth] 為遊戲加入用戶驗證流程。
- 透過 [Firebase Crashlytics][firebase-crashlytics] 收集遊戲內崩潰與錯誤的分析資料。
視需求註冊 AdMob、Firebase 與 Cloud 帳戶。
開始撰寫你的遊戲!
發佈到 Google Play 與 Apple Store。
範例遊戲
#在 Google I/O 2022,Flutter 團隊 與 Very Good Ventures(VGV)都創作了新遊戲。
VGV 使用 Flame 引擎開發了 [I/O Pinball 遊戲][pinball-game]。 想了解這款遊戲, 可參考 Medium 上的 [I/O Pinball Powered by Flutter and Firebase][I/O Pinball Powered by Flutter and Firebase] 並[直接在瀏覽器遊玩][pinball-game]。
Flutter 團隊則開發了 [I/O Flip][flip-game],一款虛擬 [CCG] 遊戲。 想進一步了解 I/O Flip, 可參考 Google Developers Blog 上的 [How It's Made: I/O FLIP adds a twist to a classic card game with generative AI][flip-blog] 並[直接在瀏覽器遊玩][flip-game]。
其他資源
#當你已熟悉這些遊戲範本後, 可探索社群推薦的其他資源。
| 功能 | 資源 |
|---|---|
| 動畫與精靈 | book_5 [特效][Special effects] |
| 應用程式評分 | package_2 [app_review][app_review] |
| 音訊 | package_2 [audioplayers][audioplayers] |
| 驗證 | science [使用 Firebase 進行用戶驗證][firebase-auth] |
| 雲端服務 | science [將 Firebase 加入你的 Flutter 遊戲][Add Firebase to your Flutter game] |
| 除錯 | quick_reference_all [Firebase Crashlytics 概覽][firebase-crashlytics] |
| 驅動程式 | package_2 [win32_gamepad][win32_gamepad] |
| 遊戲資源 與資源工具 | photo_album [CraftPix][CraftPix] |
| 遊戲引擎 | package_2 [Flame][flame-pkg] |
| 遊戲功能 | book_5 [為你的遊戲加入成就與排行榜][leaderboard-recipe] |
| 遊戲服務整合 | package_2 [games_services][game-svc-pkg] |
| 舊有程式碼 | science [在 Flutter 套件中使用 Foreign Function Interface][Use the Foreign Function Interface in a Flutter plugin] |
| 關卡編輯器 | handyman [Tiled][Tiled] |
| 變現 | book_5 [為你的 Flutter 遊戲加入廣告][ads-recipe] |