下载 App

《请修复后再运行》开发日志2:当一把程序员,体验修bug的乐趣

修改于2025/10/1625 浏览综合
家人们好呀!我是一个人参加 Taptap 聚光灯的开发者 agoo,今天想跟大家唠唠这款以“修复 Bug”为核心的 Meta 解谜游戏在技术实现上的那些事儿。我特别希望玩家能通过真实的电脑文件操作,好好体验一把调试项目的乐趣,当然其中还有一些荒诞的小惊喜。这篇日志主要给大家分享我在 MessageBox、控制台项目和管道通信上的技术实践,希望能给其他开发者朋友们一些启发!

MessageBox:报错弹窗的“真实感”设计

游戏的核心就是让玩家直面“报错”,所以我直接用了 Windows 的原生错误弹窗来模拟真实的程序崩溃提示(绝对不是我懒得自己做一个弹窗界面[表情_斜眼笑])。就像游戏启动时,会弹出一个超经典又让人头疼的错误窗口:“缺少 MSVCP140.DLL 文件!”
TapTap
大家玩游戏的时候肯定也遇到过这个经典报错吧?
在 Unity 里要显示 Windows 原生弹窗,得用 PInvoke,只要提前声明一下函数就行。不过,获取游戏自身窗口的句柄 hWnd 比较麻烦,因为 Unity 没有提供相关 API。我的办法是先获取线程 Id,再用线程 Id 反向找出窗口句柄。

控制台项目:调试的沉浸感

为了让玩家有“亲手调试程序”的感觉,我设计了一个独立于游戏窗口的伪控制台界面,模拟开发者在命令行里排查问题的过程。这是个.Net 控制台项目,玩家可以通过它查询不同 bug 的解决办法。
TapTap
输入你遇到的bug,我教你解决
在游戏设定里,这个控制台是当年独游团队的程序员离职前写好的,方便其他团队成员排查和修复一些基本的 bug。这里我采用了类似《Her Story》电脑查询系统,玩家需要输入自己遇到的 bug,然后系统会匹配出最符合的几个,并给出实际的解决办法。
当然啦,控制台可是游戏的核心,后面还打算穿插游戏的叙事,这部分内容我会在下一篇开发日志详细说说。
在.Net 中有不少优秀的控制台开源项目,我用的是 Spectre.Console,地址是:https://spectreconsole.net/ ,真的强烈推荐,非常好用。

管道通信:游戏与控制台的“对话”

由于游戏窗口和控制台窗口是两个独立的窗口,从程序角度讲就是两个独立的进程,在玩法上这两个进程需要互相沟通,这就需要用到一些进程通信的技术。我用了 Windows 的命名管道(Named Pipes)。
在 Windows 下用命名管道做进程通信不算难,我在控制台程序那边启动了管道服务器,Unity 这边启动管道客户端,两边 Connect 一下,后续就可以直接收发数据了。唯一要注意的就是,管道收数据一般是在独立线程中收的,而 Unity 是单线程的,所以收数据时要先加锁,回到主线程再处理数据。

设计中的思考与挑战

这篇开发日志涉及到的都是一般游戏开发者不太会用到的技术,所以我觉得挺有分享价值的,说不定对哪个开发者朋友有用呢。我是因为早年上大学时学过 Windows 编程,写过 MFC(这真暴露年龄了),所以这些技术基本都学过,没想到这么多年后这些技术又有用武之地,哈哈。
说实话,这个游戏其实非常实验性,非常 meta,我都担心它算不算一款游戏[表情_暗中观察]。这段时间我花在这些技术实现上的时间很少,大部分时间都用在给游戏写背景设定上了,所以其实这是一款叙事向的解谜游戏,关于叙事这部分,我会在下一篇开发日志展开聊聊。
猜你想搜
请修复后再运行 messagebox实现
《请修复后再运行》开发日志3:讲一个独游团队分崩离析的故事截图
《请修复后再运行》开发日志3:讲一个独游团队分崩离析的故事
大家好,我是《请修复再运行》的独人开发者agoo,TapTap聚光灯的参赛选手!这次带来一款实验味儿拉满的meta解谜游戏:玩家得亲手修游戏目录里的文件——改JSON、调时间、塞个png啥的,才能让游戏跑下去。有时候我都怀疑这算不算游戏,哈哈,但GameJam不就得整点离谱的吗? 做这款游戏,我不想只搞个“逗你玩”的怪胎,觉得得有点灵魂。于是灵机一动:通过修bug,讲一个独游团队从意气风发到分崩离
3 赞
1 回复
开发日志:bug,idea和程序员截图
开发日志:bug,idea和程序员
大家好!我是一个人参加 Taptap 聚光灯 的开发者agoo,主题出来后,从一开始的脑洞大开到最后确定创意,分享下我的开发思路。 1. 思路的起点:BUG 作为游戏的核心 这次聚光灯的主题是「你确定这不是 BUG 吗?」一开始,我就被这个主题吸引了,毕竟“BUG”几乎是每个开发者的心头痛。在构思的时候,我想,如何能把“BUG”这个概念玩得更有趣、更不拘一格?于是我开始从不同的角度来思考这个问题。
9 赞
攻略来了,有点难?卡关?要微操?开发者来解答下几个常见问题截图
攻略来了,有点难?卡关?要微操?开发者来解答下几个常见问题
问:关卡必须按顺序玩吗? 答:游戏没有限制游玩顺序,过了新手引导后,所有关卡都是开放的!不过每一章的第一关都是教程关,例如光卡1-1,光卡2-1这些,建议每一章先玩教程关,再玩其他关卡。 问:谜题的难度如何? 答:如果您平时有玩解谜游戏,例如塔罗斯的法则、见证者这些,那谜题的难度应该是适中的。不过如果您平时很少玩类似游戏,谜题的难度是有的,但请相信自己的脑子,大部分人都可以通关的,当前的通关率其实
精华
2 赞