Google IO 2023 立刻就要初步了,而和上一年相同,今年相同发布了预热小游戏 I/O FLIP , 该款小游戏是运用 AI 规划的纸牌游戏,采用了 Flutter 和 Firebase 开发构建,全体体会上像是 Demo 版本的炉石传说。
Google 本次针对 I/O FLIP 供应 AI 支撑,首要是期望展示 AI 技术的可能性,底层首要运用 DreamBooth和Muse 预先生成了很多自定义人物图像,并运用 PaLM API 生成了它们的描绘。
游戏的 UI 和后端运用 Flutter 和 Dart 构建,使用 Firebase 保管和同享数据,Cloud Run 用于帮忙扩展。
游戏全体流程也比较简单,进入游戏后:
- 选择一个人物类别和一个力气系统来随机生成 12 张卡片
- 从包中选择三张卡片你觉得最合适的卡片初步游戏
- 加入一场比赛并赢得三局两胜(田忌赛马),赢了可以进入下一场
- 卡片对战是以攻击力为主,并会有特色抑制效果,特色抑制时会下降对方 10 点攻击力
- 接连赢得多场会有连胜纪录,从而有机会进入排行榜
Flutter 和 Dart 支撑
I/O FLIP 的逻辑、UI 和音频支撑运用的是 Flutter Casual Games Toolkit 工具包,并且使用 go_router 完结页面路由。
其他因为 FLIP 是一个 web 游戏,所以它需求适配不同屏幕的巨细和调整,所以它需求支撑 adaptive-responsive。
FLIP 中的大部分逻辑是依据游戏卡片进行规划,每张卡片都包含四个 Google 吉祥物之一的形象:Dash
、Sparky
、Dino
和 Android
以及它们对应的描绘。
两者的设定首要都来自用户在游戏初步时选择的职业和力气,卡片还随机分配了一种元素力气(空气、水、火、金属、地球)和一个 10-100 之间的数字,数字表明卡片的强度,元素力气可以在比赛中相互影响,如下图所示:
假如卡片的元素遭到抑制,那场上它将遭到 10 分的削弱。
每场比赛都是三局两胜制,相似田忌赛马,玩家赢了可以继续用他们选择的手牌继续比赛,而输的一方可以同享他们的手牌或选择新手牌再次初步。
在这里,即将发布的= Flutter 和 Dart 全新功能帮忙我们快速完结上述支撑:例如 :
-
Dart 3 的 record 可以帮忙我们依据卡片元从来烘托 frame
-
fragment shaders 的官方支撑,可以帮忙我们创建一些卡片上的特别 3D 效果。
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 控件,依据称谓、描绘、图像和才能组合卡片,创建卡片后,对应的元素的边框就会被赋予,假如你命运够好,规划中还会有特其他着色器效果。
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 上的许诺在一步一步渐渐成为实践。
终究,该项目也是开源的,开源地址: github.com/flutter/io_…
PS:本篇大部分内容来自: developers.googleblog.com/2023/05/how… ,个人做了一些补偿调整。