查看原文
其他

一起看 I/O | Flutter 休闲游戏工具包发布

Flutter 谷歌开发者 2023-03-26

作者 / Zoey Fan, Product Manager for Flutter, Google


对于大多数开发者来说,Flutter 是一个应用框架。但利用 Flutter 提供的硬件加速图形支持,围绕休闲游戏开发的社区也在不断壮大。


在过去的一年里,已经有数千款 Flutter 游戏发布。拿游戏公司 Lotum 来举例,该公司旗下颇具人气的文字解谜游戏 4 Pics 1 Word 最近就已经用 Flutter 完全重新编写。Flame 则是一款基于 Flutter 构建的、由社区驱动的开源游戏引擎,其贡献者和用户也一直在稳步增长。


  • 4 Pics 1 Word
    https://flutter.dev/showcase/lotum
  • Flame
    https://flame-engine.org/
△ Flutter 开发者构建的手机游戏

为了了解我们如何才能为大家提供更好的支持,我们采访了几位已经成功构建并发布 Flutter 移动端游戏的开发者。我们询问他们喜欢用 Flutter 创建游戏的原因,他们的回答给出了下面几个原因:

  • Flutter 简单易学,可以轻松用于构建用户界面和休闲游戏

  • Flutter 允许开发者查看框架源代码 (不存在 "黑盒"),并能完全控制画布 
  • Flutter 拥有开放的生态系统,开发者可以找到 (并使用) 许多有用的 package、插件和开发库
  • Flutter 是可移植的,只需写一次代码,游戏就默认可以编译为多平台版本


  • 使用 Flutter 做为游戏开发工具,早期体验者的感想
    https://medium.com/flutter/perspectives-from-early-adopters-of-flutter-as-a-game-development-tool-f95fb3406d51


同时,参与我们调研的开发者有提到,创建 Flutter 游戏的最大挑战是寻找用于入门的资源和学习材料,以及与平台游戏服务进行集成。为了解决这些需求,我们发布了新的入门工具包,以加速您的游戏开发进程。

Flutter 休闲游戏工具包 (Casual Game Toolkit) 提供了专门的模板 (由 Filip Hracek 开发),您可以用它来构建自己的游戏。这个启动项目提供了预先构建完毕的各种您可能用得着的 "零部件",包括主菜单、设置页面、声音支持等,最有趣的部分仍然留给您: 构建游戏!


  • Flutter 休闲游戏工具包
    http://flutter.dev/games
  • Filip Hracek
    https://github.com/filiph
△ 在移动设备上运行的井字棋游戏



视频教程


如果想要上手开发游戏,请查看我们准备的关于如何使用游戏模板的视频教程。它为您提供了创建一个井字棋游戏 (您也可从 iOS/Android 应用商店下载这个游戏) 的逐步教学。如果您想要了解 Filip 在开发这款游戏时经历的所有细节,欢迎阅读他的原始开发日志


  • 视频教程
    https://youtu.be/zGgeBNiRy-8
  • 井字棋游戏
    https://github.com/filiph/tictactoe
  • iOS 商店地址
    https://apps.apple.com/us/app/tic-tac-toe-puzzle-game/id1611729977
  • Google Play 商店地址
    https://play.google.com/store/apps/details?id=dev.flutter.tictactoe
  • 原始开发博客
    https://docs.google.com/document/d/e/2PACX-1vRM-pZYVNOcJhCh5-ZHt8jGwWpNvx4KtpJZECHmaUPn9PIOgdTThK5OBRblCM6PQC4skqDRdW0lJnyM/pub



预集成的服务


除了在游戏中可能需要用到的常见用户界面和功能元素之外,您还会得到游戏开发所需的关键服务的预集成模块和示例代码。例如,游戏模板中就集成了 Apple Game Center 和 Google Play Games Services,因此您可以轻松地实现排行榜和成就等功能。


如果您打算通过游戏盈利,模板还使用了 Google 移动广告 SDK,并告诉您如何实现广告样本。该模板还使用了应用内购买 package,可让您在游戏中为玩家提供额外的内容,如高级体验、数字商品和订阅等。


  • Google 移动广告 SDK
    https://pub.flutter-io.cn/packages/google_mobile_ads
  • 应用内购买 package
    https://pub.flutter-io.cn/packages/in_app_purchase


最后,游戏模板还包含 Firebase Crashlytics,让您可以获得更多关于游戏中可能发生的崩溃和错误的洞察。该游戏模板的所有源代码都可以在 GitHub 上的 Flutter 示例 repo 中找到。


  • Firebase Crashlytics
    https://pub.flutter-io.cn/packages/firebase_crashlytics
  • Flutter 示例 repo
    https://github.com/flutter/samples/tree/master/game_template#readme



Flutter 游戏 Discord 频道


Flutter 的优势之一,在于它是充满温度、乐于助人的社区。如果您想要与其他 Flutter 游戏开发者聊天、提问和分享最佳实践,请加入 r/FlutterDev Discord 服务器上的游戏开发专属频道!非常感谢我们的社区成员 @Miyoyo 帮助创建这个社区空间来支持 Flutter 游戏开发者!(顺便说一下,如果您已经是 r/FlutterDev 社区的成员,可以通过链接直接加入)


  • 游戏开发专属频道
    https://discord.gg/WY5NwwjBQz
  • 直接加入链接
    https://discord.com/channels/420324994703163402/964110538986651658



Google Ads 和 Cloud 赞助额度


如果您的游戏需要 Cloud 或 Firebase 服务,或者您想使用 Ads 向更多用户推广您的游戏,您可以获得由 Google AdsCloud 团队提供的高达 900 美元的赞助额度 (受条款限制)!


  • Google Ads
    https://ads.google.com/intl/en_us/home/flutter/#!/
  • Cloud
    https://cloud.google.com/free?utm_source=flutter&utm_medium=display&utm_campaign=FY22-Q2-flutter-games_get-started&utm_content=-&utm_term=-



由移动端开始,走向更广阔舞台


从过去的研究中我们了解到,现在的 Flutter 游戏大多是休闲手机游戏,所以我们在设计 Flutter 休闲游戏工具包时优先考虑了移动场景。


但这并不意味着您的创意应该局限于移动平台。事实上,刚才提到的井字棋游戏除了在 web 端运行外,也能在桌面端运行!


  • 井字棋游戏
    https://github.com/filiph/tictactoe
  • Web 端运行
    https://filiph.github.io/tictactoe/
△ 在 web 端和桌面端运行的井字棋游戏

我们最近还在 DartPad 上增加了对社区驱动的游戏引擎 Flame 的支持,因此您可以在 DartPad 上探索用 Flame 构建游戏,而无需下载 SDK。另外,由 Very Good Ventures (VGV) 编写,并在 Google I/O 大会上推出的 web 端弹球游戏,就是使用 Flame 引擎在 Flutter 中构建的!如果您想要了解该弹球游戏是如何创建的,请查看 VGV 团队关于这个弹球游戏的博客文章或直接阅读其代码


  • 在 DartPad 中使用 Flame
    https://dartpad.dev/?id=3e52ca7b51ba15f989ad880b8b3314a2
  • 弹球游戏 (I/O Pinball)
    https://pinball.flutter.dev/
  • VGV 博客: 使用 Flutter 和 Firebase 打造 I/O 弹球游戏
    https://medium.com/flutter/i-o-pinball-powered-by-flutter-and-firebase-d22423f3f5d
  • 弹球游戏代码
    https://github.com/flutter/pinball
△ Web 端的弹球游戏

游戏开发是 Flutter 涉足的全新且令人兴奋的场景!展望未来,我们希望增加更多的 Codelab 和其他资源,来帮助您开发游戏。这是我们第一次尝试在这方面为您提供更多便利,我们充分知晓还有许多地方需要改进。我们最近开始与社区成员 @wolfenrain 合作,对游戏相关的问题进行分流。如果您希望 Flutter SDK 提供更好的产品功能,请在 GitHub 上提交 issue (或对现有 issue 进行投票)。


  • @wolfenrain
    https://github.com/wolfenrain



Flutter 游戏开发


请查看专门的游戏开发页面以了解更多关于上述资源的详细信息,您还可以找到文档链接,以及 Flutter 社区中游戏开发专家推荐的代码库、package 和工具的参考信息。


  • Flutter 游戏开发
    http://flutter.dev/games
  • 开发文档
    http://docs.flutter.dev/resources/games-toolkit


自 Flutter 1.0 发布以来,大家不断用精彩的应用为我们带来惊喜,现在我们迫不及待地想看到您将用 Flutter 打造出多么令人兴奋的游戏了




推荐阅读

如页面未加载,请刷新重试

 点击屏末 | 阅读原文 | 即刻访问 Flutter 开发者社区中文资源



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存