likes
comments
collection
share

Google IO 2023 第一弹, I/O FLIP 小游戏

作者站长头像
站长
· 阅读数 5

Google IO 2023 马上就要开始了,而和去年一样,今年同样发布了预热小游戏 I/O FLIP该款小游戏是使用 AI 设计的纸牌游戏,采用了 Flutter 和 Firebase 开发构建,整体体验上像是 Demo 版本的炉石传说。

Google IO 2023 第一弹, I/O FLIP 小游戏

Google 本次针对 I/O FLIP 提供 AI 支持,主要是希望展示 AI 技术的可能性,底层主要使用 DreamBooth 和 Muse 预先生成了大量自定义角色图像,并使用 PaLM API 生成了它们的描述。

游戏的 UI 和后端使用 Flutter 和 Dart 构建,利用 Firebase 托管和共享数据,Cloud Run 用于帮助扩展。

Google IO 2023 第一弹, I/O FLIP 小游戏

游戏整体流程也比较简单,进入游戏后:

  • 选择一个角色类别和一个力量体系来随机生成 12 张卡片
  • 从包中选择三张卡片你觉得最合适的卡片开始游戏
  • 加入一场比赛并赢得三局两胜(田忌赛马),赢了可以进入下一场
  • 卡片对战是以攻击力为主,并会有属性克制效果,属性克制时会降低对方 10 点攻击力
  • 连续赢得多场会有连胜纪录,从而有机会进入排行榜
Google IO 2023 第一弹, I/O FLIP 小游戏Google IO 2023 第一弹, I/O FLIP 小游戏Google IO 2023 第一弹, I/O FLIP 小游戏Google IO 2023 第一弹, I/O FLIP 小游戏

Flutter 和 Dart 支持

I/O FLIP 的逻辑、UI 和音频支持使用的是 Flutter Casual Games Toolkit 工具包,并且利用 go_router 实现页面路由。

另外由于 FLIP 是一个 web 游戏,所以它需要适配不同屏幕的大小和调整,所以它需要支持 adaptive-responsive

FLIP 中的大部分逻辑是基于游戏卡片进行设计,每张卡片都包含四个 Google 吉祥物之一的形象:DashSparkyDinoAndroid 以及它们对应的描述。

两者的设定主要都来自用户在游戏开始时选择的职业和力量,卡片还随机分配了一种元素力量(空气、水、火、金属、地球)和一个 10-100 之间的数字,数字表示卡片的强度,元素力量可以在比赛中相互影响,如下图所示:

Google IO 2023 第一弹, I/O FLIP 小游戏

如果卡片的元素受到克制,那场上它将受到 10 分的削弱。

每场比赛都是三局两胜制,类似田忌赛马,玩家赢了可以继续用他们选择的手牌继续比赛,而输的一方可以分享他们的手牌或选择新手牌再次开始。

在这里,即将发布的= Flutter 和 Dart 全新功能帮助我们快速实现上述支持:例如 :

  • Dart 3 的 record 可以帮助我们基于卡片元素来渲染 frame

  •  fragment shaders 的官方支持,可以帮助我们创建一些卡片上的特殊 3D 效果。

Google IO 2023 第一弹, I/O FLIP 小游戏

Muse 和 PaLM API 上的 Dreambooth

I/O FLIP 中的每张卡片都是使用了 AI 生成的图像和描述

图像是使用 Google Research 开创的两种技术预先生成的:

  • Muse,一种来自 Imagen 模型系列的文本到图像 AI 模型

  • DreamBooth,一种运行在 Muse 之上的技术,允许个性化文本 to 图像的模型,可以使用自己的一小组图像进行训练,生成特定主题的新图像

卡片描述在 MakerSuite 中制作原型,并使用访问 Google 大型语言模型的 PaLM API 进行预先生成

根据玩家在游戏开始时选择的力量,可能会得到一张卡片描述,为图像提供背景信息,包括角色的特殊力量,例如:

“Dash the Wizard lives in a castle with his pet dragon. He loves to cast spells and make people laugh.”

Flutter 用于使用 GameCard 控件,根据名称、描述、图像和能力组合卡片,创建卡片后,对应的元素的边框就会被赋予,如果你运气够好,设计中还会有特殊的着色器效果。

Google IO 2023 第一弹, I/O FLIP 小游戏

Firebase: 游戏托管、共享和实时游戏

Cloud Storage for Firebase 存储生成玩家牌组的所有图像、描述、元素和数字。

Firestore 跟踪“最高连胜”的排行榜,并使用 firedart 添加新的获胜者。

在 Flutter 应用程序直接访问 Firestore 的所有情况下,我们都使用App Check来确保只允许我们自己编写的代码,并且我们使用 Firebase 安全规则来确保代码只能访问数据并进行更改授权给。

Dart Frog

Dart Frog 会将游戏结果(例如每一轮的获胜者)保留在后端,并且在 Flutter 前端和 Firestore 后端之间共享此代码,这不仅有助于防止作弊,还可以让我们用同一种语言来编写后端和前端代码

通过将 I/O FLIP 的 Dart Frog 服务器部署到 Cloud Run,该游戏还可以利用autoscaling 等功能,使其能够同时处理许多玩家。

最后,Dart Frog 还支持在社区里下载或分享卡片,在一轮游戏结束时,玩家可以选择下载或分享到 Twitter 或 Facebook。

当用户点击分享按钮时,Dart Frog 会生成一个预填充的帖子,其中包含要分享的文本和一个指向带有相应手牌或卡片的网页的链接,以及一个供访问者玩游戏的按键。

个人总结

可以看到,本次 Google IO 的核心还是 AI ,整个游戏的设计都是基于 AI 实现,可以看到 AI 在设计和内容领域的能力支持上越来越成熟。

同时本次游戏的整体体验也比去年更加优秀,主要是 Flutter 在游戏领域的支持也得到进一步提升,同时也印证了去年的说法, Flutter 团队在游戏支持上的进一步投入,让 Flutter Forward 上的承诺在一步一步慢慢成为现实。

Google IO 2023 第一弹, I/O FLIP 小游戏

最后,该项目也是开源的,开源地址: github.com/flutter/io_…

PS:本篇大部分内容来自: developers.googleblog.com/2023/05/how… ,个人做了一些补充调整。