嗯,欢迎来到本期视频。今天我们将对 Fable 5 和 GPT-5.6 进行测试,虽然它们可能也在协同工作,所以可以说这是一次协作测试。我们将使用 Abacus AI 及其超级计算机(如屏幕右侧所示)来进行这项任务。这基本上是一个始终在线的云计算实例,这两个模型都将拥有其完全根访问权限,而它们今天需要这些权限来执行任务。
那么,你们可能会好奇今天的任务是什么?这基本上是该频道最近引入的一种相当流行的测试项目:街头吃游戏(Street Eat game)。因此,本期视频的本质是利用 Abacus AI、GPT-5.6 Soul、Fable 5 以及 Abacus AI 超级计算机,创建一个有趣的游戏。该游戏将通过这个来自 Abacus AI 的云计算实例托管在网络上,并提供实时链接。
在进入正题之前,请随意订阅频道,帮助我获得十万 subscriber 奖牌(100K plaque)。此外,感谢 Abacus AI 赞助本期视频。他们表示喜欢我的演示方式,所以为什么不利用 Abacus AI 及其超级计算机来制作一期符合我们演示风格的内容呢?比如像“街头吃”这样的游戏。我们将对 Fable 5 和 GPT-5.6 Soul 进行高强度测试,以构建出符合这一风格的作品。
接下来,让我们看看提示词(prompt),然后开始构建过程。在查看提示词时,我会稍微缩小超级计算机的窗口,以便更好地显示文本内容。显然,这是一个用于创建“街头吃”游戏的提示词。但它将特别利用使用超级计算机所启用的一些功能,例如根访问权限、使用该计算机执行特定任务等。
提示词内容如下:“我需要你扮演一名自主 AI 工程师和游戏开发者。你拥有这台机器(屏幕右侧的超级计算机)的根访问权限。你的任务是构建并部署一个全栈基于浏览器的 3D 物理游戏,名为‘街头吃’(Street Eat)。”不,我开玩笑的,但你必须自主处理环境设置、后端、LLM 托管以及前端物理游戏。如果在安装或执行过程中遇到错误,请阅读终端日志并自行修复。不要向我寻求帮助,这有点违背传统的“氛围编码”(vibe coding)风格。
首先,我们的后端将使用 Python 和 AI。除了制作一个有趣的游戏外,我们还将指示这些模型拉取一个非常小的 0.5B(十亿参数)Qwen 2.5 模型,实际上是为了让游戏中的 NPC 具备与我们对话的能力。我特意选择这个模型的原因是 Qwen 2.5 没有思维链功能,这使得我们在为游戏 NPC 构建快速、简单且直接的对话系统时更加容易。
毫无疑问,我们会越来越多地看到由 AI 驱动的智能 NPC 出现在游戏中。也许它们不会超级智能,但我有一个有趣的小技巧来赋予它们在人格方面的多样性。此外,他们需要创建一个 API 端点,接收文本输入和角色 ID,并返回由那个半十亿参数的 Qwen 2.5 模型生成的 LLM 响应。接着,提供前端静态文件的服务。
接下来是前端图形和物理部分。使用 Three.js 以及像 Cannon.js 或 Ammo.js 这样的物理引擎,构建一个充满活力、高度详细的 3D 城市街区环境。玩家控制着一个第一人称角色,屏幕上渲染着一只显眼的巨大拳头。用具有物理属性的道具填充城市,如垃圾桶、板条箱等,这些物体可以被击打并飞向空中。此外还要加入至少三个不同的 NPC 模型和方块。
第三部分是游戏玩法机制。当玩家点击某个 NPC 时,会打开一个聊天 UI 覆盖层。NPC 必须使用本地 Qwen 后端动态回复,也就是那个半十亿参数的 Qwen 2.5 模型。该模型将在此处屏幕右侧的超级计算机上完全运行并提供服务。这三个不同的 NPC 必须拥有完全不同的、令人捧腹的系统提示词(system prompt)。例如:脾气暴躁的热狗摊贩、偏执的科技极客,或者禅意的喂鸽子人。
经过简短的对话后(这部分我非常喜欢),玩家必须在聊天中输入“yeet”或“neet”。如果输入“neet”,对话将和平结束。如果输入“yeet”,聊天关闭,玩家巨大的拳头会击打 NPC,施加一个巨大的物理冲量,将 NPC 极其滑稽地远远抛向城市的另一端。
为了增加一点游戏性,你必须追踪玩家的总“yeet”次数。每第三次 yeet 时,NPC 会反击攻击。此时不是 NPC 飞出去,而是将巨大的物理冲量施加到玩家的第一人称视角摄像机上,让玩家疯狂地飞向天空,随后自动重新加载页面以重置游戏。
因为固定的数字有点无聊,我打算将其改为一个随机数量的 yeet 次数。所以,它将是介于 1 到 10 之间的随机数。NPC 将反击 yeet,然后玩家会被 yeet 出去。编写代码,执行服务器,并提供本地端口和公共 URL,以便我可以立即游玩。
现在我们已经有了超级计算机的公开访问域名,所以这可能不是完全必要的,但我还是保留它,看看模型如何处理这种情况:“好吧,我正在使用这里的云计算机。我该如何告诉用户如何访问它?”在进入这一步之前,最后一步是:第一,可能把这个窗口放大一点;第二,我们将在此处启用“最大模式”(max mode),这可以在提示词输入聊天区域下方看到。
如果我们点击这里,可以看到这将使用 Fable 5 和 GPT-5.6 作为日常使用的 LLM。这是最强大的版本,专为我们的最难任务而构建,例如带有 AI 智能 NPC 包含的“街头 yeet”游戏。好了,让我们尝试最大模式。现在已启用。我们将代理(agent)设置保留在这里,因为我们通常不与它聊天。我们是在给它一个需要执行的任务。
不再浪费时间,让我们按下发送键。在这里,我们基本上被带到了一个更像聊天的窗口,因为至少在目前阶段,我们不一定需要看到超级计算机这里正在发生什么。如果我们想要那种分屏侧面板效果,我们也可以点击那里的电脑图标,它将把我们带回之前的状态。嗯,我想暂时我会把这两个都打开,仅仅因为我觉得这样看起来更像是一个“氛围编码”会话。但我们将要……
我们主要关注模型构建的情况,并获得它们正在执行的具体流程的顶层摘要,例如编写代码。因此,我们现在面对一份待办事项列表,由于步骤众多,内容可能较为深入。我们具体看到了七个步骤,同时也能看到代理正在超级计算机的沙盒中进行的控制操作,它们拥有该沙盒的根权限。因此,这里发生的一切都是在为我们的任务设置这个特定的云服务器实例。
现在我们可以看到它正在配置一些本地人工智能智能NPC的设置。我们看到了具体的角色:Vinnie、Blake 和 Maureen,这些角色拥有各自独立的提示词以增加多样性,避免我们总是与同一个NPC对话。这里显示的是小型本地聊天AI的参数:最大新令牌数为120,温度设置为0.8。如果想让对话更出人意料,可以将温度设为一以上,但目前的设置对于此目的来说已经足够。
之前所做的基本上是为本地AI配置环境。现在我们可以看到它正在编写与游戏相关的更多代码。这很酷,因为这展示了一种完整的智能体工作流,因为我们的代理控制着一切。另一个亮点是这些代理拥有该云服务器实例的完整根权限,但这不需要映射到我们的主系统。因此,我们无需给予它们任何访问权限,所有操作完全在 Abacus AI 内部进行。
我们可以看到代码正在编写中,代理们正致力于完成待办事项列表,目前仍处于第一步。这可能需要相当长的时间。与其让待办事项隐藏在底部,我选择将其保留以便查看整体概览,了解当前所处的具体步骤。目前它正在创建我们那个脾气暴躁的热狗摊贩 Vinnie,以及他旁边的热狗车,我们也最终可以吃掉它。
待办事项列表已更新:七步中已完成两步。现在正在设置项目环境,并将下载所需的模型权重。幸运的是,这不是一个很大的模型。所有这些都在虚拟机中完成,我们无需担心任何设置问题。最终它将生成一个实时链接,供任何人游玩。这极大地简化了创建复杂应用的过程,而不仅仅是简单的网站。
现在它正在测试AI以确保其正确响应。之前切换场景前,我们看到了三个特定角色的实际回复。由于模型极小,即使在CPU上也能以相对较好的速度运行,这也是我们使用它的原因之一。有趣的是,代理报告回复有效但角色一致性较弱,因为模型太小。因此它将使用少样本示例来加强这一点。
我们现在看到了这一过程的成果:在云超级计算机上测试该小型AI,以确保它能更连贯地保持角色设定。这涉及前沿模型如 Fable 5.6 Soul 优化小型量子2.5模型(半亿参数)性能的能力。哇,那很快!我现在什么都没做,它正在自主测试。
我喜欢这个界面,因为它分屏显示:左边是代理的操作(计算机动作),右边是在云电脑的 Chrome 浏览器中测试的效果。这是我们第一次看到它,虽然我对图形保真度不敢完全满意,但考虑到我们仍处于早期步骤。我刚才看到它显示了不同的特定区域,看到了 Vinnie 和街道效果。
游戏有一定的复杂性:你需要先与人对话,再决定是否将其“扔飞”。编码时如果输入“neat”,聊天框会显示决定不扔飞的和平信息。我不想过多干预,因为我们可以控制它。抱歉刚才的失误,让我把它放回原位。我们可以看到它在自主进行游戏测试,似乎接近看到游戏的初版迭代了,因为它表示所有机制已验证。
最终完成提交并保存检查点,同时记录部署信息。因此,我们很快就能实际与之互动了。现在,我要再次打开扬声器并确保音量已调高,因为我之前可能遇到过这方面的问题。不过,我们可能还需要让模型进行第二轮迭代处理。如果我们注意到诸如“界面有些卡顿”或“视觉效果不佳”等情况,就需要进行调整。
任务已完成,七项全部搞定。Opus 5模型在这个特定游戏中加入了狗的元素,这确实是个很酷的特性。所以希望版本5和5.6在逻辑或参数上没有出现类似的“疯狂”行为,不要加入狗或其他宠物。它们有时会包含鸽子。好了,来看看结果吧。
以下是完成的内容:我们有了Transformers、Accelerate以及仅CPU版本的PyTorch,这些都是专门用于在CPU上托管这个仅有5亿参数的小型模型。最大新令牌数为120,并包含一个角色示例(one-shot),以保持小型模型的人设一致性,这很有意义。有趣的是,这是它在构建过程中自行决定的,因为它表示在遵循提示方面表现不佳,所以我们需要提供一些示例。
这是我们的前端界面,其中包含有关游戏部署的大量具体信息,包括“反投掷”(counter yeet)机制。这样可以让游戏不仅仅是像上帝模式那样简单,增加一些互动性。现在它已上线并可在 street yeet.abacus.ai.cloud 上游玩。它还在这里列出了游戏创建的所有文件,我们可以选择连接Git并将这些推送到GitHub。
我想先看看这个界面。我将在新标签页中打开它,最好用Chrome浏览器,因为它的兼容性通常更好。这是“Street Yeet”的首次亮相,它正通过Abacus AI超级计算机进行服务。嗯,这个出拳动画挺有意思的。WASD键用于移动……哦不,我在这里无法移动。让我试试方向键。嗯,有意思。好了,现在我们有了第一条反馈:没有音效。确实没有,但我意识到提示中并未要求包含它们。不过我们就把责任推给模型吧,而不是我。
我已经给出了相当严厉的反馈:“绝对会处理这些意见并进行实质性改进。”好吧,你最好能做到。与此同时……我总觉得这个过程很酷。“好的,下一轮迭代。”我想在手机上看看它,因为它可以通过网络直接访问。如果是在手机端,让模型实现屏幕虚拟控制键也是值得做的后续工作。
我也在手机上试了一下,“Street Yeet”确实显示出来了。虽然我不确定可见度如何,但当我们点击屏幕时,出拳动画确实会触发。我只是很喜欢手机……不知道为何,它似乎将AI带入了不同的交互界面中。虽然目前还不能完全游玩,但看看它在其他设备上的表现也很有趣。
与此同时,模型还创建了一份新的待办事项列表,基本上是根据我刚才的反馈来跟进和改进游戏。主要的改进迭代已完成,我很高兴地说,目前还没有任何剧透显示这次改进会是什么样子。如果我在Chrome中刷新页面……第一眼看上去确实好多了。我们有移动的体积云,还有一辆车。
扬声器没开?好了,欢迎观看视频。好的,我们开始吧。这里有个叫Vinnie的角色。我想我们需要点击以发起对话,甚至有一些动作提示来启动交流。“热狗五美元。”输入全大写的“HOT DOG VINNIE”。由于这是一个5亿参数的小型模型,它的智能程度有限。好吧,“拍拍这只狗的后背感谢他的热狗。”Vinnie回应道:“总是全力以赴的热狗侠。Yeet!”
“我们可以投掷板条箱吗?”是的,这很符合预期。“但我似乎无法投掷那个摊位。”好了,我们可以四处移动。现在有了脚步声,我们还可以以不同的力度投掷汽车。实际上,模型赋予不同物体的重量感相当真实。“Maureen是喂鸽子的人。”出于纯粹的好奇心,当然也是为了科学目的,“我们可以投掷鸽子吗?”“不,很好。我们也不应该这样做。”
那是……哦不,那只是烟囱之类的东西。还有更多的车和一些随机的鸣笛音效。我 definitely 想要能够进行更强大的投掷动作。“这里有个Blake,我们的技术 guy,拿着笔记本电脑。哇哦,你没看到我的屏幕对吧?这个想法还是种子轮前的机密信息。”“我会在种子轮融资中投资。打字生成最多120个响应令牌……不,我还准备好这些信息。”
“好的,试试非投掷互动。很好。你和Blake和平分手了。太棒了。”最后让我们和Maureen,那位喂鸽子的大姐聊聊。“还不错。看看那副眼镜。对于懂行的人来说,她看起来就像Steve那个电脑维修工里的Ellis太太。”鸽子没有……哦天哪!“我们被反投掷了!”这让我很生气。这不好吗?看看那些鸽子,它们在动……它们确实很有鸽子的样子。“Yeet!”
我们可以击打水 hydrants。Blake,投掷!好吧,那还不错。虽然还有一些我希望改进的地方,但总体来说这确实符合我的预期。在进行了第二轮相当不错的版本迭代后,我给出了一些后续反馈,希望加入并改进一些内容。我说我希望能够投掷一切:消防栓、热狗摊、鸽子、汽车等。目前的汽车投掷力度远远不够。
整体风格要更夸张一些,而且我们需要增加更多的NPC。不过,并非所有NPC都需要由Quen 2.50.5b驱动。我仍然希望那些随机生成、不具备智能的NPC能够具备“反投掷”能力,这样能为游戏增添更多乐趣。我基本上已经表达了让游戏更加夸张和卡通化的需求,并加入了这些功能。目前这一过程仍在进行中,旨在进一步提升游戏整体的卡通感和荒诞感。
此外,我们还将加入一种名为“强力投掷”的道具拾取机制,这将使我们的角色变得更强。看来迭代已经完成,鸽子现在可以被投掷并伴随叫声,正如我所期望的那样——通过“卡通冲击力”文字特效来体现。这会让游戏更具卡通风格,并且现在出现了一群愚蠢的NPC人群。我暂时保持沉默。
好了,游戏已上线,理论上我们可以测试新更新的“街头投掷”功能了。我看到鸽子在飞……哦不,那是人。他们在哪?嗯,好的。他们都有名字标签,我很喜欢这个设计。“嘿,兰迪。”哦,原来如此,兰迪走进楼里了。没关系,“加里”也……部分进入了大楼。“是的,加里现在在楼里。”让我们赶紧去处理这些NPC。
我们可以跳跃,“布莱克”我们已经交谈过了。我想看看“汽车投掷”是否变得更加……是的,没错,这正是我想要的。“哦。”只是感觉不太对劲。现在我了解到有一个“抓取金拳”的机制。“好的,在哪里?”哦,“打扰一下,加里。”“抱歉,兰迪。”快速瞥了一眼他的脸。“金拳在哪里?”很好。
路灯是可以投掷的,热狗车呢?是的,它也可以被投掷,这很好。但我还是不知道金拳在哪里。“哦。”我的……我们获得了“反加热”功能,这会刷新状态。金拳到底在哪里?“反加热”确实为游戏增色不少,但我还是……哦。那是从一开始就在那里的吗?我不这么认为。“这是我们的超级加热。”让我们试着用它对一辆车。
“是的,可以加热建筑物吗?”不行。“好吧。”呃……在这里。快!不,“超级加热”耗尽了。我想再加一个功能,就是添加移动端控制支持。“好的。”所以这里的最终任务基本上是实现手机适配。此外,还要将“金拳”道具的名称改得更具卡通感一些。“好的。”
因此,它将在设置面板中测试桌面游戏玩法。我们实际上可以看到这里……很好。“设置图标”已经在那里了,这正是我们要添加的,以便我们可以切换到移动端。我也……哦。“金拳三明治”就是它给“金拳”重命名的名字,我想这确实更具卡通感了。“好的。”
它现在实际上正在自主运行游戏,但我相信它正在测试手机控制功能,因为我们可以看到屏幕上有触摸按钮。基本上我们需要的只有“拳击”和另一个蓝色的按钮。但看到它在这里自主测试手机控制功能也很酷。“现在,它正在仅启用移动端触摸控制的情况下检查聊天功能。”正如提示所说,“点击以打开聊天”。
“让我调试一下触摸点的射线检测。”现在看起来确实打开了。“所以,这其实是我在实现触摸屏控制时忘记添加的功能。我更多关注的是加热功能,而不是聊天。”所以看到这一点也很好。“好的。”现在已完成并再次上线。所以我在这里进行硬刷新,但此时我对移动端触摸屏控制更感兴趣,我们需要通过实际使用手机来实验。
这正是我们接下来要做的。“好的。”现在到了有趣的部分,让我们在手机上检查触摸屏控制功能。我正在屏幕录制。“好的。”我要把它切换到……横向模式,“横屏”是我想要的术语吧。哦,那里有一只鸽子。“哇。”看啊!嗯……因为我在录制手机屏幕,所以你们能看到它有一个龙形移动摇杆。我们也能旋转视角吗?
可以是可以,但如果我只用拇指操作的话……我认为这对手机的移植效果相当不错。“让我们试着吃点东西。”好的,那是什么?哦,那是跳跃。所以蓝色箭头是用于跳跃的。“让我们先……好的。”现在我们来聊聊,看看聊天窗口是如何工作的。
在竖屏模式下可能更好?还是横屏?我有时会搞混,你们明白我的意思吧。“投掷!再见了布莱克。”这实际上在横屏模式下看起来也不错,但这会搞砸录制。对此我表示歉意。“好的。”让我们去找“金拳三明治”。
我们要去找到一些NPC,我们只有15秒的时间。“哦。”来吧。好的,我只是想打一辆车……“冲啊!”做到了吗?哦不,“他只是……”好吧。在手机上使用反投掷功能,我不知道为什么我展示的方式是这样的,但你们应该会看到它运作良好。“好的。”让我们再试几次。
我必须说这在手机屏幕上其实相当可玩。我注意到的一点是,卡通风格的提示显示屏幕上的所有文本实际上都更大,并且更符合这种主题。“好的。”让我们看看在被反投掷之前能完成多少次投掷。虽然可玩性很高,但如果你看我操作的节奏,导航起来很容易。
这绝对是移动端控制的良好移植。“哦。”克雷格用反投掷击退了我们,然后游戏重新开始。好吧,总体来说其实相当不错。“手机控制真的很好。”这个摇杆、移动能力以及旋转相机位置的功能都做得非常出色。然后我们有不错的跳跃控制和拳击控制,后者是最好的。“我们再做一次投掷以表诚意。”
非常好。我对这次切换非常满意,我们的触摸控制设置就在旁边,只需点击即可切换。“这很不错。”好的。总的来说,这可能就要结束我们的“氛围代码”测试了。再次感谢Abacus AI及其超级计算机功能,在这里使用最大模式,我们能够利用Fable 5和GPT-5.6 Soul实现了一款游戏。
我们将再次在这里看到这一点,我想强调这个观点:这个超级计算机选项基本上实现了这一切,因为不仅我们……
需要设置依赖项,因为这里使用了智能 NPC(非玩家角色),必须下载 Tiny Quan 模型并使其运行。我们在前面看到的所有关于依赖项设置以及在 CPU 上实际使用该模型的环节,完全都是在 Abacus AI 超级计算机上运行的。此外,我们不仅从该系统访问它,还通过手机进行访问,这一切都完全由 Abacus AI 部署和托管。这使得整个过程非常顺畅。基本上就像你输入 Envibe code,就能生成一个像这样的完整生产级游戏并托管在网络上。你可以将链接发送给任何人说:“嘿,看看这个。我刚做出来的,快玩一下。”
我们还可以查看为我们特定游戏生成的文件,比如这里的“Street Eat”。如果愿意,我现在就可以下载整个项目以及 agents.md 文件。我们可以下载该文件夹的 zip 压缩包,这样就能拥有最终制作好的所有内容了。我们可以看到它正在下载中,而且这是一个相当合理的文件大小,因为它不仅包含游戏代码,还包含了 Quen 2.5 0.5 B 模型的实际权重。这就是我们刚才看到的,很酷的是所有这些都被超级计算机无缝处理了,代理(agents)协调并处理了我们所需的一切。
这基本上就是今天视频的结尾。再次感谢 Abacus AI,制作这个视频非常有趣。我知道“Street Eat”在我们进行模型测试时是一个热门选择,所以看到赋予行人智能并协同使用 Fable 5、Fable 5.60 来构建机器、设置依赖项,最终生成一个甚至可以在手机上玩的游戏,这非常有趣。好了,视频到此结束。如果你有任何问题,请随时在评论区留言,感谢观看。