即刻App年轻人的同好社区
下载
App内打开
Blasin
89关注540被关注2夸夸
🍞🐈🧩
独立游戏《CATO 黄油猫》程序
Blasin
8天前
黄油猫版号终于来了,排队真特么久😭
21
Blasin
9天前
最近尝试了一次 100% vibe coding 制作的 game jam,和艺术家弗兰克在 21 天内做了一个俯视角射击游戏《茫室》。游戏的核心机制是敌人在光照下无敌,玩家只能在阴影中击杀它们,主打一个预判杀敌战斗爽。

欢迎在线试玩:blasin.itch.io
参赛链接:www.gcores.com

这是我最满意的一次 jam,不仅因为成品质量满意,更因为我们经历了多次绝望,在「做完就赢」的心态中把游戏盘活。以前 MDA 理论都是拿来拆解别人的游戏,但这次我亲眼见到 Mechanics、Dynamics、Aesthetics 三元素是如何在我面前一点点组装融合最终使作品完整,刷新我俩对 MDA 的认知。

Agentic AI 大幅提高了生产力,也让我在还剩一周时提前看见了一个失败的结果:所有的机制 Agent 都执行了,但体验就是很垃圾,就像现在流行的 AI slop 游戏一样。我从未在项目制作中如此绝望,如果是我一年前的代码能力,面对这种高沉没成本,我大概会直接放弃。但今日有 AI 做靠山让我抱着大改的心态再试试。

我们试图先解决如何鼓励玩家在阴影中杀敌的问题,Frank 思考过程中一句话成为了我的尤里卡时刻:「如果敌人就是在光照中杀不死的话,xxxx」,这种生硬的方案不仅让机制听起来很酷,有种反向 《心灵杀手》的感觉,而且在设定上还十分诡异,这让我重新对制作打起兴趣。

第二次信心波动是第一个关卡制作出来的时候,我已太熟悉关卡结构,玩得越多越觉不好玩,在交给 Frank 试玩的时候,他对陌生关卡的体验过程,让我明白了这个游戏 Dynamics 最直觉的样子:战斗爽然后才是暗杀的偷感。我再次拾回信心。在我们的计划中游戏应该是潜行为主,但现在这个微妙的比例变化,让我们觉得不是不行。(当然了,玩家测试的结果证明这个决定导致了新的设计问题,但我们日后有信心解决)

同样的绝望发生在 Frank 制作完关卡的时候,他也失去了直觉和信心,但这一次,换成我去测试陌生关卡,我却更加坚定:好玩啊!

这个原型从垃圾变得好玩,让我燃起斗志只想尽力完成它。剩下的工作基本是 todo list 打勾,于是我变成无情的机器,在 Cursor 和 Codex 的帮助下,我在美术对接、细节打磨、bug 修复之间疯狂横跳,有种边造车边开车边修车的快感。最后几天我亢奋到睡不着,一路干到凌晨五点。

在最后阶段高强度的 AI 正反馈下我越发觉得游戏开发的节奏变了,至少对我来说是这样的,一年前我不可能有信心在倒数第二天边修 bug、边加新细节、然后让 Codex 跑 profiling 分析性能,毕竟对 game jam 来说,花时间解决优化问题简直太奢侈了。

因为节奏变了,这次太有信心导致太晚对接美术反而是坏事,我们前面一直在玩的是抽象的三角形大战的原型,Aesthetics 完全不存在,所以当把 Frank 第一批美术接入玩起来的时候,感觉游戏灵魂才开始注入。

而真正让游戏定调的一刻是 AI 生成的一首 BGM。在我使用 ElevenLabs AI 生成音效的时候,意外把 dark synth bgm 的需求混入 AI 的 todo list 中。我一开始只想尝试给游戏做音效埋点,所以把早已收集好的音效 list 发给 Codex,让它使用 ElevenLabs API 生成音频文件并在游戏中埋点触发音效。

洗完澡回来 Codex 果然一站式完成,打开游戏意外获得了一首巨有氛围的合成器 bgm,由于我限制 Codex 只生成音效的缘故,它的 BGM 只能用音效 API 生成一段 10s 的合成器音频循环,但这结果十分惊喜,这下游戏玩起来更带劲了。当然了我们后期还是换了个后朋克的 BGM,但目前 game jam 版本的所有音乐音效都由 ElevenLabs AI 生成,Frank 抽卡四五版才达到我俩都满意的结果。

在以前 game jam 习惯中,我对音效的追求基本是能响就行,这次有 Agent 干体力活,我们花了更多时间打磨音效:比如给敌人加上脚步声双声道系统,BGM 在战斗中提升音量和低音,甚至有空把 BGM 做出 intro / loop / outro 三段式响应。这些音效动效等等 game juice 的打磨,是 AI 赋予我们的奢侈,而这些细节又反过来影响游戏的动态体验,甚至推动机制继续调整,在往回调整的时候游戏又更完整,每次修改都能感受到 Aesthetics 更加个性。

话说回来,《茫室》的灵感来源于 John Wick 4 中甄子丹主演的盲人杀手,他有个特酷的设定是使用门铃当探测器来预判杀敌,而在游戏动态体验上,我们一开始想还原 MOBA 游戏里预判狙击与预判投掷的玩法。虽然在我们一次次前期原型修改中,这些设计被我们逐渐忽视降级,但到了最终成品里,它们又重新回到了核心位置。这次 AI 带给我们的信心与奇迹远不止这一两点,我最近会尝试写一篇文章分享我们本次 AI 工作流的细节。

无论如何,作品做完就是胜利,更重要的是,我们在制作过程中重新确认了自己擅长什么、想做什么,也看见了《茫室》作为正式作品继续发展的潜力。我们并不急着马上开始制作,而是打算继续积累对这个作品的理解与灵感,先把手头的作品做完,等合适的时候再回到《茫室》的世界里。

如果你试玩后有任何建议,或者对这个游戏的后续形态有任何幻想,欢迎留言告诉我们。谢谢试玩!
137
Blasin
15天前
克制的表达,真诚的创作,这是一部属于电影院的作品,真心推荐给各位,请支持用心创作的人。

作为汕头人我从未沉浸在如此有质感的家乡画面中,听到这么多熟悉的家乡俚语,受到了视听与情感叠加的冲击,暴哭到忘带手机😭
41
Blasin
23天前
恭喜《NOOK FALL: 西区》 发售!在机核关注真理叙志部制作组许久,今日终于解放,大卖!

store.steampowered.com
01
Blasin
29天前
让 Agent 编辑 C# 脚本总会遇到一个痛点,需要手动切到 Unity 触发脚本编译,运气差编译失败的话,还需要复制 error logs 给 Agent 让它继续修复。尝试写了一个 skill 解决这个闭环问题,具体就是通过 Unity MCP 的 run command 触发 AssetsDatabase.Refresh(),再让 Agent 等待脚本编译后检查 console logs,有问题就修复到正确为止,用了两天下来感觉更加解放双手。

目前遇到一个更矫情的需求就是如果用 Agent 修改 scene 文件的话,会触发它的 reload 窗口,导致 Unity 线程卡住,间接卡住 Agent。一开始我只能在 skill 里叮嘱它先改 scene,reload 后再改 scirpt,但最近我绕弯解决了,其实就是让它用 AppleScript 点击 macOS 的原生弹窗,慢了几秒但完全可行,Agent 这下能成功闭环了。

-

Cursor 自家的 continual learning 插件用了一段时间,号称能持续学习写入记忆似乎真的有效,我目前还没维护过 AGENTS.md,只觉得现在 prompt 的对象描述得越来越模糊,Agent 还是能抓到重点。

-

日常修改参数方面,最近用 Composer 2 fast (AKA Kimi 2.5 留学版)真的很顺手,我在 Unity 加了一个 deeplink 按钮,可以复制任意 Hierarchy 的 gameobject 和 project 的文件 ID,扔给 Composer 2 它两秒内就能 grep 到指定位置,按我理解这就是 harness 的一部份。

提到按钮,现在这些快捷按钮包括帧率 timescale deeplink 等等,我都扔在 Toolbar Extender,也就是 play 按钮那一栏,之前用的是经典 IMGUI 版本扩展插件,marijnz/unity-toolbar-extender,够用但排版总是令人迷惑。最近 ChatGPT 调研到另外一个开源项目是 UI Toolkit 版本,star 不算多,但用下来感觉现代一些。我现在对 GPT 5.5 很有信心,直接把 git 链接扔给它安装并叮嘱把所有旧按钮也给迁移到新版本,果然一步到位。Toolbar Extender 插件链接如下:

github.com

-

另外 AI 终于可以写 node 形式的 shader 了,年初的许愿终于实现了。我尝试让 Agent 把 unity shader graph 转为 ASE shader 完全没问题,而且还能兼顾一些可读性优化。

不过这中间绕了个弯,感受到了 harness 环境不同,相同模型的表现差异颇大。一开始我使用 Cursor 的 GPT-5.5 1M xhigh,ASE shader 确实生成了,但它偷懒使用了一个 Custom Expression 节点😂。于是我就换 Codex 的 GPT-5.5 xhigh 重来,还叮嘱它有必要就使用 computer use。它花了 11 分钟生成了真正的 ASE shader 版本,没用上 computer use。这结果放两个月前没模型提升没 MCP 闭环的话几乎不可能,这其中 Unity MCP 的 run command 和 get console logs 工具功不可没,感觉 Agent 的 subagent 和上下文策略改进也有很大关系,年初我发现它读 shader 一下就把上下文窗口塞满了,这次用 272K 都没满就解决问题。
32
Blasin
1月前
最近的 Unity MCP 能力更新后可以 runtime 执行代码,可以 get console logs,Agent 突然有手有眼强了不少。

用过 Unity 的都知道,如果在 runtime 的时候刚好调好了一套 components 参数,这时候退出 playing 模式,这些参数是不会被保存下来的,如果只有一个 component 还好办,我可以右键去复制它的参数;但如果遇到一整套 components,甚至跨 GameObject 的分散参数,这就很难搞了。

以往应对这种情况是写 ScriptableObject,这样就可以在运行时保存参数。但实际上不可能给所有的参数都预先加上 ScriptableObject,这么做很繁琐且会多出一些文件来做持久化。

所以我常用截图来解决,把所有相关的 Component 参数截图下来,退出编辑模式后再一个个调回去。如果涉及到 Prefab 的话会更麻烦,还要花费精力定位到 prefab,没法一站式完成。

但现在有一种最接近第一性原则的做法,就是直接在 Runtime 的时候告诉 Agent:记录 xx GameObject 的所有 Component 参数。这些数据不需要变成文件,直接存在于对话里就好了。接着退出运行模式,再告诉 agent 把对话中的参数应用回去,甚至可以挑选部分数据还原。

整个过程零侵入,无需新增脚本无需产生持久化文件无需学习新交互,而且修改前后数据还能在 Agent 对话回溯,Agent + Unity MCP 完美解决了这个使用场景。

这几天我改用 Unity 官方 MCP 体验良好,一是之前 coplay MCP Mac 老崩,二是官方 MCP 不需要手动开启且没有额外 bridge 窗口,这点我太需要了。
30
Blasin
2月前
最近两部让我惊喜的电影,都是毫无准备地走进影院,只看了眼简介就买票,看完却后劲十足,不想思考,沉浸在情绪里,脑袋嗡嗡呆到散场。
00