作者 / Zoey Fan, Product Manager for Flutter, Google
對(duì)于大多數(shù)開發(fā)者來說,F(xiàn)lutter 是一個(gè)應(yīng)用框架。但利用 Flutter 提供的硬件加速圖形支持,圍繞休閑游戲開發(fā)的社區(qū)也在不斷壯大旗闽。
在過去的一年里,已經(jīng)有數(shù)千款 Flutter 游戲發(fā)布。拿游戲公司 Lotum 來舉例榨汤,該公司旗下頗具人氣的文字解謎游戲 4 Pics 1 Word 最近就已經(jīng)用 Flutter 完全重新編寫。Flame 則是一款基于 Flutter 構(gòu)建的怎茫、由社區(qū)驅(qū)動(dòng)的開源游戲引擎收壕,其貢獻(xiàn)者和用戶也一直在穩(wěn)步增長(zhǎng)。
為了了解我們?nèi)绾尾拍転榇蠹姨峁└玫闹С止旄颍覀?采訪了幾位 已經(jīng)成功構(gòu)建并發(fā)布 Flutter 移動(dòng)端游戲的開發(fā)者蜜宪。我們?cè)儐査麄兿矚g用 Flutter 創(chuàng)建游戲的原因,他們的回答給出了下面幾個(gè)原因:
- Flutter 簡(jiǎn)單易學(xué)祥山,可以輕松用于構(gòu)建用戶界面和休閑游戲
- Flutter 允許開發(fā)者查看框架源代碼 (不存在 "黑盒")圃验,并能完全控制畫布
- Flutter 擁有開放的生態(tài)系統(tǒng),開發(fā)者可以找到 (并使用) 許多有用的 package缝呕、插件和開發(fā)庫
- Flutter 是可移植的损谦,只需寫一次代碼,游戲就默認(rèn)可以編譯為多平臺(tái)版本
同時(shí)岳颇,參與我們調(diào)研的開發(fā)者有提到,創(chuàng)建 Flutter 游戲的最大挑戰(zhàn)是尋找用于入門的資源和學(xué)習(xí)材料颅湘,以及與平臺(tái)游戲服務(wù)進(jìn)行集成话侧。為了解決這些需求,我們發(fā)布了新的入門工具包闯参,以加速您的游戲開發(fā)進(jìn)程瞻鹏。
Flutter 休閑游戲工具包 (Casual Game Toolkit) 提供了專門的模板 (由 Filip Hracek 開發(fā)),您可以用它來構(gòu)建自己的游戲鹿寨。這個(gè)啟動(dòng)項(xiàng)目提供了預(yù)先構(gòu)建完畢的各種您可能用得著的 "零部件"新博,包括主菜單、設(shè)置頁面脚草、聲音支持等赫悄,最有趣的部分仍然留給您: 構(gòu)建游戲!
視頻教程
如果想要上手開發(fā)游戲,請(qǐng)查看我們準(zhǔn)備的關(guān)于如何使用游戲模板的 視頻教程埂淮。它為您提供了創(chuàng)建一個(gè) 井字棋游戲 (您也可從 iOS/Android 應(yīng)用商店下載這個(gè)游戲) 的逐步教學(xué)姑隅。如果您想要了解 Filip 在開發(fā)這款游戲時(shí)經(jīng)歷的所有細(xì)節(jié),歡迎閱讀他的 原始開發(fā)日志倔撞。
預(yù)集成的服務(wù)
除了在游戲中可能需要用到的常見用戶界面和功能元素之外讲仰,您還會(huì)得到游戲開發(fā)所需的關(guān)鍵服務(wù)的預(yù)集成模塊和示例代碼。例如痪蝇,游戲模板中就集成了 Apple Game Center 和 Google Play Games Services鄙陡,因此您可以輕松地實(shí)現(xiàn)排行榜和成就等功能。
如果您打算通過游戲盈利躏啰,模板還使用了 Google 移動(dòng)廣告 SDK趁矾,并告訴您如何實(shí)現(xiàn)廣告樣本。該模板還使用了 應(yīng)用內(nèi)購買 package丙唧,可讓您在游戲中為玩家提供額外的內(nèi)容愈魏,如高級(jí)體驗(yàn)、數(shù)字商品和訂閱等想际。
最后培漏,游戲模板還包含 Firebase Crashlytics,讓您可以獲得更多關(guān)于游戲中可能發(fā)生的崩潰和錯(cuò)誤的洞察胡本。該游戲模板的所有源代碼都可以在 GitHub 上的 Flutter 示例 repo 中找到牌柄。
Flutter 游戲 Discord 頻道
Flutter 的優(yōu)勢(shì)之一,在于它是充滿溫度侧甫、樂于助人的社區(qū)珊佣。如果您想要與其他 Flutter 游戲開發(fā)者聊天、提問和分享最佳實(shí)踐披粟,請(qǐng)加入 r/FlutterDev Discord 服務(wù)器上的 游戲開發(fā)專屬頻道咒锻!非常感謝我們的社區(qū)成員 @Miyoyo 幫助創(chuàng)建這個(gè)社區(qū)空間來支持 Flutter 游戲開發(fā)者!(順便說一下守屉,如果您已經(jīng)是 r/FlutterDev 社區(qū)的成員惑艇,可以通過 鏈接 直接加入)
Google Ads 和 Cloud 贊助額度
如果您的游戲需要 Cloud 或 Firebase 服務(wù),或者您想使用 Ads 向更多用戶推廣您的游戲拇泛,您可以獲得由 Google Ads 和 Cloud 團(tuán)隊(duì)提供的高達(dá) 900 美元的贊助額度 (受條款限制)滨巴!
由移動(dòng)端開始,走向更廣闊舞臺(tái)
從過去的研究中我們了解到俺叭,現(xiàn)在的 Flutter 游戲大多是休閑手機(jī)游戲恭取,所以我們?cè)谠O(shè)計(jì) Flutter 休閑游戲工具包時(shí)優(yōu)先考慮了移動(dòng)場(chǎng)景。
但這并不意味著您的創(chuàng)意應(yīng)該局限于移動(dòng)平臺(tái)熄守。事實(shí)上蜈垮,剛才提到的 井字棋游戲 除了在 web 端運(yùn)行 外耗跛,也能在桌面端運(yùn)行!
我們最近還在 DartPad 上增加了對(duì)社區(qū)驅(qū)動(dòng)的游戲引擎 Flame 的支持窃款,因此您可以在 DartPad 上探索 用 Flame 構(gòu)建游戲课兄,而無需下載 SDK。另外晨继,由 Very Good Ventures (VGV) 編寫烟阐,并在 Google I/O 大會(huì)上推出的 web 端 彈球游戲,就是使用 Flame 引擎在 Flutter 中構(gòu)建的紊扬!如果您想要了解該彈球游戲是如何創(chuàng)建的蜒茄,請(qǐng)查看 VGV 團(tuán)隊(duì)關(guān)于這個(gè) 彈球游戲的博客文章 或直接 閱讀其代碼。
游戲開發(fā)是 Flutter 涉足的全新且令人興奮的場(chǎng)景餐屎!展望未來檀葛,我們希望增加更多的 Codelab 和其他資源,來幫助您開發(fā)游戲腹缩。這是我們第一次嘗試在這方面為您提供更多便利屿聋,我們充分知曉還有許多地方需要改進(jìn)。我們最近開始與社區(qū)成員 @wolfenrain 合作藏鹊,對(duì)游戲相關(guān)的問題進(jìn)行分流润讥。如果您希望 Flutter SDK 提供更好的產(chǎn)品功能,請(qǐng)?jiān)?GitHub 上提交 issue (或?qū)ΜF(xiàn)有 issue 進(jìn)行投票)盘寡。
Flutter 游戲開發(fā)
請(qǐng)查看專門的 游戲開發(fā)頁面 以了解更多關(guān)于上述資源的詳細(xì)信息楚殿,您還可以找到 文檔鏈接,以及 Flutter 社區(qū)中游戲開發(fā)專家推薦的代碼庫竿痰、package 和工具的參考信息脆粥。
自 Flutter 1.0 發(fā)布以來,大家不斷用精彩的應(yīng)用為我們帶來驚喜影涉,現(xiàn)在我們迫不及待地想看到您將用 Flutter 打造出多么令人興奮的游戲了变隔!