Outland
共 8 篇。
- 给八个世界各写一首主题曲,顺便滚出了八十位虚构歌手
本来只是想给游戏搭个音乐生成的工作流,结果八首主题曲写完之后停不下来,最后每个世界都长出了自己的电台和虚构歌手,一共八十位、三百四十二首。这篇记录一下这事是怎么失控的。
- 《Outland》:一个把八个世界缝在一起的项目
一时兴起开的项目,想学《大灾变:黑暗之日》做末世生存 roguelike,结果把奇幻、仙侠、赛博朋克、克苏鲁全缝进了一个世界观里。这篇讲讲它到底是个什么东西。
- 照着《大灾变》搭引擎:一个自研 roguelike 的系统构成
C++20 + SDL2 自己写的 roguelike 引擎,核心是把 CDDA 那套模拟逻辑复刻下来:时间用 moves 制、地图分三层、只有玩家附近会被真正模拟。这篇讲系统是怎么搭的,以及对齐过程中踩的坑。
- Outland 音乐台:八首世界主题曲与各世界的虚构歌手
把 Outland 做好的音乐挑一批放上来试听:八个世界各一首主题曲,加上各世界电台里虚构歌手的一小部分曲目。
- 让 AI 改我的 C++ 代码,一路都是坑
游戏主文件两万八千行,单个文件读不完,所以改代码基本靠脚本和 patch。这篇记录的是这类改法踩的坑——它们的共同点是:工具回报「写入成功」,编译却炸在无辜的地方,或者更糟,编译全过但游戏一启动就崩。
- 「做完了」这三个字,在这个项目里不算数
这个项目有相当一部分代码不是我一行行敲的,还有一部分同时有好几条线在改。于是「做完了」变成一件需要证明的事:勾选不算、测试绿不算、提交信息也不算。这篇讲我为此建立的验收纪律,以及它们各自抓出过什么。
- 测试全绿,功能没接上:一批门禁是怎么骗我的
项目里现在有一百多个门禁脚本,全量跑一遍二十多分钟。这篇讲的不是「我写了多少测试」,而是这些测试怎么一次次告诉我一切正常——而在游戏里什么都没发生。
- 我把时间做成系统之后,坑才开始
上一篇讲 Outland 引擎的时间是 moves 制,看着挺优雅。这篇讲实现它的过程——一个回合计数器、一个默认值类型、一个挂错层的 tick,加起来能让你返工三周。