<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>首页 on fsdx</title><link>https://fsdx.top/</link><description>Recent content in 首页 on fsdx</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Wed, 16 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://fsdx.top/index.xml" rel="self" type="application/rss+xml"/><item><title>鬼武者-剑之道</title><link>https://fsdx.top/posts/%E9%AC%BC%E6%AD%A6%E8%80%85-%E5%89%91%E4%B9%8B%E9%81%93/</link><pubDate>Wed, 16 Sep 2026 00:00:00 +0000</pubDate><guid>https://fsdx.top/posts/%E9%AC%BC%E6%AD%A6%E8%80%85-%E5%89%91%E4%B9%8B%E9%81%93/</guid><description>&lt;p&gt;《鬼武者 剑之道》，Capcom 经典系列《鬼武者》时隔近20年后的最新作品。当然，我没有这么老资历，没有玩过之前的作品，即使是重制版也没玩过，《剑之道》可以说是我接触的第一部《鬼武者》。&lt;/p&gt;
&lt;p&gt;而在二周目最高的鬼杀难度全任务通关，并且打完所有鬼杀的“再战强敌”后，我的评价是《剑之道》的战斗真的有“按什么都是对的”的爽快感；但是战斗以外的内容就平庸至极。&lt;/p&gt;
&lt;h2 id="按什么都是对的的战斗"&gt;按什么都是对的的战斗&lt;/h2&gt;
&lt;p&gt;《剑之道》中主角宫本武藏本身的进攻招式是较少的，只有轻攻击、重攻击、轻重攻击衔接时的二连斩、蓄力轻攻击和蓄力重攻击这些。没有轻重攻击间的复杂派生；没有多次轻攻击加重攻击结尾的 C 技；没有不同节奏按攻击产生不同招式；没有方向键加攻击键的招式等等这些动作系统。所以，在进攻的招式这块，本作的动作深度是很浅的。&lt;/p&gt;
&lt;p&gt;但在防御端上，本作的防御手段十分丰富：防御和在敌人攻击时按下防御的精准防御（游戏内称为“化劲”），后者可以打断绝大多数敌人的招式，并且会叠气焰条，气焰条叠满后可以获得攻击力提升的气焰 buff；闪避和在敌人攻击时按下格挡的精准闪避，后者可以叠看破条，看破条叠满后可以在下次完美闪避时释放看破一闪，造成不俗伤害的同时打断敌人动作；弹反（游戏内称为“弹开”）不能打断敌人动作，但是可以造成较高的精力伤害；最后就是《鬼武者》系列招牌的“一闪”，在敌人攻击的瞬间按下攻击键，打断敌人动作的同时造成较高的血量和精力伤害，但是时机十分苛刻。&lt;/p&gt;
&lt;p&gt;虽然《鬼武者》这个系列是以“一闪”这种高难度高收益且十分帅气的招式出名的，但在本作中可以感觉出Capcom
充分考虑做不到“一闪”的新手玩家的体验，敌人的所有招式都可以不用“一闪”处理，且都有不俗的收益和宽松的窗口。而且 Capcom 在设计上有意地鼓励玩家用不同的防御手段处理招式，除了只能闪避的蓝光投技和只能防御的粉光技外，敌人的所有招式都可以用玩家想用的处理方式处理，只是存在收益大小的区别而已。真的能做到“按什么都是对的”的爽快感。&lt;/p&gt;
&lt;p&gt;而且本作有着非常丰富的动作资产。对于不同方向的敌人攻击，用不同的方式处理，都有不同的演出，但是“化劲”就有身后“化劲”、侧面“化劲”等不同的演出。还有处决，拼刀时不同阶段的演出等等，在资产的推量上到达了我前所未见的级别，极大地丰富了视觉反馈。&lt;/p&gt;
&lt;p&gt;当然，这并不是说 Capcom 完全不鼓励使用“一闪”了。在解锁了“远程一闪”后，除了上述的蓝光投技和粉光技外，所有招式也都可以用“一闪”处理。更有“连锁一闪”对多个敌人使用“一闪”的手段，在群战中能快速解决多个敌人。而在难度上，绝大多数招式都是 3 帧的“一闪”窗口，但有一类招式确是给到了 8 帧的窗口，这类招式大多有着非常明显且长的前摇，可以说就是适当地鼓励用“一闪”来处理这类招式。&lt;/p&gt;
&lt;p&gt;这样看，似乎本作的战斗会变等敌人出招然后反击的这种十分被动地等招的体验。但实则并非如此。本作中上述防御手段都有很强的取消性能，按地准的话可以取消主角的绝大部分动作。例如在主角的攻击动作半途中敌人用很快的攻击打主角，玩家就可以在攻击动作半途中按防御等按键，如果触发了精准防御、精准闪避、弹反和一闪，主角就会直接取消当前未完成的攻击动作，转而释放防御招式。因此完全可以一直攻击，敌人反击时用防御招式取消攻击动作，防御招式反击敌人并打断敌人动作后继续攻击，从而形成对敌人持续不断的压制。&lt;/p&gt;
&lt;p&gt;如果没有在攻击动作中也能按准的自信，也可以攻击两三下后就停下来观察敌人的动作。本作中敌人的招式绝大多数都不是极快的“神经刀”或极慢的“延迟刀”，动作清晰度十分高，完全可以凭直觉来预判敌人攻击打到玩家的时机从而防御成功。&lt;/p&gt;
&lt;p&gt;而且本作的 boss 设计十分出色，打起来十分痛快。我最喜欢的 boss 一个就是怒伐天，另一个就是最终 boss 源义经，招式数量丰富，动作设计快而不神经刀，交互起来大开大合，打起来刀光剑影，金铁交鸣爽到颅内高潮。但形成强烈对比的就是本作的杂兵战。小怪的攻击欲望很低，经常是一堆小怪围着主角半天不出手，这时主角本身进攻招式匮乏的缺点得到了极大的放大。Boss 在不进攻散步时我可以和他一起散步，仿佛两人在一触即发的紧张氛围中通过意识早已斩了对方七八刀，感觉很帅。但是小怪不动就真不动，砍它半天也因为进攻的动作系统之浅薄而没劲，削弱了战斗的快乐。&lt;/p&gt;
&lt;p&gt;丰富的防御反击手段、不俗的收益、宽松的触发窗口和极强的取消性能，让《剑之道》有着大多数动作游戏中极强的防御性能，打起来经常会给我“按什么按键都是对的”的感觉。配合炫酷的演出，看着敌人的所有招式都被我的防御招式逐一反击，整场战斗打起来十分帅气，爽快感十分充足。&lt;/p&gt;
&lt;h2 id="平庸至极的注水内容"&gt;平庸至极的注水内容&lt;/h2&gt;
&lt;p&gt;但战斗以外的内容就较为无趣。线性关卡设计一般，只能说是无功无过。而占了大部分内容的开放世界更是无趣。完全就是注水的内容，既没有错综复杂的地图结构，也没有让人眼前一亮的设计，探索起来完全没什么乐趣，基本就是在各种街角巷尾的地方捡东西。但是又不能不探索，因为力石，鬼石等重要的强化素材可能就在某个角落。虽然这么说好像自相矛盾⸺不把好东西放进探索奖励要被批评探索的奖励少，放好东西又要被批评强制要探索。其实并非如此，核心问题是开放世界的探索设计太过无趣，不如做成直接线性关卡。&lt;/p&gt;
&lt;p&gt;除了探索外，开放世界中的支线任务设计也很无趣。除了“箭术大师”要在线性关卡中找飞行小怪射箭外，就全都是到某个地方砍人的“马桶型”任务，没有任何有意思的展开。&lt;/p&gt;
&lt;p&gt;如果有续作，我会希望不要这么注水，那怕游戏体量小一点，只要专注于战斗爽，乃至直接做成线性流程我都可以接受的。最起码让主角的机动性高些，让赶路方便不少，我相信体验也会好上不少。&lt;/p&gt;
&lt;p&gt;此外，游戏的成长做的也很干巴。装备强化到满级也就是翻一倍的数值，而在天赋树上更是把“加快开门速度”做成了一个天赋，还是个需要收集品来解锁的天赋，不是花钱就能点开的天赋，真令人无语至极。&lt;/p&gt;
&lt;p&gt;还有一大核心问题就是敌人的种类是在太少了，不算换皮，按游戏的图鉴一共才23种敌人，从头到尾经常是各种老熟人反复出现。百秽和怒伐天更是超级劳模，出场无数次，打得我对他们的招式比路边的野狗还好认。导致战斗的新鲜感十分少。&lt;/p&gt;
&lt;p&gt;最后就是本作的剧情，虽然很俗，但是不可否认某些无厘头的演出还是挺有意思的。确实尬，但也确实让我笑出来了。就比如最终演出中宫本武藏正耍帅，阿国过去踢了他的屁股一脚，戳穿他在耍帅，幽默的同时也让人物形象立起来了。&lt;/p&gt;
&lt;h2 id="鬼杀难度二周目"&gt;鬼杀难度二周目&lt;/h2&gt;
&lt;p&gt;上述体验是以我一周目剑戟难度（普通难度）的体验为主。实际游玩二周目鬼杀难度（最高难度）后，我发现在扬长避短之下体验还行：不用怎么探索开放世界，主线任务和支线任务都是剧情全跳，直接不断重复赶路，打架，赶路，打架这个过程，专注体验战斗的爽感。&lt;/p&gt;
&lt;p&gt;但是鬼杀难度下敌人数值也确实高，每只怪都有在我出现失误就单杀我的可能。剑戟难度下的“一目将”这些精英怪都只能算是血厚点的小怪，鬼杀难度下就完全是血薄点的 boss 了。而 boss 就更不用说了，血条都厚了好几倍，打一遍的时间比剑戟难度几乎要翻倍。&lt;/p&gt;
&lt;p&gt;要想降低敌我双方数值差距就只能强化装备，但二周目不继承一周目的装备强化，要从头开始。那装备强化的素材从哪里来？除了任务给的和商店买的，就是路边宝箱开的。没错，还是要回到探索。而且整个游戏流程中强化素材是稍微溢出一点的，在不仔细探索的情况下很难有足够的素材把装备强化拉满。这就导致最后时我还得细致探索来找到足够的素材，导致后期的体验逊色了不少。&lt;/p&gt;
&lt;h2 id="总结"&gt;总结&lt;/h2&gt;
&lt;p&gt;《鬼武者 剑之道》有着战斗系统这块很长的长板，但在其他方面都只是普通至极的木板。从木桶效应来说这似乎就是平庸至极的作品。但游戏的体验不是木桶效应，每个玩家心中对游戏的不同方面都有不同的权重。我难以忘记无比爽快的帅气战斗，也难以忘记昏昏欲睡的探索体验。如果要用一句话来概括我的体验，那本作剧情有句话正好能扮演这个角色⸺“一切皆苦，但我乐在其中啊”。&lt;/p&gt;</description></item><item><title>2026-08 乐子大赏</title><link>https://fsdx.top/posts/2026-08/</link><pubDate>Thu, 10 Sep 2026 00:00:00 +0000</pubDate><guid>https://fsdx.top/posts/2026-08/</guid><description>&lt;h2 id="个人之内"&gt;个人之内&lt;/h2&gt;
&lt;h3 id="游戏"&gt;游戏&lt;/h3&gt;
&lt;p&gt;这个月玩完了《极乐迪斯科》，《细胞分裂 黑名单》和《闰跃之年》的 DLC 《三月》。&lt;a href="https://fsdx.top/posts/%E6%9E%81%E4%B9%90%E8%BF%AA%E6%96%AF%E7%A7%91/"&gt;《极乐迪斯科》&lt;/a&gt;可谓是世不二出的杰作，很难再有作品能给我留下如此独特的感觉了。&lt;a href="https://fsdx.top/posts/%E7%BB%86%E8%83%9E%E5%88%86%E8%A3%82-%E9%BB%91%E5%90%8D%E5%8D%95/"&gt;《黑名单》&lt;/a&gt;虽然是 13 年前的游戏，但仍展示着顶级的潜行类游戏设计。&lt;/p&gt;
&lt;p&gt;《闰跃之年》的 DLC《三月》想写的内容并没有很多，大概就这一段吧。虽然它没有引入新的知识锁，导致了没有了发现和解开知识锁的乐趣。但也正因为不需要考虑知识锁的引导和玩家没解开知识锁前的情况，可以以玩家知道所有知识的情况来设计地图和关卡，所以在关卡和地图的设计上相比本体而言更加出色。例如能反转重力的黄色状态，因为在本体中需要在最后才能发现的，所以反转重力相关的地图设计基本较少，主要在最后出现。而 DLC 中因为一开始就假定玩家已经发现这个状态，所以在大量的关卡和地图中都考虑了反转重力的情况，设计成了正常重力和反转重力都能走的双重地图，玩起来非常有意思。更别提 DLC 的体量比本体还大，可以说是非常优秀的 DLC 了。&lt;/p&gt;
&lt;h3 id="阅读"&gt;阅读&lt;/h3&gt;
&lt;p&gt;这个月终于读完了《福尔摩斯探案集》。福尔摩斯的大名相比不用再赘述，我童年时候就碎片地读过不少福尔摩斯的故事，直到现在才终于完整地读完了所有的福尔摩斯的小说。今天来看，不少故事仍然和我童年时认为的一样十分精彩，读来既有种说不出来的熟悉感，就像和小时候的自己一起，手不释卷地跟随着华生和福尔摩斯一起冒险。&lt;/p&gt;
&lt;p&gt;不过也有和小时候不一样的看法：我之前会觉得福尔摩斯小说就是经典的推理小说，但今天读来才发觉其实并不能称之为推理小说，更适合称为侦探冒险小说。内容中留给读者的推理内容很少，不少脚印、痕迹等线索都完全没告诉读者，只会在揭晓真相后才告诉读者，并没有像很多本格推理那样给出足够的信息，让读者能自己推理出真相。读起来的体验就像和华生一起，看着福尔摩斯神奇地解开一个个神秘的谜团，不用非常严谨地去思考，享受故事就行了。&lt;/p&gt;
&lt;h2 id="个人之外"&gt;个人之外&lt;/h2&gt;
&lt;p&gt;这个月个人之外的东西关注的比较少，即使是科隆游戏展的内容，给我留下深刻印象的也很少，所以这里也没什么内容了。&lt;/p&gt;</description></item><item><title>细胞分裂-黑名单</title><link>https://fsdx.top/posts/%E7%BB%86%E8%83%9E%E5%88%86%E8%A3%82-%E9%BB%91%E5%90%8D%E5%8D%95/</link><pubDate>Tue, 01 Sep 2026 00:00:00 +0000</pubDate><guid>https://fsdx.top/posts/%E7%BB%86%E8%83%9E%E5%88%86%E8%A3%82-%E9%BB%91%E5%90%8D%E5%8D%95/</guid><description>&lt;p&gt;《细胞分裂》系列可谓是大名鼎鼎的潜行类游戏系列，和《合金装备》、《杀手》等都是潜行类游戏中代表性的系列。而系列最新作《细胞分裂：黑名单》虽然是 13 年前的游戏，但它仍然有顶级的潜行类游戏设计。那什么是优秀的潜行类游戏设计？&lt;/p&gt;
&lt;p&gt;潜行类游戏其实很像一种动作解谜游戏，不像很多动作游戏战斗那样需要玩家按键的准度和精度等，更考验玩家利用知道敌人的位置和行为规律这个信息差的优势，找出正确的攻关策略。为了让这个解谜的过程有充分的可玩性，就必须要有足够的策略空间让玩家探索和尝试各种攻关的可能性。要做到这点潜行类游戏最重要的一是要有优秀的箱庭式地图设计，能够产生多种路线；二是有广阔的动作和交互的空间，像是多种物品都能和环境或敌人产生多种的互动。&lt;/p&gt;
&lt;p&gt;《细胞分裂：黑名单》在这方面做的是非常好的。许多关卡的箱庭地图设计都非常出色，一眼看下来就能发现两种以上的路线，而在探索地图的过程中也能发现不少暗道，从而产生更多的路线。此外主角“鱼叔”能带各种各样的小道具，像是声音制造器、无人机、烟雾弹等，能各种干扰敌人。由此形成了丰富的策略空间给玩家探索。不过可惜的是中后期有些关卡的水平稍显下降，略显无趣。&lt;/p&gt;
&lt;p&gt;除此之外，其实《黑名单》还提供了潜行之外的玩法。本作有“魅影”、“猎豹”和“突击”三种风格，“魅影”强调不杀敌潜入，打倒敌人也只是击晕；“猎豹”则强调杀敌潜入，悄无声息地干掉所有敌人；“突击”强调正面火力强攻，在火力战中干掉所有敌人。我最喜欢的玩法就是“完美魅影”，在不击倒敌人的情况下潜入。虽然这种玩法的难度最大，但正因为到处都是限制，所以解起来很有意思。&lt;/p&gt;
&lt;p&gt;但除开这些部分，《黑名单》仍有很多内容在提醒我这是一个 13 年前的游戏。游戏中的不少系统都显得老旧，比如存档点只有一个自动存档，会在通过某个场景后就自动存档。这导致不少时候我虽然成功通过某个场景，但因为某个原因没有“完美魅影”潜入后，我无法读档到通过这个场景前的存档，于是只能整个关卡重来。而且本作还很有“育碧特色”得有不少的 bug，不少时候敌人都会走着走着就突然原地抽搐。而且 steam 版本的《黑名单》在通关游戏的结尾动画中更是有黑屏 bug，看到这种只闻其声不见其人的时候真的让我绷不住。&lt;/p&gt;
&lt;p&gt;而其他的部分就没什么值得一提的，例如剧情就是普通的好莱坞商业大片般的剧情：特种兵组建特种团队对抗恐怖组织，拯救美国，最后就升华个团队和团结的主题，挺平庸的。美术也是顶级工业实力的水平，不过是 2013 年的顶级工业实力，今天来看就不算出彩了。&lt;/p&gt;
&lt;p&gt;现在回看《黑名单》，它仍然展示何为好玩的潜行类游戏，但它老旧的外表，和 13 年没有系列新作的事实也展示着众所周知的现状⸺潜行类游戏早已没有之前的辉煌。《细胞分裂》在 2013 年本作推出后就没有声音了；《合金装备》系列更是随着小岛秀夫和 KONAMI 闹翻，基本不可能再有后续的新作；只有《杀手》仍在 IOI 手下以整合版作品《杀手：暗杀世界》的形式保持着活跃，这次科隆展会中更是官宣了新的更新&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;。但《杀手》也基本不是推出新作，而是一个个关卡地来更新内容。这确实令人可惜，潜行类游戏一直是我非常喜欢的游戏类型，这种在解开后完全将敌人玩弄于鼓掌之间的快感对我是屡试不爽。但值得高兴的是，现在也有《耻辱》等新的潜行类游戏系列诞生，继续在新时代带来优秀的潜行游戏体验。&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;&lt;a href="https://store.steampowered.com/app/4911210/HITMAN_WOA__The_Herbalist_Pack"&gt;https://store.steampowered.com/app/4911210/HITMAN_WOA__The_Herbalist_Pack&lt;/a&gt;&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>极乐迪斯科</title><link>https://fsdx.top/posts/%E6%9E%81%E4%B9%90%E8%BF%AA%E6%96%AF%E7%A7%91/</link><pubDate>Tue, 25 Aug 2026 00:00:00 +0000</pubDate><guid>https://fsdx.top/posts/%E6%9E%81%E4%B9%90%E8%BF%AA%E6%96%AF%E7%A7%91/</guid><description>&lt;p&gt;《极乐迪斯科》，我早就听说过其大名。在 2019 年的 TGA 上荣获四个奖项，包括新晋独立游戏开发商奖、年度 RPG 奖，年度叙事奖和年度独立游戏奖。值得一说的是，2019 年的年度独立游戏提名阵容除了本作外可是有《baba is you》、《武士零》和《星际拓荒》等一众好评如潮的名作，这些作品每一款都是放在其他年份也能拿到年度独立游戏奖的作品。能在这样的名单中脱颖而出，说明这款游戏绝对是非同一般的作品。&lt;/p&gt;
&lt;h2 id="迷幻的美术展"&gt;迷幻的美术展&lt;/h2&gt;
&lt;p&gt;一进游戏的第一个主界面就让我眼前一亮⸺游戏的故事发生地马丁内斯的全景以印象派油画一般的风格呈现在我的面前。天空和云层有着粗犷的颜料堆叠感，像是涂满颜色的画笔一层层横扫留下的痕迹。色彩的选取更是大胆，单是天空的颜色就同时出现了钴蓝、青绿、橙黄、深紫。而在建筑、地面、天空的交界处没有明显的线条或锐利的边缘，而是晕染融合。而且这不是静态的画面，而是天空中堆叠的不同“层”会慢慢流动，色彩也会发生渐变。大胆且带有强烈情绪表达的配色、未经修饰的笔触、忽略线条的手法，都给我留下了深刻的印象。&lt;/p&gt;
&lt;p&gt;而在开始新游戏进入的初始流派选择界面，三种预定义的初始流派和自定义流派的立绘整齐地摆放在面前。这些立绘像一幅幅表现主义肖像画，但又各具特色，巧妙地体现流派的特点：“思想派”选取冷青、钴蓝等冷色调，将亮光直接照射在人物的头部，体现这个流派注重理性、逻辑、知识和分析；“感性派”选择以紫色为主的色调，人物轮廓和背景边缘柔和的同时又更碎片化，体现这个流派注重感性、心理和疯狂；“肉体派”则选择了红色等更加厚重的色彩，用几何形状的块面来描绘角色肉体，体现这个流派注重肉体和力量；而最后的自定义角色则像曝光过度的底片，以灰白和淡黄这些朴素的色彩为主，人物轮廓十分模糊且带有重影，和背景融为一体，体现的是一种等待玩家去填充的未完成感。&lt;/p&gt;
&lt;p&gt;而在点进人物创建后，技能界面中的技能图标则更大胆地接近野兽派的风格，几乎所有图标都看似人形，但细看就会发现这里没有正常的人类面容，而是面具、骷髅、变形头颅、抽象面孔的集合。色彩则按照属性划分：智力类技能用冷青、银灰；精神类技能用暗紫、靛蓝；体格类技能用血红；身手类技能用金黄。这些色彩选择也极具心理学意味，也告诉我们上述流派的色彩正是该流派主要技能的色彩。&lt;/p&gt;
&lt;p&gt;而正式进入游戏后，为了让玩家能看清和分辨游戏场景和角色，美术风格不再如此大胆和狂野，而是收敛许多。但笔触依然粗粝，轮廓依然有些抽象。纹理则有些脏兮兮的感觉，背景中不乏大面积环境色块，场景色彩多用废墟的灰和霓虹的艳，而在细节上有意保持近景粗粝、中景清晰、远景朦胧的层次感。好似在酒精或疲劳状态下的看到的世界。而伴随着这些场景的音乐大多为慢速绵长且旋律极简，一种慵懒中暗含悲伤的感情涌入我的内心。&lt;/p&gt;
&lt;p&gt;在融合了印象派和现代主义的美术和即兴的、迷失的、自我沉溺的音乐中，我好似亲身进入了这个曾经辉煌、现已腐朽的马丁内斯，体会着这里混乱、狂躁、迷幻的氛围。&lt;/p&gt;
&lt;h2 id="跑了一场剧情团"&gt;跑了一场剧情团&lt;/h2&gt;
&lt;p&gt;虽然《极乐迪斯科》并没有战斗系统，只有文字和剧情，主要玩法也就是四处探索，在对话选项中进行选择，看起来想一个文字冒险游戏，但其实它的底子里流淌着的就是狭义的角色扮演游戏 RPG 的血液。更严谨地说，是传统的美式 CRPG。&lt;/p&gt;
&lt;p&gt;这里给不太了解的读者具体解释一下。CRPG 是 Computer RPG，即电脑角色扮演游戏。虽然广义来讲，所有的电子游戏都可以认为是 CRPG，但因为这样讨论的话就没什么意义，所以通常语境下的 CRPG 是狭义的 CRPG。要讲解狭义的 CRPG，就不得不提和它相对的概念 TRPG。TRPG 是 Tabletop RPG，即桌面角色扮演游戏。其指的是一类开放性的桌游，每位玩家自己构筑并扮演角色，主持人负责构建世界、扮演NPC、裁定规则，并根据其他玩家的选择和骰子结果即兴地让故事发展下去，可以说是大家用骰子和想象力共同编一个故事的游戏，中文圈常称之为“跑团”。大名鼎鼎的龙与地下城 D&amp;amp;D 和克苏鲁的呼唤 COC 就是其中的代表。而 CRPG (此处和后文的 CRPG 都是狭义的 CRPG) 就是将 TRPG 的体验搬到电子游戏上，也就是“电子跑团”。&lt;/p&gt;
&lt;p&gt;CRPG 想比 JRPG 等其他 RPG 游戏最大的特色就是继承“跑团”的“掷骰子”⸺故事的发展走向除了由玩家的选择决定外，还有依靠各种或明里或暗里的概率性能力检定（明骰和暗骰）来决定，只有当掷出的骰子的数值高过某个特定要求数值时才能成功。举例来说，假如主角需要从某人手中拿到某个物品，而那个人不肯给主角，一般的 RPG 基本只有一种固定的走向，例如帮他完成某个任务获得、给他另一个物品交换、再次说服他给主角或者从他手中偷过来。好一点的 RPG 会把上述走向都做成选项给玩家选择，但玩家选择一个完成方式后故事是走向一个固定的分支，例如交换物品就是固定的交换物品分支。而好的 CRPG 会让这些完成方式需要能力检定，并根据结果让故事走向不同的分支。例如偷东西和说服需要灵巧和口才的能力检定。如果失败会激怒这个人物，从而走向不同的故事分支。这让不同构筑的玩家有不同的游戏体验，甚至是同一构筑的玩家也会因为概率而有不同的游戏体验。正是这种自由，多分支且不确定性的故事才让 CRPG 的玩家能创造自己的故事，让 CRPG 有独特的魅力。&lt;/p&gt;
&lt;p&gt;《极乐迪斯科》在这方面完全还原的 CRPG 的精髓，大部分重要事件都要“掷骰子”来检定。某些检定的成功与否直接决定你能否发现某些秘密。例如在和一群想在废弃的教堂开设“阳极音乐俱乐部”的年轻人的对话中，如果能通过某个关键检定，就能发现他们开设这个俱乐部背后的秘密。从而让主线故事这个本就扑朔迷离的杀人案件变得更加琢磨不清。诚然，主线案件背后的真相是固定的，不会因为你的选择不同，而让案件的凶手发生变化。但是这个发现真相的过程，每个玩家的体验都是截然不同的。而且本作内容分支非常丰富，不少检定有隐藏的修正机制：和正确的人对话，选了正确的选项，做了正确的事，都能给这些检定提供或加成或减成的修正，甚至能重启一些失败的检定。例如我在游玩时遇到了一个“坤诺”的检定，在前期失败后锁定了。而在后期再给他完成任务时选择了某个选项，结果竟然给我解锁了这个检定，真的非常惊喜。&lt;/p&gt;
&lt;p&gt;为了让每个玩家能有不同的概率，例如力量型的战士在智力检定上成功率一般较低，所以有属性和技能，以及其支撑起的角色构筑和流派。而概率也不能一成不变，要能随着故事的发展而变化，角色也要能随着游戏的进行而成长，例如力量型的战士也可以通过读书等方式提高智力检定的成功率，所以要有属性和技能的加点，以及其支撑的角色成长。《极乐迪斯科》有四大属性：智力、精神、体格和身手，每种属性有 6 个技能，分别对应 6 个特征，从而组成了共 24 个特征，囊括了做出某些事情，或者应对某些事件的大部分能力与品质。此外《极乐迪斯科》还有“思想阁”的系统，“思维阁”用来管理各种“思维”，“思维”根据是玩家在游戏中做出的行为来获得，可以通过花费游戏内一定时间来“内化”，从而获得该“思维”的加成。这些“思维”的加成往往十分强力，例如直接影响技能的加点上限、影响检定的难度等。例如有个“思维”可以让点击一个绿色交互点获得 10 分钱，而游戏中最不缺的就是绿色交互点，可以说“内化”了这个“思维”后我将再也没有缺过钱，不过游戏中后期钱的作用就不是很大了。&lt;/p&gt;
&lt;p&gt;而且上述的特征并不只是单纯的技能，更像是主角的不同人格。它们不仅会主动和主角对话，还会在主角和其他人的对话中突然插入发言，甚至不同的特性之间还会互相对话和互相争吵。这些人格的发言不只是反应了主角的内心想法，更是会真正地参与到玩家的游玩过程。它们有时能提供背景知识和补充世界观；有时能分析场景和其他人物，发现脚印等线索；有时甚至能提出任务，比如某个人格说想喝酒，于是就有了找瓶酒喝的任务。它们不仅能给出信息，更能给出新的选项，甚至协作玩家做出选项。但是，这些人格不只是玩家游玩过程的助手，还是敌人和阻碍。它们可能扰乱玩家的想法，提出过多的声音反而更容易让玩家误判，甚至提出虚假信息误导玩家，让角色陷入自我怀疑的疯癫之中，磨平前进的动力。而且，如果玩家在这个人格上的等级越高，其更有可能出现来扰乱玩家。例如“博学多闻”这个人格，会告诉玩家相当多的知识点，补充很多世界观和设定，但在主角阅读“伟大的无罪者”这本书时，它反而会提供很多错误的知识点，误导玩家的选择。这种双刃剑的技能设计反而让玩家在加点时有了更多需要顾虑的地方。当然，在我的实际游玩过程中，我的加点反而没有这些顾虑。我也会推荐其他玩家在一周目时在初始流派上倾向于智力和精神，这样能通过这些技能的信息对人物和世界观都有更多的了解。而在流程中的加点中倾向于“水桶”的加点⸺即注重均衡的加点，不至于有某个技能成为特别的短板，而在需要特定技能的检定时可以通过装备的加成来提高的成功率，从而能体验尽可能多的游戏内容。&lt;/p&gt;
&lt;p&gt;《极乐迪斯科》不只是保留了“掷骰子”的精髓，还有属性、特征和“思想阁”以及配套的装备系统和道具系统等构成的扎实的角色构筑和成长系统，可以说就是非常正统的 CRPG 游戏。而在“跑团”中，除了普通的“团”外，也有重战斗轻剧情的“战斗团”和重剧情轻战斗的“剧情团”。所以《极乐迪斯科》这样没有什么战斗，更强调剧情和叙事的 CRPG 的游玩可以说就是跑了一趟“剧情团”。&lt;/p&gt;
&lt;h2 id="世事一场大梦"&gt;世事一场大梦&lt;/h2&gt;
&lt;p&gt;聊到《极乐迪斯科》，自然不能不讲它的叙事和剧情。首先要说的是，本作的文本量非常之大，艺术性很强，主题也是非常深刻，讨论了很多不同派系的政治和哲学，且包含许多历史等隐喻。但我对这方面缺乏深入的了解，所以对于本作剧情要探讨的东西，我就不过多评价了。其次，本作虽然是个警探破案的游戏，看着有推理要素，但其实本作推理的内容非常少，很多线索的分析和结论的推断不需要玩家来做出，角色和上述的人格就能告诉玩家。所以，在游玩时并不需要花太多心思思考真相是什么，更重要的是体验故事的内容和文字的味道。&lt;/p&gt;
&lt;p&gt;相比更加具体的思考，本作的剧情带给我更多是一种梦幻的氛围感。好似做了一场迷幻又荒谬的梦，各种声音不断浮现又消失，各种怪诞的画面映入眼帘。本作叙事以对话为主，除了人物的对话和上述特征的对话，你甚至能和没有生命的物体对话，和尸体对话。这些对话的内容往往十分抽象，难以理解；但细细品味之下确实有着特别的内容。比如和尸体的对话中确实有对最终凶手的伏笔。说到伏笔，本作的不少伏笔可以说埋得好，例如楼顶的铃兰、雕像的弹孔、伊苏林迪竹节虫，到伏笔回收的那一刻真得有些头皮发麻的感觉。&lt;/p&gt;
&lt;p&gt;而《极乐迪斯科》的不少荒谬也给我提供了很多欢乐。比如一对在玩掷地球的老人朋友雷内和加斯顿，可以吧他们的球丢到海中，还可以骗走他们的三明治和勋章；还有在“阳极音乐娱乐部”中成功过某个检定后可以让主角疯狂的跳舞，如此激情的舞姿配合主角身上乱搭配的衣服十分好笑，甚至能让搭档金也一起跳，还能跳嗨到和瑞瓦肖城市之灵对话；还有在一处开船中能让金来开船，主角自己跨步站在船头，肩膀上抗着个手提音响，播放着“伤感FM”的音乐。这些荒谬的场景现在回想起仍会让我捧腹大笑。&lt;/p&gt;
&lt;p&gt;但《极乐迪斯科》真正让我赞不绝口的是其中有不少震撼人心的故事，且人物和情感的描写十分真切，让我隔着屏幕也能感受到他们的情感，和他们共情。这些故事都给我带来很大的感触，时至今日也难以忘怀。但讲述这些故事必然会有所剧透，我将他们放在下面一章中，不希望被剧透的读者请跳到&lt;a href="#%E6%A2%A6%E9%86%92%E6%97%B6%E5%88%86"&gt;后面的章节&lt;/a&gt;。&lt;/p&gt;
&lt;h3 id="该章节内容涉及剧透-谨慎阅读"&gt;该章节内容涉及剧透，谨慎阅读&lt;/h3&gt;
&lt;p&gt;刚才讲到的老人朋友雷内和加斯顿，不久前前我还在开开心心地搞他们的乐子，过了游戏时间的几天后，就能看到加斯顿独自一人失落地坐在椅子上，和他对话就能得知雷内去世了。突然的死讯真是让我吃了一惊，借此我也能听到加斯顿的真实想法：他和雷内之间即是爱着同一个女人的情敌关系，也是意识形态截然相反的人。虽然他们确实是相互依靠的。即使他们表面上相互憎恨，但在内心底正是对方的存在才支撑他们活下去。&lt;/p&gt;
&lt;p&gt;在“木板道的尸体”中，主角要告诉比莉她丈夫的死讯。打开家门我才发现她是第一天遇到的那个书店前的女工，我甚至选择抱过她，当时是处于一种纯粹的乐子，想看看选择抱她会发生什么，却收获了对方温暖的关怀。但是现在，只有冰冷的悲凉。金在进门之前跟我说过，作为警察我们应该直接告诉她死讯，但千万不要跟她说我能理解，我们无法感同身受。在告诉死讯前，比莉看着主角，不知道她丈夫是不是又犯了什么事，紧张而又不安。一切只是个单纯的意外，一个庞大世界里的细小声音，一个满身疮痍的家庭，一个饱受生活磨难的女工。得知死讯，她震惊，哀痛，不知道该做什么。我和主角一样，面对她的悲伤无能为力，最好的建议是让她等一天才让女儿回家，这样自己有一天的时间准备。出门之后，恰到好处地，游戏的美术色彩变得深沉暗淡，淅淅沥沥的雨水开始降下，一股淡淡却又触手可及的悲伤不知何时萦绕着我。&lt;/p&gt;
&lt;p&gt;现在回看，上面的情感都通过语言和细节的描写体现的很真切。而从比莉家出来后，暗淡的美术色彩和灰暗的雨天更是为整体情感和氛围的塑造填上神来之笔。此时主角和金的对话不仅是剧情上让警探们收拾心情，继续探案，也是给玩家一些时间来收拾心情，继续其他任务。&lt;/p&gt;
&lt;p&gt;新奇骰子商人，在谁开谁倒闭的诅咒商业街中，她选择做新奇骰子这个冷门的赛道，却存活下来。主角得出结论，认为这是因为她的位置恰好不在失败商业街。她拿出自己的纪念珠宝，讲述自己曾经失败的珠宝店的故事。“它也不仅仅是一家珠宝店。我一直以为这就是世界,你应该一次又一次地尝试,直到最终取得成功。”面对主角最后的回复，她回答：“是啊。”她凝视着窗“或许整个世界都被诅咒了?这是个多么危险的地方啊。从来没有什么是按照你希望的方式运作的。”这种淡淡的苍凉感，通过她的言语进入我的心中。但是最令我动容的是她最后的话“这就是大家喜欢角色扮演游戏的原因。你可以随心所欲地成为任何人。你可以一遍遍地尝试。不过即使是掷骰子，也有某种固有的暴力在里面。就好像你每次锻造骰子的时候,有些东西就会消失。另一种替代的结局，或者是一个完全不同的世界。”&lt;/p&gt;
&lt;p&gt;神秘生物学家的妻子莉娜，从游戏时间的第一天起就对主角十分温柔，善良和体贴，可以说是整个游戏中对主角最好的人。她的丈夫是狂热的神秘生物学家，专门寻找各种都市传说的神秘生物。因为莉娜声称自己幼时目击了伊苏林迪竹节虫⸺一种她丈夫寻觅已久的神秘生物。她丈夫主动找到她，欣喜地称她为“自己的神秘生物学女王”，开始了一起寻找竹节虫之旅。至于两人的爱情与婚姻，游戏里没有详说。但在帮助她找到她的丈夫后，主角才能真正发现她的内心的秘密：随着几十年的漫长寻找仍然无果，她不禁开始怀疑当初的目击记忆可能只是自己的虚构。而当“竹节虫是真实存在的”这个信念出现了动摇，她的心中自然浮现了各种疑问：她和丈夫之间的感情是真实的吗？她和丈夫这几十年的人生真的有意义吗？之后还要继续寻找竹节虫吗？或许因为我正好也感觉对自己过去经历的意义的怀疑和对未来人生不确定性的迷茫中，她的焦虑与不安也真切地刺痛了我。&lt;/p&gt;
&lt;p&gt;逃兵，在大革命中面对敌军几乎无法阻挡的进攻，选择了躲避。但在战友几乎死伤殆尽后，又选择坚守“游击”。孤守海岛 43 年，在无人知晓的秘道中走遍马丁内斯的所有角落，偷鸡摸狗地挣扎求生，还要因为城市对海岛的开发而被迫转移。过着如此孤独虚无的生活，他却从始至终不肯投降。对他而言，战争从未结束，但他的痛苦，幻灭和虚无却彰示着他早已结束的生命。他早就死了，在成为逃兵，背叛革命伙伴那晚，在梦想破灭，信仰崩塌那晚，他的精神就已经死亡了，只是他的肉体在人世间苟延残喘。雪花在孤岛上纷飞，边上是苍白的芦苇，近处是破败的碉堡，远处是腐朽的城市，他眼神空洞地盯着地面，蜷坐着，靠着一柄没有子弹的步枪的支撑。听着他的独白，苍凉、悲哀、心痛等复杂的感情涌入我的心中。突然之间，芦苇中出现了伊苏林迪竹节虫，近距离接触它，甚至与它精神对话。而且这个对话还有 meta 的感觉⸺感觉它在和“我”对话，和“我”这个玩家对话。那种惊喜、激动、震撼的感觉和前面悲伤的感情激烈地混合，使得我进入了一种难以描述的感觉，我不是脱离在游戏之外的冷静思考，而是全身心地体验游戏的内容，完全沉浸入心流中。那种惊为天人的经历只可意会不可言传。&lt;/p&gt;
&lt;p&gt;上面提到的只是冰山一角，《极乐迪斯科》中还有很多的故事也同样的震撼人心，现在提也记忆深刻。像是“审判”后的广场上，用鲜血和燃油所做的涂鸦被主角点燃，燃烧的文字刺入眼帘；和渔村的女人莉莉恩夜晚在地之角约会，两个受伤的心灵短暂的相互依靠，然后各走各路；和康米主义读书会的大学生们一起用火柴盒搭建第三国际纪念塔，目睹这个不可能的奇迹出现，然后失败崩塌；电话亭漫不经心地乱打电话，却突然想起一个电话号码，一打过去后才发现是自己的前女友的号码；在梦中与前女友再会，他们曾经如此深爱彼此，但现在感情已经结束，即使他如此爱着她，她也无法再爱上他；无论主角怎样挽回，爱情的火花已经不会再被点燃，只能让双方心中的伤痕更深更深。等等等等，这些故事不计其数，讲三天三夜也讲不完。&lt;/p&gt;
&lt;h2 id="梦醒时分"&gt;梦醒时分&lt;/h2&gt;
&lt;p&gt;梦总是要醒的。《极乐迪斯科》毫无疑问是我难以忘怀的美梦：大胆且迷幻的美术，扎实的 CRPG 体验，这些都是为了其叙事而服务。它的故事，让我体会到欢乐和悲哀，心灵的震撼和哲学的思考。但这并不代表《极乐迪斯科》对所有人而言对会是美梦。《极乐迪斯科》是一部有点电波系的作品，如果你和它对不上电波，那玩起来应该会索然无味。但如果像我一样能和它对上电波，那它绝对是不可多得的好作品。&lt;/p&gt;
&lt;p&gt;我从这场迷幻又荒谬的梦中醒来，知道我可能再也不会遇到这场梦，一股惆怅感萦绕入心。但是，谁知道我会不会遇到下一场同样精彩美好的美梦呢？我会带着这份期待，开启下一场游戏之旅。&lt;/p&gt;</description></item><item><title>九日</title><link>https://fsdx.top/posts/%E4%B9%9D%E6%97%A5/</link><pubDate>Wed, 12 Aug 2026 00:00:00 +0000</pubDate><guid>https://fsdx.top/posts/%E4%B9%9D%E6%97%A5/</guid><description>&lt;p&gt;《九日》在开头就给我留下了很深刻的印象：在古风淳朴的桃花村中，人们的原始巫祀信仰和周边科技感十足的建筑形成鲜明对比。随着祭祀活动的开始，在群众的俯首盲拜中，神秘的圆球取走一个个“被选中者”的头颅。主角打破圆球，救下其中一位人“轩轩”后，就进入了第一大关。这关是个神秘的地下基地，黑暗中若隐若现的科技感十足的物体和之前桃花村的原始形成了鲜明的对比。瞬间营造了一个神秘诡谲的氛围，立刻让我想一探究竟。&lt;/p&gt;
&lt;p&gt;随着我游玩的进行，我发现本作实际就是在类银的框架上加入了类似《只狼》的，强调精准防御的战斗系统。战斗系统在上述框架下并没什么突破性的创新，但也没做出什么失误。不少敌人设计得还行，在掌握节奏后打起来还挺爽，印象最好的就是 Boss “蚨蝶”。但是后期不少敌人都有后跳来躲你精防后的反击。特别是一个让我印象很差的敌人——某个粪怪剑士，疯狂的攻击欲望加多段攻击，没有精防到就是吃内伤吃到饱。如果精防了前两段快速连击，这两段后即可能是重复两连击能直接打你的反击，也可能是后跳后超远距离冲刺斩，而后者刚好能用后跳躲开你的反击。假使你都防住了这些，其疯狂的攻击欲望这会让你的反击窗口很小。真能做错有惩罚，做对没奖励。&lt;/p&gt;
&lt;p&gt;但是这还只是小问题，毕竟只是某些怪比较恶心。但本作的战斗系统最大的问题是判定框和视觉效果不太符合，有些攻击看起来不会打到我，但是仍然打到了。这个可以说是我从在游戏开头发现后就一直骂到了游戏结束。因为这样真的会让玩家的挫败感非常强，它不像难打的敌人那样，是可以通过练习来进步改善的，这种判定框不匹配的问题是玩家无法通过自己的行为改变的。这就给玩家的游戏体验带来了一个无妄之灾。对我来说，任何有动作元素的游戏中判定框不匹配都绝对是不可忍受的问题。&lt;/p&gt;
&lt;p&gt;而在战斗系统之外，本作在角色构筑上除了三个都可替换的特殊能力外，就是经典的格子饰品系统了。但是本作的前中期格子给得较少，而且饰品间差异度不大，导致饰品的构筑空间不算大。而且地图设计较差，很多地图都是直接的一本道，没有什么探索乐趣。&lt;/p&gt;
&lt;p&gt;那本作真的就除了一些设计优秀的敌人外就一无是处了吗，当然不是。本作最大的亮点就是深度融合中国古神话和科幻的“赛博道教”剧情。就以游戏名来说：本作的主角名叫“羿”，而“九日”就是指主角要击败的 Boss 都有“太阳”的职称——明显用了“后羿射日”的意象。不同于常见的贴皮古风，本作深度了融入神话和民俗学等传统文化，并且辅以美轮美奂的美术和音乐提供最顶级的呈现。而在剧情内核上本作也没有流于表面，而是选择了经典的生与死的立意和存在主义的讨论——一切从追求永生开始，在生死抉择中结束。&lt;/p&gt;
&lt;p&gt;除此之外，本作还有一个让我十分惊喜的地方——家园。（按照“黑魂”的说法，就是传火祭祀场）随着在探索之中收集特殊物品，并送给“轩轩，家园的内容会逐渐丰富。从最开始的冷冷清清，变为到处装饰着“轩轩”的画、手工制品的内容。每次从外面探索归来，就能发现家里有多了新东西，也能看到“轩轩”和其他 NPC 的交互和对话。到最后，看着充满了生机与活力的家园，我也产生了依依不舍的情感。&lt;/p&gt;
&lt;p&gt;最后总结，我觉得《九日》选择了“只狼加类银”这个特殊的赛道，虽然在判定框匹配、地图设计等部分做的不好，但在其余部分都有这类游戏中规中矩的表现，而且在剧情上通过融合中国古神话和科幻，讲述了一个十分优秀精彩的故事，做出了自己的特色。本作绝对足以堪称这个品类上首屈一指的作品。&lt;/p&gt;</description></item><item><title>塞尔达传说-时之笛</title><link>https://fsdx.top/posts/%E5%A1%9E%E5%B0%94%E8%BE%BE%E4%BC%A0%E8%AF%B4-%E6%97%B6%E4%B9%8B%E7%AC%9B/</link><pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate><guid>https://fsdx.top/posts/%E5%A1%9E%E5%B0%94%E8%BE%BE%E4%BC%A0%E8%AF%B4-%E6%97%B6%E4%B9%8B%E7%AC%9B/</guid><description>&lt;p&gt;《塞尔达传说 时之笛》，相信对游戏史有些了解的人都早就听过本作的大名。本作诞生于 1998 年，正值游戏的 3D 化浪潮：彼时 3D 游戏的技术基础日渐成熟，不少系列都开始推出 3D 新作，寻求 3D 化转型。但是，当时业界的 3D 游戏开发经验严重匮乏，产出的不少作品都是质量低下之作。不少系列也因为糟糕的 3D 化转型而走向衰落。大名鼎鼎的“恶魔城”系列正是其中之一。&lt;/p&gt;
&lt;p&gt;而《塞尔达传说 时之笛》的推出，可谓是和《超级马里奥 64》一起教会业界如何制作 3D 游戏。《时之笛》引入了“锁定”系统（“锁定”或许不是《时之笛》首创，但应该是它发扬光大），成为了 3D 动作游戏中在和敌人战斗时视角调度问题的最佳解决方案。时至今日，几乎所有的 3D 动作游戏都会有“锁定”系统。可见其影响力之深远。&lt;/p&gt;
&lt;p&gt;上述内容都是从游戏发展史的角度讨论《时之笛》。如果要讨论《时之笛》的历史地位，市面上已经有了无数的溢美之词，无需我再过多重复。但是，对现在的玩家，玩《时之笛》只是为了体验游戏发展史的进程吗？今天，我重温《时之笛》，只想思考一个问题⸺如果刨去历史地位，只从当今的视角考虑游戏质量，《时之笛》还是优异的作品吗？&lt;/p&gt;
&lt;p&gt;即使从现在的视角来看，《时之笛》的游戏质量也是非常高。本作有约9个迷宫，除了开头的新手迷宫外，其他迷宫探索起来都非常有意思。更有数不胜数的大小谜题供你解答。而幼年和成年两个不同时间的存在，让同样的地图结构可以在不同的时间里有截然不同的体验。而且也有跨时空谜题的存在，比如“魔豆”就需要在幼年时种下，成年时才能利用“魔豆”长出的植物。质量极高的迷宫、数量众多的谜题、意想不到的交互，正是这些大大小小的乐趣点的堆积，才让《塞尔达传说》系列能使得玩家在探索时不断地有所发现，收获奖励，从而给玩家带来源源不断的惊喜和乐趣。&lt;/p&gt;
&lt;p&gt;当然，这部作品也并非毫无缺点。《时之笛》最大的问题就是地图中间的“海拉鲁平原”太空了。作为四通八达，连接不同区域的交通要道，玩家需要经常在这里跑来跑去。但这里有意思的内容太少了，显得跑图的过程很无聊。此外，最终迷宫的设计我觉得有两点不合理之处：其一是用“光箭”射“核心”缺少提示和指引，我在“核心”处尝试很多交互都没用，最后穷举出“光箭”时让我非常无语；其二是“暗影区域第一个房间”似乎是必须要隐藏物品“火之箭”才能通过（我尝试了很久也没有发现不用火之箭通过的方法），这种主线流程依赖非主线的隐藏物品的设计我觉得并不合理。&lt;/p&gt;
&lt;p&gt;现在回答开始的问题，我觉得答案是肯定的。即使刨去《时之笛》的历史地位，单纯站在现在的角度来看游戏质量，它仍是毫无疑问的杰作，仍然值得我的游玩和回顾。&lt;/p&gt;</description></item><item><title>2026-07 乐子大赏</title><link>https://fsdx.top/posts/2026-07/</link><pubDate>Sat, 08 Aug 2026 00:00:00 +0000</pubDate><guid>https://fsdx.top/posts/2026-07/</guid><description>&lt;h2 id="个人之内"&gt;个人之内&lt;/h2&gt;
&lt;h3 id="游戏"&gt;游戏&lt;/h3&gt;
&lt;p&gt;从这期乐子大赏开始，我想对“游戏”板块做出一些改变。首先是每个游戏的内容分布。对于不少游戏，我想写的内容不算少，但是把这些都放在乐子大赏中会显得太过拥挤。实际上，早在前几期的乐子大赏我就对“游戏板块”的内容进行删减，每个游戏都只写了精简版的感想。从现在这期开始，我想让每个游戏的感想都独立写成一篇文章，这个板块就简单讲讲，然后贴上对应文章的链接就行了。&lt;/p&gt;
&lt;p&gt;其次是游戏文章的副标题。之前的游戏的文章我都写了副标题，但现在我觉得没必要加副标题。这一方面是因为我写的不少内容都比较零散，一个副标题难以概括核心内容；另一方面是加了副标题后文章看起来有种游戏评测的感觉，而我很不想让我的游戏文章被认为是游戏评测。但是我目前还是留下了之前的游戏文章的副标题，只把《黄金太阳》的副标题删掉了（这也是我觉得起的最不好的副标题），不过后面的游戏文章应该都会是统一的没有副标题。&lt;/p&gt;
&lt;p&gt;现在回到这个月玩过的游戏。本月我玩完了《塞尔达传说 时之笛》和《九日》。&lt;a href="https://fsdx.top/posts/%E5%A1%9E%E5%B0%94%E8%BE%BE%E4%BC%A0%E8%AF%B4-%E6%97%B6%E4%B9%8B%E7%AC%9B/"&gt;《时之笛》&lt;/a&gt;即使刨去它的历史地位，单纯站在当下的角度来看游戏质量，它仍是毫无疑问的杰作，仍然值得我的游玩和回顾。而&lt;a href="https://fsdx.top/posts/%E4%B9%9D%E6%97%A5/"&gt;《九日》&lt;/a&gt;作为“只狼加类银”这个很少见的品类，虽然有做得不好的地方，但在剧情上给我留下很深的印象。&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h3 id="阅读"&gt;阅读&lt;/h3&gt;
&lt;p&gt;本月看完了《苍穹一粟》。这本书讲述的是地球发生的故事。在本书中，整个银河都已经在银河帝国的统治之下，但地球却发展出了自己的独特文化且在银河帝国中保持相对独立。地球的当地社会文化就像一个警察国家：地球由古人教团领导，帝国只有名义上的统治权。所有地球人都必须服从于古人教团。到处都有古人教团的秘密警察在严密监视群众，他们收集周围人的情报，上报给古人教团。古人教团记录了所有人的私人信息，个人经历等情报；而对于不利于古人教团的信息，则会遭到秘密的处置。在生产上地球施行集体生产，每个农民都有自己的配额，每个人都要为集体服务。&lt;/p&gt;
&lt;p&gt;此外，地球人还有“六十大限”的传统：地球的放射性环境导致其上能养育的人口相当有限，而地球人又被其他星球人排挤，无法移居，因此地球人在活到六十岁后就要被古人教团带走进行安乐死。躲避“六十大限”不仅在法律上是构成犯罪，在道德上也会被其他人所鄙视。而且，古人教团每十年会举行人口普查，来查出所有妄想逃避“六十大限”的人。&lt;/p&gt;
&lt;p&gt;故事的大致情节就是意外穿越到未来，接受了突触放大器手术从而获得心灵感应能力的施瓦茨，和考古学家贝尔·艾伐丹、科学家谢克特父女一起阻止“古人教团”策划的叛乱计划。双方围绕突触放大器，细菌武器等技术展开对抗和博弈的剧情跌宕起伏，伏笔和对应的回收恰到好处。&lt;/p&gt;
&lt;p&gt;本作还是保持了阿西莫夫小说的一贯水准，但说实话，我觉得相比他的其他作品，本作并没有特别突出，让人印象深刻的地方。&lt;/p&gt;
&lt;h3 id="考驾照"&gt;考驾照&lt;/h3&gt;
&lt;p&gt;这个月我终于考完科三和科四，拿到了驾照，结束了快一年的考驾照长跑。其实本该一个暑假就能搞定，但因为我的偷懒和不想立刻拿到驾照，我耽误了不少练习的时间，所以一直拖到一年之后。&lt;/p&gt;
&lt;p&gt;这次练习和考科三中我有一个很有趣的观察⸺我发现了一个驾考考场其实能养出不少产业。为了让科三的实地路考即靠近考场，又交通流量小，驾考考场大多设置在郊区。但又因为不少驾校都会带学生到考场附近的考试路段进行模拟练习，所以这里实际上也有不小的交通流量，只是主要由驾校车和考场车组成。既然很多驾校会带学生来考场进行练习，那他们肯定买水之类的东西吧，就有了便利店和地摊。他们肯定要吃饭吧，就有了餐饮&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;。那如果有些离考场远的学生想在考试前一天先来到考场周围住宿呢，就有了住宿。考完试的学生要回家呢，就有了网约车和出租车。简单的一个驾考考场和驾校行业，就能支撑餐饮、住宿、便利店和地摊、网约车和出租车等等产业。这在我来到考场前是完全想不到的。&lt;/p&gt;
&lt;h3 id="修改博客"&gt;修改博客&lt;/h3&gt;
&lt;p&gt;这个月我逐渐萌生了大改我的 blog 网站的想法。最开始是我不想让我陷入无止尽自定义网站的 rabbit hole，所以就用 hugo 加一个看起来不错的主题快速搭起了这个 blog 网站，让自己首先能专注于写出内容，而非“百天晒网，不去捕鱼”。但随着我写出了十多篇的文章，我开始对现在的网站有些不满，因此想进行改动。&lt;/p&gt;
&lt;p&gt;首先是 blog 网址的域名。现在的网址有 blog 的子域名，后面我想去掉这个子域名，直接用顶级域名。但这项会在这篇文章发布后至少一周之后才进行修改。其次是 blog 的外观。我对 hugo 框架的印象不错，但对现在的主题有些不满，比如我不喜欢它目录的样式。但现有主题的框架让我的修改束手束脚，所以我想自己自定义 blog 的布局。不过这会是不小的工作量，我也不知道什么时候能完成。&lt;/p&gt;
&lt;h2 id="个人之外"&gt;个人之外&lt;/h2&gt;
&lt;h3 id="光盘消亡"&gt;光盘消亡&lt;/h3&gt;
&lt;p&gt;7月1日，索尼宣布将于 2028 年 1 月起停止 PlayStation 平台所有新游戏的实体光盘生产&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;。这一则消息迅速传遍并震惊了整个单机游戏圈。对于单机游戏，数字版本是远比光盘等实体版本更符合索尼等游戏厂商的利益的：其一是实体版游戏催生了玩家间交易游戏的二级市场，但这个二级市场却和厂商本身没有任何的利益关联，而数字版游戏就能让厂商没有这方面的困扰，能将这个二级市场完全收入囊中；其二是数字版游戏能让索尼等游戏平台和厂商完全掌握游戏的销售，不需要像实体版游戏那样和线下零售商竞争，让公司对游戏价格拥有更大的控制权；最后是在各种财报、分析报告等数据上，数字版游戏早已成为游戏销售额的大头，而实体版游戏因为其制造、物流、仓储、零售分成等各个环节的成本，其利润率自然是远不如数字版游戏，那让实体版游戏的销售额全部转移到数字版游戏上自然能最大化利润。&lt;/p&gt;
&lt;p&gt;实际上数字游戏兴盛，实体游戏式微，这早就是是游戏圈内乃至所有玩家心照不宣的共识。很多人都意识到厂商确实会逐渐地取消实体版游戏，但是，所有人都没想到索尼会这么迅速与坚决地宣布取消光盘。而且，取消实体游戏对游戏玩家来说是“百害而无一利”的做法。无论是实体游戏的仪式感和收藏价值，还是二级市场中玩家能以更低价格买到游戏和玩完后出售游戏的“回血”，都降低了玩家的游玩成本。所以这一做法不出意料地点燃了玩家的怒火⸺这条推文下面充满了玩家们滔天的负面评论，也有人举行了签名请愿恢复实体光盘的活动。这会是索尼前所未有的负面舆论危机，但索尼不可能没料到这些，他们也坚定的表示不会撤销这一决定。&lt;/p&gt;
&lt;p&gt;光盘的消亡也让一个永恒的话题再一次称为讨论焦点⸺游戏的所有权问题。在电子版游戏中，最具代表性的电子游戏销售平台 Steam 都规定了购买了游戏的用户只拥有该游戏的使用权而非所有权。即使是实体版游戏，现在的不少实体游戏都需要联网认证，无法在完全离线的情况下游玩。而实体版游戏的丧钟，则表示玩家们不会再有光盘、卡带等物品能保存所有游玩需要的数据，那些能完全离线的实体游戏也不会在存在。即使是 GOG 这些让玩家能永久拥有游戏的平台，玩家们也要自己进行数字备份。我们在游戏中拥有的虚拟财产、度过的游玩时光、投入的无数心血、经历的难忘回忆，都可能随着游戏服务器的无法访问而永远消失。&lt;/p&gt;
&lt;p&gt;对我来说，我并没有太多愤怒的情感。毕竟我的游戏生涯是从电子版游戏开始，我并没有实体版游戏的经历，没有体会过实体版游戏会给我带来的兴奋和体验。我最大的感觉是遗憾，遗憾于这场游戏公司利益凌驾于玩家们的选择和权益之上的胜利，遗憾于玩家可能会永远失去游戏的所有权，遗憾于我可能永远体验不到实体版游戏的仪式感和收集收藏游戏的兴奋和愉悦，遗憾于一个时代就这么离去。&lt;/p&gt;
&lt;p&gt;最后，我想引用小岛秀夫 2021 年的一篇推文来作为结语。&lt;sup id="fnref:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt;（在索尼公布这则消息后，小岛秀夫也转发了这篇推文）&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Eventually, even digital data will no longer be owned by individuals on their own initiative. Whenever there is a major change or accident in the world, in a country, in a government, in an idea, in a trend, access to it may suddenly be cut off. We will not be able to freely access the movies, books, and music that we have loved. I would be a have-not. That&amp;rsquo;s what I&amp;rsquo;m afraid of. This is not greed.&lt;/p&gt;
&lt;p&gt;最终，即使是数字数据，个人也将不再自主拥有。每当世界、国家、政府、思想或趋势发生重大变化或事故时，对这些数据的访问可能就会突然被切断。我们将无法自由地观看那些我们喜爱的电影、阅读那些我们喜爱的书籍、聆听那些我们喜爱的音乐。我会变成一无所有的人。这就是我害怕的。这并非贪婪。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="街霸6-ewc"&gt;街霸6 EWC&lt;/h3&gt;
&lt;p&gt;在 7 月末，我观看了今年的街霸6 EWC 比赛。这届 EWC 可谓是爆冷频频，FUUDO，上届冠军小孩，上届亚军 blaz 全都一场没赢就被淘汰，xian 师傅战胜 leshar 等。也有很多让我记忆犹新的场面，比如东大 vs PUNK 再现街霸5 EVO 的反派 vs 反派等。最后也是由新晋“智利小孩” craime 拿下冠军。整个比赛都是非常精彩好看。&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;等我写完《时之笛》和《九日》的文章后我会在这里补上这两篇的链接&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;有些饭店甚至会和驾校合作：教练把学生带到饭店后，教练免费吃饭，饭店主要赚学生的钱&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;&lt;a href="https://blog.playstation.com/2026/07/01/physical-disc-production-ending-in-january-2028-for-new-games-releasing-on-playstation-consoles/"&gt;https://blog.playstation.com/2026/07/01/physical-disc-production-ending-in-january-2028-for-new-games-releasing-on-playstation-consoles/&lt;/a&gt;&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:4"&gt;
&lt;p&gt;&lt;a href="https://x.com/HIDEO_KOJIMA_EN/status/1423414153478168576"&gt;https://x.com/HIDEO_KOJIMA_EN/status/1423414153478168576&lt;/a&gt;&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>2026-06 乐子大赏</title><link>https://fsdx.top/posts/2026-06/</link><pubDate>Thu, 02 Jul 2026 00:00:00 +0000</pubDate><guid>https://fsdx.top/posts/2026-06/</guid><description>&lt;h2 id="个人之内"&gt;个人之内&lt;/h2&gt;
&lt;p&gt;这个月末正逢考试周，比较多的心思都放在复习和备考上，因此在“个人之内”的部分能聊的东西不算多。&lt;/p&gt;
&lt;h3 id="游戏"&gt;游戏&lt;/h3&gt;
&lt;p&gt;本月只打完了《蝙蝠侠 阿卡姆骑士》，可以说这一作是我玩过最好的漫改游戏。虽然是清单式开放世界，但考虑到本作推出的时代，清单式开放世界就是版本答案也是可以理解的。而且本作在叙事方式上亮点不少，基于连击的“流畅”战斗系统更是十分有趣。因此本作在清单式开放世界作品仍是不错的作品。&lt;/p&gt;
&lt;h3 id="阅读"&gt;阅读&lt;/h3&gt;
&lt;p&gt;本月看完了《星空暗流》。本书讲述的是一个太空分析员的故事。他发现会毁灭整个“弗罗伦纳”星球的危机，却受到某人的心灵改造而失忆。随着他的记忆逐渐恢复，多方势力围绕他展开争夺：来自“萨克星球”，要维护自己在“弗罗伦纳”统治的大亨；想要统治“萨克”和“弗罗伦纳”的“川陀”势力；想终结“萨克”对“弗罗伦纳”的统治，志于实现“弗罗伦纳”独立的镇长。这三股势力围绕这个太空分析员和他潜在的记忆展开争夺。&lt;/p&gt;
&lt;p&gt;本作的故事最精彩的地方在于这些多方势力间的博弈。在这种多视角叙事中，反转与再反转，互相叠千层饼的同时也有太空分析员等人自己的主观能动性创造的意外破坏这些势力的计划，创造更多的看点。而且内容的布局也很恰当，该阐述计划，揭晓伏笔时老实地讲，该布置反转和意外的钩子时巧妙布置。很好地彰显了阿西莫夫老到的笔力。&lt;/p&gt;
&lt;p&gt;在精彩的剧情之外，阿西莫夫还描绘了一个非常残酷的社会：整个“弗罗伦纳”社会分为两层，居住在下层的简陋建筑的是“弗罗伦纳人”，他们主要工作就是工人；而居住于上层的奢华而俗气的建筑的就是“萨克人”，他们享受着下层工人为他们带来的财富，被称为“大亨”。&lt;/p&gt;
&lt;p&gt;“大亨”们享受着医院、图书馆等完善的公共设施，却放任下层的医院等基础设施破破烂烂，人手不足。还雇佣着雇佣兵作为“巡警”在下层“弗罗伦纳人”中暴力维护自己统治。“大亨”们对“弗罗伦纳”有着赤裸裸的压榨和歧视，“弗罗伦纳人”生来要为“大亨”无偿服务，见到“大亨”要鞠躬，见到“大亨”的夫人要避让。几乎就是“大亨”的公共奴隶！&lt;/p&gt;
&lt;p&gt;更可怕的是，“大亨”还在思想和生物学上控制“弗罗伦纳人”。在教育上洗脑他们，给他们灌输“大亨”是保佑“弗罗伦纳人”的福祉的观念。实行优生学正常，将优秀的“弗罗伦纳人”担任基层管理者“镇长”并禁止他们生育，来让人才的基因从“弗罗伦纳”种群中流失。&lt;/p&gt;
&lt;p&gt;有一说一，考虑到阿西莫夫的美国背景，这些描述很难不让我联想到上世纪美国对少数族裔的歧视和优生学运动。&lt;/p&gt;
&lt;h2 id="个人之外"&gt;个人之外&lt;/h2&gt;
&lt;p&gt;看了夏日游戏节、任天堂直面会等不少的游戏发布会。为了避开 GTA 6,不少游戏都在 9 月末和 10 月初发布。单单是 9 月 24 号和 25 号这两天就有《鬼武者&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;》、《控制》、《寂静岭》这些作品。还有《火焰纹章万紫千红》和《空之轨迹2》同日发售。可称是“最强游戏之月”了。我关注的不少游戏自媒体已经对这些月份的拥挤排期苦不堪言了。&lt;/p&gt;
&lt;p&gt;而在 ATLUS 这边，它确定了《女神异闻录4R》的发售日期，还公布了《女神异闻录6》。&lt;/p&gt;
&lt;p&gt;《女神异闻录4R》的新预告片中人物建模还是有点难绷，立绘也怪怪的。而且看起来迷宫仍然是随机迷宫，不过战斗好像是既有《女神异闻录5》的“换手”，也有《女神异闻录3R》的“神通法”。总体而言是《女神异闻录3R》规格的重置，倒是符合我的预期。&lt;/p&gt;
&lt;p&gt;而对于《女神异闻录6》，虽然之前就有了《女神异闻录6》的泄露，但这个预告片就没什么东西。《女神异闻录4R》的第一个预告片好歹还有“神秘跑步男”呢。这可堪称是《上古卷轴6》级别的预告片。&lt;/p&gt;
&lt;p&gt;最后要聊的是美国 EVO，比赛很精彩，真没想到决赛会是布兰卡内战。猪皇虽然先用将军被重松 Reset 成功，但之后换上布兰卡也是成功3:0重松，再次证明了自己世一布兰卡的地位和自己在美国 EVO 的“统治力”。&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;7月2号更新:《鬼武者》反向跳票到9月4号发售。&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>黄金太阳</title><link>https://fsdx.top/posts/%E9%BB%84%E9%87%91%E5%A4%AA%E9%98%B3/</link><pubDate>Sat, 20 Jun 2026 00:00:00 +0000</pubDate><guid>https://fsdx.top/posts/%E9%BB%84%E9%87%91%E5%A4%AA%E9%98%B3/</guid><description>&lt;p&gt;《黄金太阳》是 GBA 上的非常经典 JPRG 系列了。我在以前听说过该系列后就立刻在 GBA 模拟器上游玩了《黄金太阳1 失落的时代》。《黄金太阳2 开启的封印》和《黄金太阳1》其实可以算作一部作品，剧情上就是紧接在《黄金太阳1》之后，游戏设计也是《黄金太阳1》的全面升级版，并且支持从《黄金太阳1》继承存档。但因为当时在模拟器上不好搞《黄金太阳1》的存档密码，所以我把《黄金太阳2》搁置了很久，一直想抽空搞定存档密码的问题后再玩。但在最近我终于决定妥协，从网上找到了一个《黄金太阳1》的完美存档的密码来继承，终于玩起这款心心念念很久的续作。&lt;/p&gt;
&lt;h2 id="黄金太阳的故事"&gt;黄金太阳的故事&lt;/h2&gt;
&lt;p&gt;《黄金太阳》的故事发生在一个地平论的世界中。海洋的水源源不断地流入虚空之中，这些流入虚空的瀑布被称为“盖亚瀑布”。大陆的分布明显参考的现实地球的大陆分布，能看出亚欧大陆、非洲大陆等的形状。&lt;/p&gt;
&lt;p&gt;类似于古希腊的四种基本元素，这个世界都由四大基本元素组成：代表土地和植物的 Venus、代表火和热的 Mars、代表空气和电的 Jupiter 和代表水和寒冷的 Mercury (我也不知道为什么要用太阳系的行星来命名元素)。此外，还有黑暗元素和光明元素，这两者构成了一种“阴阳协调”。&lt;/p&gt;
&lt;p&gt;这个世界中存在直接操纵元素的能力——“精神力”，类似与其他世界观中的“魔法”，游戏里实际表现就是各种技能。世界中的大多数人都不知道“精神力”的存在，单单是能感知到“精神力”的就是少数人，而能使用“精神力”的人更是少中又少。&lt;/p&gt;
&lt;p&gt;然而，在古老的时代，那时的世界与当今截然不同：各地都存在着繁荣的文明，整个世界无比兴盛。这样的盛况来自于名叫“炼金术”的力量。“炼金术”虽然类似“精神力”，但其更加强大，可以同时操作并组合多种元素的力量，能将铅转化为纯金，甚至可以阻止死亡。各个文明通过“炼金术”的力量快速地发展，并取得了很高的成就。&lt;/p&gt;
&lt;p&gt;众所周知，在幻想世界观中如果存在如此强大的力量，那它就必然被滥用。“炼金术”也是如此，对无尽财富的渴望、为对永生的追求、对支配一切生命的野心和征服的渴望，无穷无尽的欲望驱使着各个文明滥用炼金术的力量，组建军队，互相征战。世界成为了巨大的战场，已经走到末日的边缘。最终，少数心存正义、智慧与勇气之人成功阻止了这场灾难。他们将炼金术的力量进行封印：用“元素灯塔”和“元素之星”封存各个元素的力量，并将“元素之星”封入阿尔法山的索尔神殿中。最后将“炼金术”整个概念进行封锁，远离公众的认知。自此，“炼金术”离开了历史的舞台，只有少数人和深耕历史的学者知道“炼金术”的秘密。&lt;/p&gt;
&lt;p&gt;但是，正如大多数幻想世界观中的一样，有封印就必然有解除封印的方法：只要把元素之星投入对应的元素灯塔后，就能点燃该灯塔，释放该元素的力量。而在所有灯塔被点亮后，“炼金术”的封印将被解开，释放出类似太阳的力量，这就是“黄金太阳”的名字来源。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;警告&lt;/strong&gt;: 以下内容会涉及大量剧透，不想看的读者可&lt;a href="#%E5%A4%A7%E4%B8%96%E7%95%8C%E5%92%8C%E8%BF%B7%E5%AE%AB"&gt;跳转至下一章节&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;《黄金太阳1》故事的主角——罗宾出生在阿尔法山附近的一个村庄。村民因为长期居住在神殿附近，所以都掌握了不同程度的“精神力”。但村里禁止村民向外人展示“精神力”，也不允许村民随意进入神殿，因此他们从未发现神殿真正的秘密。&lt;/p&gt;
&lt;p&gt;但好景不长，一群来自来自世界极北地区的 Mars 元素“精神力”掌握者，在他们的领袖萨帝罗斯和梅娜蒂的带领下，秘密入侵神殿，企图窃取“元素之星”。但他们触发了神殿的防御机制，不仅使他们无功而返，还引发一场猛烈的暴风雨以及各种伴生灾害。主角的村庄被毁，罗宾的父亲、罗宾的青梅加斯敏的父母和哥哥共四人被山洪冲走，尸体至今未被发现。&lt;/p&gt;
&lt;p&gt;三年后，罗宾、加斯敏和罗宾的好友杰拉尔德和研究“炼金术”的历史学者斯库拉塔一起进入神殿。他们成功通过神殿的防御机制，并发现了“元素之星”。但尾随而来的萨帝罗斯和梅娜蒂劫持了杰斯敏和斯库拉塔，要求用“元素之星”交换人质。更令人震惊的是，加西亚竟然出现并效忠于萨帝罗斯。在交换3颗“元素之星”后，火山突然爆发，守护神“贤者”现身。萨帝罗斯一行人只能放弃剩下的“Mars 之星”，带着杰斯敏和斯库拉塔离开。&lt;/p&gt;
&lt;p&gt;被“贤者”所救的罗宾和杰拉尔德，在“贤者”的指引下踏上追讨“元素之星”、阻止“元素灯塔”被点燃和解救人质的征途。《黄金太阳1》的故事由此开始。&lt;/p&gt;
&lt;p&gt;而在《黄金太阳1》的最后，罗宾一行人在“Venus 灯塔”的顶端追上萨帝罗斯和梅娜蒂。虽然罗宾一行人成功击败萨帝罗斯和梅娜蒂，但没来得及阻止“Venus 之星”被投进了灯塔，也没能找到杰斯敏等人。所以他们只能继续他们的旅程。&lt;/p&gt;
&lt;p&gt;而在《黄金太阳2》中，这是从加西亚视角出发，去点燃剩下的灯塔。因此玩家们也知道了加西亚为什么效忠要萨帝罗斯：正如三年前加西亚被他们所救一样，他们还救下了剩下三人。并以此为威胁要求加西亚协助他们点燃灯塔。而在加西亚的征途中，玩家们也发现了又一个点燃灯塔的理由：世界因为“炼金术”的封印而衰退，虚空不停地吞噬着这个世界，海洋与大陆的面积都在缓慢减小，只有解除“炼金术”才能拯救世界。萨帝罗斯一行人也是为了避免即被极北地区的家乡被虚空吞噬而要解除封印。&lt;/p&gt;
&lt;p&gt;在点燃“Jupiter 灯塔”后，加西亚一行人和罗宾一行人齐聚一堂，在澄清事实，消除误解之后，大家一起合作，朝着最后目标，极北地区的“Mars 灯塔”前进。这个冲突的结束我觉得太简短了，罗宾一行人在得知点燃灯塔才能拯救世界后就直接加入加西亚了。整个冲突结束的甚至让我感觉有些突然，没想到这么快就结束了。当然这或许也不能算是一个问题。&lt;/p&gt;
&lt;p&gt;在最后，他们来到“Mars 灯塔”顶部，发现等待他们的竟然是“贤者”。为检验主角们在炼金术被释放后能否正确使用它，“贤者”发动最终试炼：召唤出强大的三头龙怪物与主角们战斗。经过一番苦战取得胜利后，众人发现三头龙的真身就是罗宾父亲和加西亚、杰斯敏的父母。所幸“Mars 灯塔”点燃，“炼金术”被解除封印后，释放出的“黄金太阳”的巨大能量使三人复活，大家重返故乡，与久违的亲人见面。&lt;/p&gt;
&lt;p&gt;整体故事也是经典的 JRPG 的发展，最后也是皆大欢喜的结局，也算是一个不错的故事。&lt;/p&gt;
&lt;h2 id="大世界和迷宫"&gt;大世界和迷宫&lt;/h2&gt;
&lt;p&gt;在游戏设计上，本作和当时的多个 JPRG 一样，都是大世界+迷宫的方式。大世界采用的是人物建模直接在大地图行动加随机遇敌的表现形式，探索的内容太少了。不少像是森林、半岛之类“特殊”地形我以为有东西，但走过去才发现什么都没有。相比《黄金太阳1》只能在陆地上探索，《黄金太阳2》在中期会获得船，可以在海上探索了。这带来了一个好消息和一个坏消息。好消息是大海上如果发现岛屿等是必然有东西的，坏消息是除了大陆和岛屿的内容，海洋上什么东西都没有。更别提世界地图能直接看到岛屿的分布，让海洋上的航行毫无探索感。整个航行流程就是打开地图，看到那里有个岛，决定要去后就可以一遍刷刷手机一遍一路开过去了。&lt;/p&gt;
&lt;p&gt;迷宫的设计就有意思多了。首先要先讲“精神力”，即各种技能。除了服务于战斗的“精神力”技能外，还有一些“精神力”技能是服务于探索交互的。比如“读心”，就可以读 NPC 的内心思想，从而发现一些“秘密”；还有“搬运”，可以移动巨大的物体等。在本作的迷宫中，很多的机关都要通过“精神力”来解决，这使得本作的迷宫充满了各种解谜的要素。而且不少谜题并不是孤立的，是有一定联动的，且不少解谜都设计的很巧妙。这使得整个迷宫的探索不只是四处走，打随机遇到的敌人，而是跟着各种机关，在解谜中逐渐理解迷宫构造，从而让迷宫的探索变得非常好玩。&lt;/p&gt;
&lt;p&gt;在具体的迷宫中，本作迷宫设计大多是相当出彩的。无论是“刚玻玛神像”中利用“精神力”结合齿轮的转动来前进，并且要仔细观察，不要错过跨层的联动；亦或是“火之岩”中控制好岩浆和平台的移动；等等等等。不少的迷宫都给我留下了深刻的印象。&lt;/p&gt;
&lt;p&gt;当然，本作的解谜也不只是迷宫，还有多种场景也要进行解谜。比如“修船”就需要用好当时所有的“精神力”；亦或是“刚玻玛山脉”的潜行也要运用“精神力”来躲避视线；还有“萨满村”的“修炼之路”要在竞速的情况下解谜，足够快才能既不丢失优势，也不遗漏中间的宝箱。总体而言，“精神力”解谜的巧妙设计使得游戏的迷宫和挑战更有意思。&lt;/p&gt;
&lt;h2 id="精灵系统"&gt;精灵系统&lt;/h2&gt;
&lt;p&gt;接下来是游戏的战斗系统。实际上，《黄金太阳》的战斗系统完全是围绕“精灵”系统而设计和运行的。“精灵”是“精神力”的元素实体，需要在探险途中收集。和四大元素对应，“精灵”也分为四种属性：Venus、Mars、Jupiter 和 Mercury。“精灵”分为三种状态：“附身”、“待命”和“恢复”。&lt;/p&gt;
&lt;p&gt;首先是“附身”，即把一个精灵“附身”到一个角色上。此时会根据精灵的种类不同，提升角色的生命值，攻击力等不同能力。此外，还会根据精灵元素属性，提升角色的对应元素的元素等级。角色的元素等级决定了这名角色的职业，从而决定这名角色的能力加成和拥有的“精神力”技能。在战斗中，角色可以“释放”其上“附身”的“精灵”，从而使用该“精灵”的特殊技能。这些特殊技能包括伤害类技能、治疗类技能、Buff 和 Debuff 类技能等。&lt;/p&gt;
&lt;p&gt;被“施放”的“精灵”会进入“待命”状态。经过足够长的回合后，该精灵会自动“附身”到原本的角色上。除了“释放”外，在战斗外可以随意地在“附身”和“待命”中切换“精灵”状态，战斗中可以消耗一名角色的一次行动，让他把“附身”于他的一只“精灵”切换为待命状态。这两种情况下，“待命”的精灵都不会自动“附身”。对于“待命”的精灵，可以消耗它们来施展“召唤”。“召唤”技不仅有精美的演出，而且十分强大，往往有着极高的伤害，有些甚至可以上 Buff 和 Debuff。&lt;/p&gt;
&lt;p&gt;被用来“召唤”的“精灵”会进入“恢复”状态，只有在战斗中经过一定回合或者在战斗外移动一定距离后，“精灵”才能退出“恢复”，回到“待命”或“附身”状态。&lt;/p&gt;
&lt;p&gt;从中可以看到“精灵”系统设计的巧妙之处——一个机制就能贯通整个战斗系统。&lt;/p&gt;
&lt;p&gt;在战斗外的职业搭配和队伍构筑中，“精灵”发挥着至关重要的作用：“附身”的精灵决定了角色的元素等级，而元素等级决定了角色的职业。因此，玩家对“精灵”的分配决定了队伍的职业配置。除了一些特殊职业外，剩下的职业可以分为三种，单元素职业、双元素职业和三元素职业。一般而言，职业要求的元素种类越多，其的能力加成和技能池越优秀，但对“精灵”的搭配要求越苛刻。因此玩家要根据自己想玩的队伍打法进行权衡和元素搭配。&lt;/p&gt;
&lt;p&gt;除了“精灵”的元素外，每个“精灵”都有自己的能力加成和特殊技能，而且特殊技能的使用除了“释放”这只“精灵”外不会消耗其他资源。这就使得“精灵”之间不会显得同质化。根据每个职业的需要适当的安排“精灵”，既可以用来突出长板，比如最大化输出职业的攻击力；也可以是补充短板，避免职业的缺陷，比如补充某些职业稀缺的法力值等。我在中期就很喜欢让每个角色都有输出型的“精灵”技能，从而在打小怪时直接用这些技能进行爆发，从而不耗资源地战胜小怪，降低探索或推进迷宫的资源压力。&lt;/p&gt;
&lt;p&gt;不过，在能力加成和特殊技能上，“精灵”之间是存在完全的上位替代的。但是，即使不“附身”这些“精灵”，它们也能在战斗中提供“召唤”所需的资源。这就使得所有“精灵”都是有用的资源，没有一个“精灵”值得被浪费。这种冗余机制堪称是“精灵”系统锦上添花的一笔，让“精灵”的搭配多出了是否“附身”的维度，丰富了构筑的灵活性和丰富度。比如某些下位的“精灵”就可以在战斗前为“待命”状态，从而确保尽快有足够的“精灵”资源来进行“召唤”，并且利用下位“精灵”和上位“精灵”的恢复时间差，使得在上位“精灵”的“恢复”期间能用“下位”精灵来填补空挡。&lt;/p&gt;
&lt;p&gt;而在战斗中，“精灵”在“释放”后，其提供的能力加成和元素等级也就没有了。因此在 Boss 战等长盘的战斗中，“精灵”是复杂的动态资源，其“释放”也是要计算好的。随意地“释放精灵”可能会导致队伍的职业混乱，比如因为职业变化导致恢复系职业丢失，关键时候恢复不起来；亦或是过度“释放”导致角色的能力值过低，从而打不动敌人或被敌人快速击败。&lt;/p&gt;
&lt;p&gt;“精灵”的动态性设计使得角色的职业在战斗中是动态变化的，因此队伍的构筑不再是传统回合制中固定的，而是扩展出了在战斗中动态变化这一维度。从而极大的扩充了队伍构筑的丰富性和复杂度。以我的打最终 Boss 的阵容为例，我是依赖大量的三元素职业，包括“白魔法师”提供充足的恢复量和复活能力；“武士”担当副输出手，并提供 Buff 支援；“忍者”凭借其最高的攻击倍率加上暴击技能三倍伤害的“索尔之刃”来担任主输出手。这套阵容在小怪战中能利用“武士”和“忍者”的高输出能力快速爆发，结束战斗；而在 Boss 战等长盘战中也能做到每回合都能有充足的伤害量、恢复量和 Buff 支援，轻松写意地打消耗战。核心弱点就是为了保留职业，不能“释放”过多“精灵”，缺乏“召唤”的强力技能；也很害怕强制使“精灵”进入“恢复”状态的构筑破坏类技能。&lt;/p&gt;
&lt;h2 id="结尾"&gt;结尾&lt;/h2&gt;
&lt;p&gt;回看《黄金太阳》这两部，最令我惊喜的就是其“精灵”系统，作为一个跨越战斗中和战斗外的动态资源，使得整个队伍构筑都有了战斗中动态变化的维度，这在所有回合制战斗中都是极度罕见的。而在今天的回合制战斗游戏中，我完全没有看到有这种维度的战斗和构筑系统。当然，我在这方面的游戏阅历也并不多，可能是我的视野过于狭隘了。但我还是希望后面的回合制战斗游戏能更多地进行这方面的探索，发掘战斗中动态变化的构筑这一维度的更多有趣之处和有深度的地方。&lt;/p&gt;</description></item><item><title>Tar 文件</title><link>https://fsdx.top/posts/tar%E6%96%87%E4%BB%B6/</link><pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate><guid>https://fsdx.top/posts/tar%E6%96%87%E4%BB%B6/</guid><description>&lt;p&gt;tar 文件是一个非常常见的文件格式，随便打开一个 Github 仓库，看看它的 Releases，大概率就能发现提供了两种格式的源代码压缩包： &lt;code&gt;.zip&lt;/code&gt; 和 &lt;code&gt;.tar.gz&lt;/code&gt; 。&lt;/p&gt;
&lt;p&gt;这里细心的读者想必已经发现，相比 &lt;code&gt;.zip&lt;/code&gt; ， &lt;code&gt;.tar.gz&lt;/code&gt; 有两个后缀名。没错，tar 文件并不是一个压缩格式，而是将多个文件合并成单个文件的打包归档的格式。用 tar 来制作压缩包，就是先将多个文件打包成一个 tar 文件
&lt;code&gt;foo.tar&lt;/code&gt; ，再用其他压缩算法把这个 tar 文件进行压缩，得到最终的压缩包 &lt;code&gt;foo.tar.**&lt;/code&gt; 。根据最后使用的不同压缩方法，得到的后缀名不同。以 GNU 的 tar 程序为例，其支持 gzip、xz、bzip2 等压缩方法，得到的后缀名分别是 &lt;code&gt;foo.tar.gz&lt;/code&gt; 、 &lt;code&gt;foo.tar.xz&lt;/code&gt; 、 &lt;code&gt;foo.tar.bzip2&lt;/code&gt; 。&lt;/p&gt;
&lt;h2 id="tar-的历史背景"&gt;Tar 的历史背景&lt;/h2&gt;
&lt;p&gt;可现在的压缩程序都是同时完成打包和压缩，为什么还需要 tar 的文件格式来单独打包？这是因为 tar 的历史原因。tar 格式诞生于 47 年前的 1979 年。它有多古老？这么说吧，在 GNU 的 tar 程序，需要使用 &lt;code&gt;--file&lt;/code&gt;
参数来显式指定对 tar 文件进行操作。这对于现代的 CLI 程序来说几乎是默认的行为，而在 GNU 的 tar 程序中还需要选项指定。&lt;/p&gt;
&lt;p&gt;如果没有指定这个选项，会发生什么？根据 GNU tar 的文档，它会先看环境变量 &lt;code&gt;TAPE&lt;/code&gt; 的值。 &lt;code&gt;TAPE&lt;/code&gt; 指的正是磁带。没错，在 tar 诞生的时代，Unix 的主流备份介质仍是磁带。磁带是一种顺序 I/O 设备，不具备文件系统，操作系统会将其看作看作一个可以持续写入的字节流设备。&lt;/p&gt;
&lt;p&gt;如果要把多个文件备份到磁带中该怎么办？不能先写入 file1 的数据，再写 file2 的数据，因为这样第二次写入会覆盖 file1 的数据。那如果想现代硬盘一样，在写入 file1 后移动磁带的写入头，再写入 file2 呢？因为磁带的磁头只能向前或向后卷动，无法像磁盘那样随机跳转到任意位置，因此这样的操作会造成大量的浪费。那怎么办？答案就显而易见了——用 tar 把多个文件打包成一个文件再后写入磁带。&lt;/p&gt;
&lt;h2 id="tar-文件格式"&gt;Tar 文件格式&lt;/h2&gt;
&lt;p&gt;在我最近心血来潮，决定研究 tar 文件的格式解析后，我发现 tar 文件的格式出乎意料地简单。整个 tar 文件并没有在开头设置魔数，而是单纯由文件对象组成。文件对象包含其文件的元数据，如文件名、所有者、时间戳、权限和目录结构等。&lt;/p&gt;
&lt;p&gt;具体来说，tar 文件由多个 Record 构成，每个 Record 包含多个 512 字节的“块”。也就是说，默认情况下
tar 文件的大小会是 512 字节的整数倍。以 GNU 的 tar，在其默认参数下&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;，每个 Record 包含 20 个块，大小为 10KiB。因此 GNU tar 产生的 tar 文件大小最小为 10KiB，大小也为 10KiB 的倍数。在不满足的情况下，会在文件末尾用全零字节的空块填充到满足为止。Record 的概念和大小取值看起来有点奇怪，但这应该是磁带时代的历史遗留。&lt;/p&gt;
&lt;p&gt;虽然我之前说 tar 文件是由文件对象组成，现在又说 tar 文件由 Record 组成。其实两者并不冲突，关系更像是文件系统中块和文件的关系。&lt;/p&gt;
&lt;p&gt;文件对象和 Record 一样也是由多个 512 字节的块组成，最开头是一个 Header 块，存储了文件的元数据。如果是普通文件，会在 Header 块之后会用多个块来存储文件内容。文件大小不满足 512 字节的整数倍，也就是无法恰好划分为多个块时，用零字节填充到满足为止。&lt;/p&gt;
&lt;h3 id="原始-unix-tar-格式"&gt;原始 Unix tar 格式&lt;/h3&gt;
&lt;p&gt;原始 Unix tar 格式中 Header 的内容定义如下&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: center"&gt;起始字节&lt;/th&gt;
&lt;th style="text-align: center"&gt;偏移量&lt;/th&gt;
&lt;th style="text-align: left"&gt;字段内容&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;0&lt;/td&gt;
&lt;td style="text-align: center"&gt;100&lt;/td&gt;
&lt;td style="text-align: left"&gt;文件路径&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;100&lt;/td&gt;
&lt;td style="text-align: center"&gt;8&lt;/td&gt;
&lt;td style="text-align: left"&gt;POSIX 风格的文件权限, 八进制数字表示&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;108&lt;/td&gt;
&lt;td style="text-align: center"&gt;8&lt;/td&gt;
&lt;td style="text-align: left"&gt;文件所有者的数字 ID, 八进制表示&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;116&lt;/td&gt;
&lt;td style="text-align: center"&gt;8&lt;/td&gt;
&lt;td style="text-align: left"&gt;文件所属组的数字 ID, 八进制表示&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;124&lt;/td&gt;
&lt;td style="text-align: center"&gt;12&lt;/td&gt;
&lt;td style="text-align: left"&gt;文件大小, 按字节数量计算, 八进制表示&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;136&lt;/td&gt;
&lt;td style="text-align: center"&gt;12&lt;/td&gt;
&lt;td style="text-align: left"&gt;上次修改时间的 UNIX 时间戳, 八进制表示&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;148&lt;/td&gt;
&lt;td style="text-align: center"&gt;8&lt;/td&gt;
&lt;td style="text-align: left"&gt;checksum&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;156&lt;/td&gt;
&lt;td style="text-align: center"&gt;1&lt;/td&gt;
&lt;td style="text-align: left"&gt;文件类型标识符&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;157&lt;/td&gt;
&lt;td style="text-align: center"&gt;100&lt;/td&gt;
&lt;td style="text-align: left"&gt;链接的文件名&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;原始 Unix tar 格式的文件类型标识符只有以下三种，部分 tar 实现会用文件路径最后是否有 / 来标识文件是否为目录。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;值&lt;/th&gt;
&lt;th&gt;含义&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lsquo;0&amp;rsquo; 或零字节&lt;/td&gt;
&lt;td&gt;普通文件&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lsquo;1&amp;rsquo;&lt;/td&gt;
&lt;td&gt;硬链接&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lsquo;2&amp;rsquo;&lt;/td&gt;
&lt;td&gt;符号链接&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;只使用了 257 个字节，剩余的 512-257=255 个字节用零字节填充。而没有使用的字段也用零字节填充，例如普通文件的“链接的文件名”就是全零字节。&lt;/p&gt;
&lt;p&gt;出于历史原因，存储数值的字段都是用 ASCII 数字字符，并用八进制表示&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;。前导填充'0&amp;rsquo;，而且要在末尾填充零字节或空格，也就是实际有意义的字节数量比实际偏移数量少一。例如文件大小虽然预留了 12 个字节，但实际只能存储 11 个八进制数字，所以最大的文件大小为 8 GB 左右。&lt;/p&gt;
&lt;h3 id="ustar-格式"&gt;UStar 格式&lt;/h3&gt;
&lt;p&gt;后续的 POSIX 标准引入了新的 UStar (Unix Standard TAR) 格式。兼容旧的 tar 格式，引入了额外的字段，并扩充了文件类型标识符的取值空间。具体定义如下&lt;sup id="fnref:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: center"&gt;起始字节&lt;/th&gt;
&lt;th style="text-align: center"&gt;偏移量&lt;/th&gt;
&lt;th style="text-align: left"&gt;字段内容&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;0&lt;/td&gt;
&lt;td style="text-align: center"&gt;257&lt;/td&gt;
&lt;td style="text-align: left"&gt;和旧的 tar 格式相同&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;257&lt;/td&gt;
&lt;td style="text-align: center"&gt;6&lt;/td&gt;
&lt;td style="text-align: left"&gt;UStar 标识符, &amp;ldquo;ustar\x00&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;263&lt;/td&gt;
&lt;td style="text-align: center"&gt;2&lt;/td&gt;
&lt;td style="text-align: left"&gt;UStar 版本标识符, &amp;ldquo;00&amp;rdquo; 或 &amp;ldquo;\x00\x00&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;265&lt;/td&gt;
&lt;td style="text-align: center"&gt;32&lt;/td&gt;
&lt;td style="text-align: left"&gt;文件所有者的名字&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;297&lt;/td&gt;
&lt;td style="text-align: center"&gt;32&lt;/td&gt;
&lt;td style="text-align: left"&gt;文件所属组的名字&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;329&lt;/td&gt;
&lt;td style="text-align: center"&gt;8&lt;/td&gt;
&lt;td style="text-align: left"&gt;主设备号&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;337&lt;/td&gt;
&lt;td style="text-align: center"&gt;8&lt;/td&gt;
&lt;td style="text-align: left"&gt;次设备号&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;345&lt;/td&gt;
&lt;td style="text-align: center"&gt;155&lt;/td&gt;
&lt;td style="text-align: left"&gt;文件路径前缀&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;UStar 格式通过将超过 100 字节的文件路径拆分到文件路径前缀中，从而使得最大文件名长度拓展为 255 个字符。&lt;/p&gt;
&lt;p&gt;UStar 的文件类型标识符支持以下取值：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;值&lt;/th&gt;
&lt;th&gt;含义&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lsquo;0&amp;rsquo; 或零字节&lt;/td&gt;
&lt;td&gt;普通文件&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lsquo;1&amp;rsquo;&lt;/td&gt;
&lt;td&gt;硬链接&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lsquo;2&amp;rsquo;&lt;/td&gt;
&lt;td&gt;符号链接&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lsquo;3&amp;rsquo;&lt;/td&gt;
&lt;td&gt;字符设备文件&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lsquo;4&amp;rsquo;&lt;/td&gt;
&lt;td&gt;块设备文件&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lsquo;5&amp;rsquo;&lt;/td&gt;
&lt;td&gt;目录&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lsquo;6&amp;rsquo;&lt;/td&gt;
&lt;td&gt;命名管道&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lsquo;7&amp;rsquo;&lt;/td&gt;
&lt;td&gt;连续文件, 已废弃, 现代文件系统不使用, 视为普通文件&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lsquo;g&amp;rsquo;&lt;/td&gt;
&lt;td&gt;全局文件元数据扩展头&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lsquo;x&amp;rsquo;&lt;/td&gt;
&lt;td&gt;下一个文件的元数据拓展头&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lsquo;A&amp;rsquo;-&amp;lsquo;Z&amp;rsquo;&lt;/td&gt;
&lt;td&gt;可自定义&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;全局文件元数据扩展头指示当前 Header 块包含适用于后续所有文件条目的元数据，直到遇到下一个全局扩展头覆盖它。&lt;/p&gt;
&lt;p&gt;下一个文件的元数据拓展头指示在当前块之后，包含仅适用于下一个文件条目的额外元数据，用于突破 UStar 格式的字段长度限制。&lt;/p&gt;
&lt;h3 id="其他-tar-格式"&gt;其他 tar 格式&lt;/h3&gt;
&lt;p&gt;后来，为了突破 UStar 格式的限制，有不少其他的 tar 格式被提出。例如后续 POSIX 标准引入的 pax 格式，GNU 的 tar 格式等。对这些格式我没有进行细致的研究，因此本文也不再讲解。&lt;/p&gt;
&lt;h2 id="结尾"&gt;结尾&lt;/h2&gt;
&lt;p&gt;说实话，tar 文件最令我意外的地方是它的简洁，甚至就是一个单纯的文本文件。只需要按照特定的规定，就能蕴含丰富的结构化信息。真的很有意思。&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;详见文档 &lt;a href="https://www.gnu.org/software/tar/manual/"&gt;https://www.gnu.org/software/tar/manual/&lt;/a&gt; 中关于 &lt;code&gt;--blocking-factor&lt;/code&gt;, &lt;code&gt;--record-size&lt;/code&gt; 等参数的说明。&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Tar_(computing)#Header"&gt;https://en.wikipedia.org/wiki/Tar_(computing)#Header&lt;/a&gt;&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;根据 Wikipedia 的说法，这是因为 Unix 最初是为 PDP-7 设计的，该系统使用 18 位 CPU 和 6 位字符编码，因此三位八进制表示法更具优势&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:4"&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Tar_(computing)#UStar_format"&gt;https://en.wikipedia.org/wiki/Tar_(computing)#UStar_format&lt;/a&gt;&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>2026-05 乐子大赏</title><link>https://fsdx.top/posts/2026-05/</link><pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate><guid>https://fsdx.top/posts/2026-05/</guid><description>&lt;h2 id="个人之内"&gt;个人之内&lt;/h2&gt;
&lt;p&gt;算是从上个月比较内耗的状态中走了出来，进行一些投简历等实际的行动。也算是比上个月好了不少吧。&lt;/p&gt;
&lt;h3 id="游戏"&gt;游戏&lt;/h3&gt;
&lt;p&gt;《皓白初晓》。上个月才在发布会上看到了预告，没想到这个月就退出了抢先体验的 Early Access 版本，第一时间就去玩了。体验下来很有《远星物语》的味道。且在美术和动作上都有很大的改进。但完成度不算高，只有一章半左右的内容，性能优化上也有些欠缺。还是值得期待后续发展。&lt;/p&gt;
&lt;p&gt;《灵视异闻 FILE23 本所七大不可思议》。一款叙事导向的文字冒险游戏。美术的复古 CRT 质感，故事的怪谈氛围很好。Meta 要素可谓是恰到好处，最令我惊喜的是乍看之下毫无关联的“七大不可思议”怪谈，最后竟然全部串成一个故事，揭示了最后的真相。不过故事的选项虽多，但大多无意义，且真结局后的结尾有些潦草。&lt;/p&gt;
&lt;p&gt;《黄金太阳2 失落的时代》。GBA 上的经典 JRPG，“精神力”带来的充满解谜的迷宫探索体验很有意思，而“精灵”系统是十分天才的设计。或许之后我会写一篇文章来专门聊聊这款游戏，这里就不再过多赘述。&lt;/p&gt;
&lt;h3 id="阅读"&gt;阅读&lt;/h3&gt;
&lt;p&gt;这个月读完了《繁星若尘》。相比“银河帝国”系列丛书之前的作品，本作读起来没什么意思，既没有像是系列之前那种多层反转，紧张刺激的悬疑故事。也没有那种虽平淡但有趣的小故事。&lt;/p&gt;
&lt;p&gt;写了不少的感情戏也不算好看。特别是后面拜伦得知艾妲密西娅的父亲亨瑞克是杀父仇人后，立刻自己破坏了和艾妲密西娅的暧昧关系。害死父亲和艾妲密西娅有什么关系，艾妲密西娅愿意帮助并与拜伦一起逃亡就表明她并不赞同她父亲的做法，那为何拜伦还有迁怒与艾妲密西娅呢？还觉得两人之间的关系已经没有退路了。为什么？完全没有逻辑啊。这只能解释为情绪上头了，理智让步了。&lt;/p&gt;
&lt;p&gt;然后可以说是不出意外地揭晓了上述行为是故意为之的。但那些角色的心理描写也是虚构的呀，这种虚假的心理描写就有点低级了。这部分写的确实不行。&lt;/p&gt;
&lt;p&gt;较好的反转就是前面的“暗弱之君”的反转了。但最后未来的制度竟然以美国的宪法为基准。感情发展了这么多太空科技，反而社会科学倒退了很多啊。这种科技树的发展也没有额外的说明，难以说服我。&lt;/p&gt;
&lt;h2 id="个人之外"&gt;个人之外&lt;/h2&gt;
&lt;p&gt;劳动节假期，爽看了 EVOJP。比赛确实很精彩，而且还偶然地认识到了《北斗神拳》这个游戏。&lt;/p&gt;
&lt;p&gt;《北斗神拳》是快 20 年的老格斗游戏游戏了，而且是一个“粪作”：平衡性差、几乎每个角色都有即死的连段，还有各种无限连。但是，这款游戏有着十足的观赏乐趣，而且玩家社区也有持久的热情：不仅有专门的比赛“世纪末武斗会”，更是在今天玩家也不断地研发出更优的连段。&lt;/p&gt;
&lt;p&gt;《北斗神拳》的即死的系统有两种：取星和无限连。取星是基于《北斗神拳》独特的“星”的系统：每个玩家都有七颗“星”，通过特定的招式可以去除敌方的“星”。当玩家的七颗“星”全部被去除后，就会有一颗特殊的“星”——“死兆星”。此时对方玩家就可以用特殊的招式之间击败该玩家。这也是源于原作《北斗神拳》的星。因此，在游戏中关于“星”的博弈也是十分重要的一环。&lt;/p&gt;
&lt;p&gt;而对于另一个——无限连，就不得不提《北斗神拳》的知名梗“篮球课”。先解释一下格斗游戏中常见的“浮空值”：玩家受击后能在空中“飞”多久，一些游戏中（比如《北斗神拳》）中在“浮空值”很大时玩家摔到地上后还会继续弹起继续“浮空”的状态。一般来说玩家受击后“浮空”的过程也是可以被攻击的，这种情况下受击后玩家的“浮空值”会逐渐减少。但在《北斗神拳》中“浮空值”减小到一定后反而会开始增加。这就导致不少连段打着打着就会让玩家不断摔到地上后弹起，并且越弹越高。就像再拍篮球一样，看起来特别好笑。因此打出这种连段也被称为“开篮球课”（也可以说是“皮球”等）。&lt;/p&gt;
&lt;p&gt;但其是这些“篮球”连段难度很高，因为“浮空值”会先降低的，此时往往要精确的帧数把握和连点“轻拳”，才能进入到“浮空值”增加的阶段。而且不同阶段，“浮空值”不同就要打不同的招式，还要考虑资源的回收等。但这样连点“轻拳”的过程也非常鬼畜，看着角色“痛击魔丸一百下”也是十分好笑。&lt;/p&gt;
&lt;p&gt;我觉得正是上述这些要素让《北斗神拳》的比赛看起来很有意思。经常是双方满屏幕四处乱动地“激烈立回”，然后一方摸到另一方后开始打鬼畜的“篮球连段”。整个 EVO 的《北斗神拳》 比赛看下来毫无尿点，让我笑得停不下来。&lt;/p&gt;
&lt;p&gt;无愧是格斗游戏史上难以复制的奇迹，平衡界的“无暇之作”，世纪末的真正格斗游戏。我永远也不会忘记你吧《北斗神拳》&lt;/p&gt;</description></item><item><title>2026-04 乐子大赏</title><link>https://fsdx.top/posts/2026-04/</link><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><guid>https://fsdx.top/posts/2026-04/</guid><description>&lt;h2 id="个人之内"&gt;个人之内&lt;/h2&gt;
&lt;p&gt;这个月算是比较内耗，精神状态很差的一个月吧。&lt;a href="https://www.geedea.pro/article/ready-steady-go/"&gt;这篇博客&lt;/a&gt;所讲述的内容其实很符合我现在心境：对未来不确定性的迷茫和对当下自己没有行动的内耗。做一些自己开心的事吧，第二天醒来就又有焦虑袭来，在我耳边絮絮叨叨“怎么又浪费了一天干这个”。做一些“努力”的事吧，又忍不住思考这些事真的有意义吗？&lt;/p&gt;
&lt;p&gt;看着自己空白的简历，我不禁想到那些出于兴趣而写的小项目和小众技术又有什么公司在意呢？难道只能包装些自己也不喜欢的课程项目吗？做着这些我可能并不开心，乃至并不赞同的事，真的就是对的吗？我的人生之路，到底该怎么走？&lt;/p&gt;
&lt;p&gt;我只有一个答案：我不知道……&lt;/p&gt;
&lt;p&gt;上述那篇博客中有一句话我很喜欢，可谓是直接击中我的现状：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;我知道我站在这样一个岔路口，一边是令人恐惧的不确定性，另一边是味同嚼蜡的确定性。更可怕的是，所有人都在往前走，只有我蹲在原地，不敢选择。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;可是我还是要前行，被这种焦虑和自我怀疑的交织形成的动力所推着前行。在这样一种扭曲的动力驱动下，迈出的脚步也只能是歪七扭八的吧，看到的风景也是能有着灰暗的色彩吧。&lt;/p&gt;
&lt;p&gt;离心目中的理想和正确如此遥远，这到底是我的错还是环境的错？环境该怎么改变才是对的？怎么做才能改变环境？我到底该怎么做？我到底该做什么？&lt;/p&gt;
&lt;p&gt;即使想了很久，我仍是只有那一个答案：我不知道……&lt;/p&gt;
&lt;h3 id="游戏"&gt;游戏&lt;/h3&gt;
&lt;p&gt;这个月因为自己精神状态很差，所以没有玩耗时很多的大作，都是些短流程作品。&lt;/p&gt;
&lt;p&gt;《Amatsuko》，一款致敬《星际拓荒》的游戏。美术高情商地说是复刻了 PS1 时期低多边形 3D 游戏的复古风格，低情商地讲就是非常糙。点子确实很棒，但呈现上做得不足，像是部分知识锁设计牵强，令人感到有些对不上电波。&lt;/p&gt;
&lt;p&gt;《火柴人亨利合集》，童年的经典 Flash 网页游戏的完整合集版，还有系列新作的加入。很早就收入库存了，但直到现在才终于去玩。看各种分支路线中作者写了什么有意思的可能性和展开和众多关于其他游戏的彩蛋很有趣，单纯的有意思。&lt;/p&gt;
&lt;p&gt;《闰跃之年》，一个小品级脑银，有点像去年玩的 Ooo，但我觉得在地图与关卡设计、引导和能力设计上本作更胜一筹。特别是最终阶段反重力后重走之前的路给了我《恶魔城X：月下夜想曲》进入逆城的惊喜。&lt;/p&gt;
&lt;p&gt;《泽克西昂》，类银河战士的“癫疯”之作，不管是游戏演出、关卡和地图设计、美术音乐还是疯狗一样的小怪和 Boss，都可称得上“癫疯”两个字的评价。因此难度很高，需要不低的操作熟练度和操作频率。本作比银河战士的操作反应要求高很多，更接近于古早洛克人，直接开启内置的辅助模式，在其帮助下通关才是对普通玩家而言更好的选择。&lt;/p&gt;
&lt;h3 id="阅读"&gt;阅读&lt;/h3&gt;
&lt;p&gt;这个月读完了《机器人与帝国》，结束了“机器人系列”的阅读之旅。艾萨克·阿西莫夫一直是深受我喜欢的科幻作家，我从高中开始就读“银河帝国”系列丛书（包含了“基地系列”、“机器人系列”和“银河帝国三部曲”），但这套丛书的阅读之旅一直很漫长。我总是读完一本后就会停下，去读读其他书，几个月后才会回来重新读。所以一直到现在才读完“机器人系列”，使得整套丛书只剩下了“银河帝国三部曲”没读完。&lt;/p&gt;
&lt;p&gt;说回本书，这里简要概括本作的剧情和背景（剧透警告）：&lt;/p&gt;
&lt;p&gt;在前作中，伊利亚·贝莱解决奥罗拉的危机后，地球也在贝莱及其儿子的领导下开始了星际移民事业。“太空族”已经失去了向外探索和发展的欲望，所以只有地球人进行星际殖民才能避免让人类固守已有的居住地而灭亡。但是部分以“阿玛狄洛”领导的“太空族”党派希望阻止地球，使两支人类势力共同毁灭。在贝莱死后，机器人丹尼尔和吉斯卡牢记他死前的告诫，肩负起为保护地球及其殖民者、促使人类向外发展并建立一个崭新银河帝国的重任。&lt;/p&gt;
&lt;p&gt;《裸阳》中的索拉利人在本书遗弃了他们的星球，索拉利星上只剩下机器人。然而地球人去索拉利征用剩下的机器人时，却遭到神秘人的袭击，全军覆没。贝莱（伊利亚·贝莱的后代）之后来到奥罗拉，求助已知的唯一一个索拉利人——“嘉蒂雅”。故事就在围绕两人和上述两个机器人在索拉利的探索和回到地球的行动展开。&lt;/p&gt;
&lt;p&gt;本作的风格还是艾萨克·阿西莫夫一贯的风格——科幻背景下的悬疑故事。科幻的内容并不是那么的“硬科幻”，而是为了故事而服务的外层。虽然没有系列前几作那样的侦探故事风格，但还是经常会有先发生一个事件，之后故事的人物开始解释这个事件背后的真相的情况。比如地球上发生的刺杀事件，“丹尼尔”先是告知外界这是刺杀“嘉蒂雅”未遂，之后才告诉读者其实这起刺杀的真正目标是“吉斯卡”。&lt;/p&gt;
&lt;p&gt;当然这并不表示阿西莫夫的作品不足以算作科幻作品。其实他的作品内在的主题还是非常科幻的，比如本作就是探讨了机器人对于人类种族整体的伦理问题。核心就是机器人第零定律：机器人必须保护人类整体利益不受伤害，其优先级高于原有三大定律。还是一样非常的人本主义。&lt;/p&gt;
&lt;p&gt;还有个很有意思的地方在于本作与“基地系列”的大量时空联动。“银河帝国”系列丛书之所以把三个小系列编成一个大系列，就在于这三个系列是有时空关联的：“机器人系列”发生最早，在银河帝国建立很久之前，主要是地球和首批太空殖民者“太空族”的故事；“银河帝国三部曲”发生在银河帝国建立前夕和逐步统一银河系的时期；“基地系列”最晚，发生在银河帝国灭亡之后。而在“基地系列”最后一本《基地与地球》就讲述了寻找地球的故事，其中就涉及了机器人第零定律、充满放射性的地球、索拉利和奥罗拉、会心灵感应能力的机器人“丹尼尔”、对“心灵史学”的早期思考等等。本作就有讲述“丹尼尔”提出机器人第零定律和继承“吉斯卡”心灵感应能力的过程，以及地球是如何充满放射性等内容。不过因为我上次读《基地与地球》是很久之前的事了，所以读到联动内容时都只是有个这处此前提过的印象，不仅要反复翻找《基地与地球》来确认呼应的情节，还缺失了“啊，这不就是之前的那个……”的惊喜感。还是很遗憾的。&lt;/p&gt;
&lt;h2 id="个人之外"&gt;个人之外&lt;/h2&gt;
&lt;p&gt;3i 独立游戏发布会，本来这个发布会作为独立游戏发布会，是很难有什么可称为乐子的东西的。我往往都是看看宣传片，挑选一些感觉有点意思的作品关注。&lt;/p&gt;
&lt;p&gt;但这次发布会之所以拿出来说在于其中一款游戏——《皓白初晓》，更准确的说，是这款游戏的制作组的前作《远星物语》。&lt;/p&gt;
&lt;p&gt;在我的游戏生涯中，《远星物语》是一款举足轻重的游戏。可以说，《远星物语》和另外两部作品《不死鸟传说：觉醒》与《空洞骑士》在我心中的地位不亚于《Fez》、《超级食肉男孩》、《时空环境》在独立游戏史的地位。它们向我展示了独立游戏也可以有比肩乃至远超商业大作的庞大内容量和优秀设计。它们也是我独立游戏的启蒙之作，极大地塑造了我的游戏审美。没有它们，我很难想象我会在多久之后才开始积极地尝试独立游戏，达到如今一年玩过的游戏中独立游戏的占比达到七成以上的状况，并发现像是《蔚蓝》、《动物井》等独立游戏佳作，乃至我心中永远的白月光——《星际拓荒》。&lt;/p&gt;
&lt;p&gt;所以我是很期待《皓白初晓》能带给我一段十分美妙的历程。但我也明白，对独立游戏有越大的期待，就越可能失望。毕竟独立游戏的开发难题一直难以解决，很难保证开发者能发挥出前作的水平。所以还是保留合适的期待程度，避免“擅自期待，擅自失望”吧。&lt;/p&gt;</description></item><item><title>写一个 Emacs 主题</title><link>https://fsdx.top/posts/%E8%87%AA%E5%AE%9A%E4%B9%89emacs%E4%B8%BB%E9%A2%98/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid>https://fsdx.top/posts/%E8%87%AA%E5%AE%9A%E4%B9%89emacs%E4%B8%BB%E9%A2%98/</guid><description>&lt;p&gt;一直以来，我用的 Emacs 主题都是从 &lt;a href="https://github.com/doomemacs/themes"&gt;doom-themes&lt;/a&gt; 中挑选的。经过最初的筛选后，我逐渐变为只使用其中一个主题 —— doom-moonlight。但这也在我心存遗憾：如果我只使用其中一个主题，有必要安装整个 doom-themes 的主题包吗？&lt;/p&gt;
&lt;p&gt;而后在长久的使用中，我逐渐发现 doom-moonlight 的主题有很多地方并不合我心意。例如 nerd-icon 的配色中本应使用紫色的地方却选取了偏粉色，例如 Emacs 的图标变成了粉色的图标（我还是更喜欢紫色的 Emacs 图标）。此外对于字体高亮，我更喜欢没那么“多彩”的高亮设置：只使用少量的颜色高亮各种关键部分即可，不需要函数名、变量名、类型名这些都采用不一样的颜色。&lt;/p&gt;
&lt;p&gt;诚然，这些都可以通过在自己的配置文件中覆盖主题的设置，但这些零散的补丁让我产生一个念头：既然我与主题默认存在如此多的差异，为什么不干脆基于 doom-moonlight 自己写一个主题，完全采用个人喜好的设置，不就简单很多了？说干就干！&lt;/p&gt;
&lt;h2 id="主题框架"&gt;主题框架&lt;/h2&gt;
&lt;p&gt;事实上，绝大多数提供了多种主题的主题包，乃至只提供了浅色或暗色变体的主题，都内含了某个主题框架。其核心就是能够在多个主题间共享基础配置和代码。例如我用的 doom-themes，就通过 &lt;code&gt;def-doom-theme&lt;/code&gt; 宏提供了一个主题框架。只需要你提供对应的颜色，就可以形成一个主题。在这个主题包中的所有主题，都是在这个框架中通过设置颜色和覆盖一些框架默认设置来制作的。&lt;/p&gt;
&lt;p&gt;每个框架的使用方式都不一样，除了 doom-themes 的框架外，其他主题包比如 &lt;a href="https:/github.com/bbatsov/solarized-emacs"&gt;solarized-emacs&lt;/a&gt; 提供了 &lt;code&gt;solarized-create-theme-file-with-palette&lt;/code&gt; ，只需提供 10 种颜色（2 种基础色 + 8 种辅助色），它就会自动生成一个主题文件，包含所有中间色调并对应的完整设置。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-emacs-lisp" data-lang="emacs-lisp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;;; Copy from solarized-emacs github repo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;solarized-create-theme-file-with-palette&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;light&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;solarized-jellybeans-light&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;#202020&amp;#34;&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#ffffff&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s"&gt;&amp;#34;#ffb964&amp;#34;&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#8fbfdc&amp;#34;&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#a04040&amp;#34;&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#b05080&amp;#34;&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#805090&amp;#34;&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#fad08a&amp;#34;&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#99ad6a&amp;#34;&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#8fbfdc&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;load-theme&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;solarized-jellybeans-light&lt;/span&gt; &lt;span class="no"&gt;t&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;还有像是 &lt;a href="https://github.com/protesilaos/modus-themes"&gt;modus-themes&lt;/a&gt; 则是能通过 &lt;code&gt;modus-themes-common-palette-overrides&lt;/code&gt; 来在不修改主题的情况下，调整主题的颜色，从而能在运行时进行深度自定义。更妙的是，这个颜色调整能适用于该主题包的所有主题，也就是说，在使用 &lt;code&gt;modus-themes-toggle&lt;/code&gt; 切换主题包内的主题时仍会保留用户的颜色调整。（针对特定主题的颜色调整也有对应的变量）&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-emacs-lisp" data-lang="emacs-lisp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;setq&lt;/span&gt; &lt;span class="nv"&gt;modus-themes-common-palette-overrides&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nv"&gt;fg-main&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#c8d3f5&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;bg-main&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#212337&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;keyword&lt;/span&gt; &lt;span class="nv"&gt;magenta&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果已经使用了一些主题包，并且只是想在主题包上进行颜色调整和一些默认设置的覆盖，那么使用主题包提供的框架去写新主题无疑是更好的选择。&lt;/p&gt;
&lt;h2 id="从零开始"&gt;从零开始&lt;/h2&gt;
&lt;p&gt;然而我并未选择采用主题框架编写主题，主要还是因为我不愿为了只使用其中几个主题而安装一整个主题包。所以我采用了最传统的方法编写主题——用 &lt;code&gt;deftheme&lt;/code&gt; 和 &lt;code&gt;custom-theme-*&lt;/code&gt; 来从零开始写一个 Emacs 主题。&lt;/p&gt;
&lt;p&gt;一个 Emacs 主题就是一系列 &lt;code&gt;face&lt;/code&gt; 的自定义设置的集合。Emacs 的 &lt;a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Faces.html"&gt;face&lt;/a&gt; 就是文本的显示样式，包括前景色、背景色、粗体、斜体、下划线等等。因此写一个 Emacs 主题的传统方法就是用 &lt;code&gt;deftheme&lt;/code&gt; 定义一个主题，然后用 &lt;code&gt;custom-theme-set-faces&lt;/code&gt; 调整这个主题中各种 &lt;code&gt;face&lt;/code&gt; 的设置，最后用 &lt;code&gt;provide-theme&lt;/code&gt; 声明本文件提供了该主题的设置。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-emacs-lisp" data-lang="emacs-lisp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;deftheme&lt;/span&gt; &lt;span class="nv"&gt;my-theme&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;My custom theme.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;custom-theme-set-faces&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="ss"&gt;&amp;#39;my-theme&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;;; The `t` means &amp;#34;all display types&amp;#34; -- you can also specify different&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;;; colors for different displays (GUI vs 256-color terminal, etc.)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;default&lt;/span&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="no"&gt;t&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;:foreground&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#c8d3f5&amp;#34;&lt;/span&gt; &lt;span class="nb"&gt;:background&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#212337&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;font-lock-keyword-face&lt;/span&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="no"&gt;t&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;:foreground&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#c099ff&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;font-lock-string-face&lt;/span&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="no"&gt;t&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;:foreground&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#c3e88d&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;;; ... 200+ more faces&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;provide-theme&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;my-theme&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;好处很明显：我对所有的 &lt;code&gt;face&lt;/code&gt; 都拥有完全的控制权，能在 Emacs 的能力范围内自由设定任意 &lt;code&gt;face&lt;/code&gt; 的样式。而对于上述插件没有覆盖到的 &lt;code&gt;face&lt;/code&gt; ，我也能自由地添加，而不用考虑潜在的冲突问题等。&lt;/p&gt;
&lt;p&gt;坏处也很明显：我必须手动设定和维护所有的 &lt;code&gt;face&lt;/code&gt; 。Emacs 内置的基本 &lt;code&gt;face&lt;/code&gt; 就有几十个，而无论是 Emacs 内置的插件，还是社区的各种插件，都添加了自己的 &lt;code&gt;face&lt;/code&gt; ，这就导致在编写主题时需要自行了解并设置的 &lt;code&gt;face&lt;/code&gt; 数量众多。如果有所遗漏，主题在某些 UI 上很好看，而在另一些 UI 上却显得奇怪。我的主题仅涵盖我个人会用到的功能和插件的 &lt;code&gt;face&lt;/code&gt; ，就已经有 700 多个了，可想而知社区主流的主题们为了适配各种插件可能要设定好几千个 &lt;code&gt;face&lt;/code&gt; 了。&lt;/p&gt;
&lt;p&gt;而维护这些 &lt;code&gt;face&lt;/code&gt; 也需要耗费不少精力。例如使用的某个插件的新版本中添加了新的 UI 界面，不仅引入了新的 &lt;code&gt;face&lt;/code&gt; ，还可能让你的主题出现奇怪的问题，必须调整来做适配。&lt;/p&gt;
&lt;p&gt;就算你设置好了这些数量众多的 &lt;code&gt;face&lt;/code&gt; 并决心维护好它们，你可能也会踩到新的坑：某些插件使用变量而不是 &lt;code&gt;face&lt;/code&gt; 来设定颜色，比如 &lt;a href="https://github.com/tarsius/hl-todo"&gt;hl-todo&lt;/a&gt; 就是用 &lt;code&gt;hl-todo-keyword-faces&lt;/code&gt; 变量来设定高亮的颜色&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;。解决方法就是用 &lt;code&gt;custom-theme-set-variables&lt;/code&gt; 来设置这些变量，但你必须预先知道什么插件是用变量来设定颜色的。&lt;/p&gt;
&lt;p&gt;这就是使用上述框架的好处了，这些框架往往都对各种各样的 &lt;code&gt;face&lt;/code&gt; 都有默认的设置，只需要覆盖自己不喜欢的就行了。针对插件的更新，框架也会负责维护和添加对应的新 &lt;code&gt;face&lt;/code&gt; 的默认值。而各种坑框架也已经先踩过了，不需要用户操心。正是这些框架的源码帮助我解决了不少坑和问题。&lt;/p&gt;
&lt;h3 id="来点宏吧"&gt;来点宏吧&lt;/h3&gt;
&lt;p&gt;社区早就注意到了从零开始写主题存在的各种问题，&lt;a href="https://github.com/jasonm23/autothemer"&gt;autothemer&lt;/a&gt; 通过 &lt;code&gt;autothemer-deftheme&lt;/code&gt; 宏来让用户用更简单的方式来定义主题和避免问题。不仅将冗长的 &lt;code&gt;custom-theme-set-faces&lt;/code&gt; 代码简化为了基于调色板的设置方法，还提供了为 GUI 和终端等不同显示界面设置备用颜色值等方便的功能。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-emacs-lisp" data-lang="emacs-lisp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;;; Copy from solarized-emacs github repo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;autothemer-deftheme&lt;/span&gt; &lt;span class="nv"&gt;example-name&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;Autothemer example...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;;; Specify the color classes used by the theme&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;((((&lt;/span&gt;&lt;span class="nv"&gt;class&lt;/span&gt; &lt;span class="nv"&gt;color&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;min-colors&lt;/span&gt; &lt;span class="mh"&gt;#xFFFFFF&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nv"&gt;class&lt;/span&gt; &lt;span class="nv"&gt;color&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;min-colors&lt;/span&gt; &lt;span class="mh"&gt;#xFF&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;;; Specify the color palette, color columns correspond to each of the classes above.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;example-red&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#781210&amp;#34;&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#FF0000&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;example-green&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#22881F&amp;#34;&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#00D700&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;example-blue&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#212288&amp;#34;&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#0000FF&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;example-purple&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#812FFF&amp;#34;&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#Af00FF&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;example-yellow&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#EFFE00&amp;#34;&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#FFFF00&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;example-orange&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#E06500&amp;#34;&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#FF6600&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;example-cyan&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#22DDFF&amp;#34;&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;#00FFFF&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;;; Specifications for Emacs faces.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;;; Simpler than deftheme, just specify a face name and&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;;; a plist of face definitions (nested for :underline, :box etc.)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nv"&gt;button&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;:underline&lt;/span&gt; &lt;span class="no"&gt;t&lt;/span&gt; &lt;span class="nb"&gt;:weight&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;bold&lt;/span&gt; &lt;span class="nb"&gt;:foreground&lt;/span&gt; &lt;span class="nv"&gt;example-yellow&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ne"&gt;error&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;:foreground&lt;/span&gt; &lt;span class="nv"&gt;example-red&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;;; Forms after the face specifications are evaluated.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;;; (palette vars can be used, read below for details.)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;custom-theme-set-variables&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;example-name&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;`&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ansi-color-names-vector&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="nv"&gt;example-red&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="nv"&gt;example-green&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="nv"&gt;example-blue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="nv"&gt;example-purple&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="nv"&gt;example-yellow&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="nv"&gt;example-orange&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="nv"&gt;example-cyan&lt;/span&gt;&lt;span class="p"&gt;])))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这确实是针对手写主题来说非常方便的宏，遗憾的是，我是在写完主题后才发现这个包&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;。如果再次从零开始手写一个主题，我会考虑用 autothemer 等方案，以大幅节省时间和精力。&lt;/p&gt;
&lt;h2 id="总结"&gt;总结&lt;/h2&gt;
&lt;p&gt;从零开始写一个 Emacs 主题对我而言是个非常有意思的过程。为各个 &lt;code&gt;face&lt;/code&gt; 挑选美观一致的颜色，看着粗糙的默认外观一点点好看起来，给我十足的满足感。但不可否定的是，这确实十分耗费时间和精力。每次发现仍有一些 &lt;code&gt;face&lt;/code&gt; 未被覆盖时，都会令我头疼。&lt;/p&gt;
&lt;p&gt;如果你喜欢已有的主题但需要大量的修改，除非像我一样有某种强迫症，否则我还是会推荐使用主题框架。毕竟这些框架往往都久经社区考验，很可能改着改着就发现还不如原来的好看。&lt;/p&gt;
&lt;p&gt;如果你真要从零开始手写一个主题，我会推荐使用上述的宏等解决方法。节省下的大量时间和精力可以用来专注于让你的主题更好看。&lt;/p&gt;
&lt;p&gt;当然，最省心的就是进入对各种默认配置都满意，懒得折腾，“It works”就行的佛系状态，这确实是令人羡慕的状态了。&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;没错，虽然 &lt;code&gt;hl-todo-keyword-faces&lt;/code&gt; 的名字包含 &lt;code&gt;face&lt;/code&gt; ，但它并不是一个 &lt;code&gt;face&lt;/code&gt; ，而是一个变量，更准确地说，是一个 &lt;code&gt;(KEYWORD . FACE)&lt;/code&gt; 的列表。在我的理解中，这是因为要允许用户添加或减少关键词和对应高亮，而这种用户随意加减的拓展性不可能用 &lt;code&gt;face&lt;/code&gt; 来实现，所以只能用变量来实现。&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;doom-themes 的 &lt;code&gt;def-doom-theme&lt;/code&gt; 其实也是类似的宏。但 autothemer 只提供了解决方法，而不是 doom-themes 那样的主题包。&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>2026-03 乐子大赏</title><link>https://fsdx.top/posts/2026-03/</link><pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate><guid>https://fsdx.top/posts/2026-03/</guid><description>&lt;p&gt;3 月，返校月。我思考的月度乐子大赏的结构，发现基本都是分为两个部分：一是我个人有体验，包括玩的、看的等内容；二是一些外界的，我了解到的有意思的内容。因此我开始分为两大章节：个人之内和个人之外。&lt;/p&gt;
&lt;h2 id="个人之内"&gt;个人之内&lt;/h2&gt;
&lt;h3 id="游戏"&gt;游戏&lt;/h3&gt;
&lt;p&gt;这个月先是继续去玩《深圳 IO》，但玩一半便放弃了。这个游戏并没有让其核心——解题和优化解法变得足够有趣，在漫长的思考过程所消耗的时间精力成本和想出优秀解法的成就感的平衡中做得不够好，我只能坚持到一半就停下了。&lt;/p&gt;
&lt;p&gt;然后是《金偶像崛起》，是去年玩的《金偶像谜案》的续作。可以说是前作的 PLUS 版，延续了前作“完形填空”的解答形式，同时在谜题设计、细节安排、剧情和氛围感塑造上都更加出色。如果是对前作就很喜欢，那本作自然十分推荐。如果想尝试这种游戏，因为本作和前作在故事上关联不大，所以我会推荐从本作开始。&lt;/p&gt;
&lt;p&gt;最后是《秘奥：秘宇奥忆》，是我从本作的 Demo 时就有所关注的游戏，是一款出色的类银独立游戏。美术风格是一种偏手绘的水彩风格，而且对色彩的运用非常出色，构造了很多令我惊艳的场景。地图设计虽然我觉得没有像社区一些言论认为的那么出色，但也堪称优秀，其中的宁静避所则是本作在地图设计上的佼佼者。不过核心问题在于本作存在一些存档点是想用来连接到多个区域的，例如“枢纽”的存档点。这就导致了这种存档点到这些入口的路程仍较长，再加上主角的移动速度不快，就显得每次死亡后的跑路时间都不短。能力设计有点一般，除了“神行步”外并没有让我觉得有意思的能力。“发夹”也还行，但有了《丝之歌》的“飞针”珠玉在前，就让这个能力的设计显得不够好。当然这个“发夹”能力是在 Demo 时期就存在的，比《丝之歌》正作的推出要早，只能说算《丝之歌》的先发优势吧。主角的普通攻击只有一直不变的三段，配合“飞针”的穿刺敌人等丰富饰品让本作的战斗虽然不算丰富，但也不足以称为单调。不过在我玩时游戏的动作系统有点问题，比如角色回中时有些情况下会转向，导致攻击方向不对。社区有不少言论绝对本作的跳跳乐难度偏大，我反而觉得还行，没有以前遇到的一个晚上都跳不过去的难关，难道是我的游戏水平提升了？最后是本作我最不喜欢的点是“震颤”：“震颤”是游戏流程中每到一定阶段后就会发生的大事件，每次发生后都会降低游戏中所有敌人、NPC 和主角自己的生命值上限。这是为本作叙事而服务的设计，一些生命值很少的敌人或 NPC 会因此而永久死亡，因此能看到 NPC 随着游戏流程而死亡。这类随着游戏进展，让敌人变强或角色变弱的设计并不少见，但我无法理解的因此而影响的整体游戏的数值。本作本身就没有随地主动恢复生命的手段，只能在存档点和一些地方花钱恢复。再加上“震颤”对生命值上限的限制，导致游戏容错率是挺高的。本身越往后游戏难度越大，还要让玩家的容错率降低，更让玩家的收集和成长缺乏实感。最后期我在打普通结局时正常情况下才 4 点生命值上限，就比游戏开始时多了 2 点，全收集后也才 5 点，让我觉得怎么收集了半天生命值也没啥成长，感觉越玩还越弱啊。这也让我在找到不用花钱恢复生命和站在地上 3 秒给一点护盾的饰品后就基本没有摘下来过了，这两个真的能极大提高容错率，改善游玩体验。&lt;/p&gt;
&lt;h3 id="阅读"&gt;阅读&lt;/h3&gt;
&lt;p&gt;这个月没有阅读什么书籍，基本都在读我的 RSS 内容。主要原因在于上个月读的《荷鲁斯之乱》系列的第 5 本没有找到比较好的中文资源，让我思考到底是去读英文原版还是先放下该系列去读读其他书籍。考虑到英文原版的阅读时间成本，我决定暂时搁置该系列，转而去读读其他书籍，目前的打算是去读《银河帝国》系列。《银河帝国》系列我从高中开始读，往往是读完一本就停一会才会读下一本，就这样断断续续地读到今天也没读完，或许是时候读完该系列了。&lt;/p&gt;
&lt;h2 id="个人之外"&gt;个人之外&lt;/h2&gt;
&lt;h3 id="openclaw"&gt;OpenClaw&lt;/h3&gt;
&lt;p&gt;龙虾 OpenClaw 自从今年年初在国外火了之后，到了本月才在国内大火，而且我感觉比刚开始时的国外浪潮还要火。火到什么程度？火到我的一些和 OpenClaw 八竿子打不着的 QQ 群也在转发一些提示词注入攻击的文本。这当然离不开国内各个公司的大力推广，比如上述 QQ 群转发离不开腾讯在微信和 QQ 等开放了 OpenClaw 方便接入的接口。当然腾讯的推广中最出名的还得是在其公司楼下举行的“免费装龙虾”活动。（在我写稿时，中央政府也发布了龙虾相关的公文，可见其火的程度）但在我看来这背后更多是很多人的错失恐惧症（FOMO）情结，他们并不真正了解 OpenClaw 和自己的需求，更多是想用上“别人都在用”的事物而已。首先 OpenClaw 本身并没有让底层的大模型获得本来就没有的能力，它只是让大模型有了更方便操纵电脑和与用户交互的“手脚”而已。
OpenClaw 能大火真是因为它在这些大模型的“手脚”上做的确实好，让人们感觉有了未来的 AI 交互方式，即《钢铁侠》中的“贾维斯”那样的 AI。但 OpenClaw 的安全问题无需多说，早在年初国外就有很多人提出了，也早有不少项目专门揭露网络中 OpenClaw 不安全的部署实例。而对于自己的需求，很多时候是为了能用上这个工具而制造的“伪需求”。像是我刚开始接触 Emacs，就是去网上抄别人的配置，加各种 “fancy” 的插件和快捷键，幻想自己需要这些功能时就可以“方便”地去使用了。但绝大部分都是实际上从来没用到，即便真有几个功能要使用，其快捷键也早已遗忘，用“麻烦”的方式使用这些功能所带来的时间成本加起来都没有配置他们花的时间成本高。&lt;/p&gt;
&lt;p&gt;所以我对 OpenClaw 的看法其实和我对很多大火过的 AI 产品一样：它们都只是一种工具，不可能用上它就改变了人生，走上了成功之路，还得看自己的需求和使用方式。符合需求就确实能帮到自己，不符合需求就是没有缘分，不必强求使用。&lt;/p&gt;
&lt;h3 id="阴阳公告"&gt;阴阳公告&lt;/h3&gt;
&lt;p&gt;Prime 1 Studio（下文简称为 P1S），是一家日本手办品牌，主要开发和销售游戏、动漫以及影视IP的授权雕像产品以大比例尺寸和复杂场景著称。&lt;/p&gt;
&lt;p&gt;在3月18日，一名ID为“吉克·耶格尔”的闲鱼用户发了一篇帖子，称自己是惠州一家雕像工厂的负责人，所在工厂已与P1S 合作多年，曾代工生产过包括威震天、奎托斯在内的多款热门雕像。他表示，在合作过程中，P1S长期存在欠款情况。
2026年初，双方经过多轮交涉终于决定对相关项目尾款进行清算结清。但在执行过程中，对方却通过提供伪造的汇款凭证，在款项未实际到账的情况下提走了货物。&lt;/p&gt;
&lt;p&gt;到这里还不算有意思，但接下来的才是乐子。针对此事，P1S 也在微博发布了中文公告作为回应，同时也在推特发布的日文和英文公告。在中文公告，P1S 指出我司关联企业的一家合作制造工厂因付款问题对我司关联企业提出单方面主张，相关内容已在社交媒体等渠道被扩散传播，P1S 与该制造工厂并无直接法律关系。但在外文公告中，P1S 明确表示款项已经结清，还称曾“支付超出合同金额的预付款”，而且反指工厂曾施压要求签署不对等合约，公司在被迫情况下接受相关条件。&lt;/p&gt;
&lt;p&gt;这样的阴阳公告肯定是马上被网友指出。而随着工厂方面进一步晒出原始合同、受案回执及银行凭证，称尾款并未到账，舆论开始向工厂一方倾斜，不少网友要求 P1S 给出相关付款证明回应质疑。&lt;/p&gt;
&lt;p&gt;而随着事件持续发酵，越来越多与 P1S 相关的声音也开始出现。比如有声音说这不是 P1S 第一次拖欠公款，也有自称曾在 P1S 工作过，说 P1S 存在压榨员工等问题。&lt;/p&gt;
&lt;p&gt;但在我写稿时看来事件局势仍是“罗生门”。不过中外的阴阳公告确实是十足的乐子了。&lt;/p&gt;</description></item><item><title>2026-02 乐子大赏</title><link>https://fsdx.top/posts/2026-02/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://fsdx.top/posts/2026-02/</guid><description>&lt;p&gt;这个月毫无疑问主要都是过年的事，包括年前的准备和年后的事。也算是度过了一段比较快乐的时光。现在想来，虽然我又年长了一岁，但我却对自己年龄的增长没有什么实感，或许这也是年轻的一个好处。此外，今年过年的天气非常热，甚至在过年时还在穿短袖，完全没有冬天的感觉，这绝对是我往常难以想象的事情。据我在网上看到的信息，广东今年的冬季成为有记录以来最暖的冬季，如果为真，这也算是又一次见证历史了。顺带一提，我今年才发现沙市汽水的“沙市”的发音和汽水的气泡破裂声音十分相近，不知道是否是其名字的来源。&lt;/p&gt;
&lt;p&gt;这个月我先是去通关了仁王2的一周目。具体的想法详见另一篇专门的文章。仁王2本身的优缺点明显，争议颇多，有很多地方值得聊聊。不过我只打通了一周目，而仁王2的多周目刷装备和角色构筑也是很重要的游戏内容，社区内甚至有“仁王2没打到五周目没有资格评论游戏”的说法。这种说法显然是十分可笑的。或许我没玩到五周目没有资格评论刷装备和角色构筑的东西，但我体验到的内容当然可以评论，我的所见所思所感所想当然可以评论。你觉得我的说法有问题应该用你的观点和论证来和我争论，而不是以这种“老玩家的资历”来自恃高人一等。&lt;/p&gt;
&lt;p&gt;之后是补完了星际拓荒的 DLC。相比本体的太阳系，DLC 的故事发生在一个更小的环形世界中。以“光”和“里表世界”为核心的谜题设计很优秀，而最终谜题的知识锁甚至是里世界的 “bug”，在发现时直接惊艳到我了。作为我最喜欢的游戏的 DLC，可以说是伟大无需多言。&lt;/p&gt;
&lt;p&gt;此外我还把《荷鲁斯之乱》系列前四本《荷鲁斯崛起》、《伪神》、《燃烧的银河》、《艾森斯坦号的逃离》都读完了。《荷鲁斯崛起》讲述了荷鲁斯叛乱前的荷鲁斯之子战团和荷鲁斯的状况、《伪神》讲述的是戴文卫星上的荷鲁斯的陨落、《燃烧的银河》则是讲述伊斯特凡三号上的大清洗、《艾森斯坦号的逃离》讲述了加罗将荷鲁斯叛乱传达给泰拉的故事。这些书也是让我对荷鲁斯叛乱的一些大事件从只知晓设定发展到了了解更多细节。然而我想吐槽的一点是：原体和阿斯塔特的强大只存在于设定，在很多地方和普通人类没什么区别。比如《艾森斯坦号的逃离》中加罗把荷鲁斯背叛的消息告知多恩时，多恩的表现是非常愤怒并给了加罗一击，声称加罗在侮辱自己的兄弟并要处死加罗。听到别人说自己信赖的兄弟要背叛时，感到难以置信和愤怒是可以理解的，而且这样的塑造更能体现原体间的兄弟情深。但更理性的做法显然是先囚禁加罗，直到能确定消息真伪时再做决定。原体的描写都是如此，阿斯塔特的描写就更不用多说，一个个都是设定上多么超越凡人，实际做事的描写都和普通人一样，甚至很多时候都缺乏理性。&lt;/p&gt;
&lt;p&gt;不过，换个角度想，在战锤 40K 的世界观下谈论理性本身就是有点奇怪的事情……毕竟什么不合常理的东西都可以用亚空间解释，亚空间的神明的力量来源都是极端的情感，40K 的世界就是个唯心的世界。以帝皇是否为神的问题为例，并不是因为帝皇是神明所以信徒崇拜他，而是因为信徒们拜帝皇为神所以帝皇是神明。用现实世界的理性标准来讨论这样的世界观下的角色行为或许就不太合理了。&lt;/p&gt;
&lt;p&gt;当然还可以从另一种角度出发，那就是作者们（这四本书并不是同一个作者写的）这样处理是特意的，实际上是想体现无论是原体还是阿斯塔特本质上都和普通人没什么区别？如果这是真的，那这样的处理堪称妙手：它和荷鲁斯叛乱的一大原因形成了巧妙的呼应。荷鲁斯叛乱的原因有很多，无论是在原体和帝皇间微妙的父子关系、《荷鲁斯崛起》中重点描绘的荷鲁斯本身的迷茫和自我怀疑、还是阿斯塔特们对帝皇远离他们的不满等等。而和这种处理形成呼应的原因就是阿斯塔特们针对凡人的优越感。部分阿斯塔特因为自身的生理机能远超凡人，自恃自己优于凡人。在帝皇放弃对大远征的领导后凡人政府因为征税、宣传等缘故“干涉”大远征，影响阿斯塔特们的战争，而这批阿斯塔特就对这种状况十分不满，认为应该由阿斯塔特来领导，甚至主宰凡人。而根据上述描写，这批阿斯塔特本质上并没有优于凡人，更凸显其想法的荒谬。&lt;/p&gt;
&lt;p&gt;最后是《恶搞之家》第24季也在本月开始播出了。第一集的质量就很不错，Stewie 和 Lois 的组合不仅弥补 Lois 一直没有听过 Stewie 说完整的话的遗憾，满足了粉丝对 Lois 对一直迷恋她的 Brain 的看法的好奇，更是碰撞出类似 Stewie 和 Brain 组合般的火花。没有生硬矛盾和“包饺子”的强行和解，而是用笑话与叙事平衡得恰到好处的舒适节奏来更加深入地阐述 Stewie 和 Lois 之间怪异的母子关系，并给出了 Stewie 一直想杀 Lois 的设定的一种解释。这样有意思的内容和优秀的观感在现在的《恶搞之家》中已经很难看到了。《恶搞之家》第一季在 1999 年播出，距今已经 27 年了。对于这般长寿的系列，剧集的质量下滑是正常的，但我还是希望能看到更多有意思的《恶搞之家》。截至本文写作时，我已经看到了第 6 集，目前这一季的剧集表现都挺不错，平均质量比前几季要高不少，希望后续能保持住现在的水平吧。&lt;/p&gt;
&lt;p&gt;而在个人生活之外，引起我关注的一大事件就是春节时分江苏和湖北发生的重大烟花事故，都造成多人遇难。这些事故无不令人痛心，也再次敲响了围绕春节烟花燃放安全的警钟。关于春节烟花燃放的禁与放，一直以来争议不断。虽然确实有不少地方施行过禁止令，但众所周知，因监管力量有限，偷偷燃放的现象难免层出不穷。全面禁止烟花燃放显然是不现实的，那么，如何才能做好烟花燃放的安全工作？这需要监管、行业和公众共同探索更务实的方案。&lt;/p&gt;</description></item><item><title>仁王2——“失败的类魂”走出的另一条路</title><link>https://fsdx.top/posts/%E4%BB%81%E7%8E%8B2/</link><pubDate>Fri, 06 Mar 2026 00:00:00 +0000</pubDate><guid>https://fsdx.top/posts/%E4%BB%81%E7%8E%8B2/</guid><description>&lt;p&gt;“仁王的核心不是类魂”，这是我早在玩过仁王和魂系列前就听过的说法。因此我在玩仁王2时不断提醒自己不要按照黑魂的思路和玩法去玩。但是在游戏一开始的新手教学就直接把轻重攻击、防御、闪避、架势、残心、完美残心、妖怪化、妖怪技、妖反等等游戏战斗中极其重要的系统一股脑塞给了我，并在新手关的开头放一个对新手而言困难的 BOSS 牛头鬼，我很难不把本作的战斗玩成类魂。好吧，其实我一开始就明白牛头鬼没必要打并将牛头鬼给绕过去了，但这并不妨碍我把本作的战斗玩成躲闪或防御后抽空隙砍怪几刀的类魂“滚A”玩法。此刻，我还不理解为什么说仁王的核心不是类魂，于是我接着玩了下去。&lt;/p&gt;
&lt;p&gt;之后，我体会到敌人和数值设计的恶意：看着强大的敌人附近一定会有远程怪等着阴你一手、本身因为 AOE（范围攻击） 和出手韧性的匮乏导致战斗系统难以处理多打一的情况却老是喜欢形成多打一（点名批评夜刀神，进常暗前没处理掉它的小蛇头就会在常暗后召小蛇多打一）、中甲的防御值吃一下红光直接半血没了；发现了关卡箱庭的无意义近路；看到了仁王2有大块红黑色块强奸你的眼睛的辣眼美术。我明白了：如果以类魂游戏的标准来衡量，仁王2绝对是个失败的作品。这就是我前期的游戏体验。&lt;/p&gt;
&lt;p&gt;我知道，仁王优秀的地方在它的动作系统，这也正是它和类魂最大的差异。我理解，前期技能点不足，导致武器和角色的招式不足，动作系统无法体现。所以，我选择了继续玩下去，并在中期开始主动地去探索动作系统，深入研究那些新手教学就一股脑塞给我的，但在前期根本用不上的概念。于是我才发现，仁王的动作系统和战斗系统有着和类魂游戏截然不同的逻辑。而这，也正是仁王2这个“失败的类魂”仍有无数玩家为其“辩经”的一大原因。&lt;/p&gt;
&lt;p&gt;仁王的动作系统有两大核心要素：架势和残心。首先是架势。架势分为上、中、下三种（还有一种特殊的收刀架势，在战斗上只有特定武器会用到，因此不谈），不同架势的轻重攻击模组，闪避动作都是完全不同，且有些武技只能在特定架势使用。而在数值设计上架势系统采用了经典的风险与收益的相关的设计：上段架势攻击力最高，但速度最慢且消耗精力最多；下段架势则相反，攻击力最低，速度最快且消耗精力最少；中段架势则处于中间。架势可以随时切换，甚至是在招式的动作发生的过程中也是可以切换的。正是因为其随意切换的灵活性，架势系统极大地丰富了战斗中同时可用的招式和动作的数量，这是构建高深度动作系统的基础——只有当战斗中可选动作足够丰富，玩家研究“什么情况使用什么动作”、“动作间如何组合”的空间才足够大。魂系列正是相反的例子：它有着多种多样的武器，不同武器间的轻重攻击模组、战技等各不相同，因此魂系列作品的招式和动作的数量是充足的。但是受限于魂系列的装备重量、精力、角色加点和武器强化的资源限制等因素，正常战斗中只会使用一两种武器，因此实际上能在战斗中同时使用的招式和动作的数量是非常匮乏的。这也是我觉得魂系列的动作系统广度足够但深度不足的一大原因。&lt;/p&gt;
&lt;p&gt;然后是残心，这个更是聊起仁王就无法绕开的话题，早已成为了仁王的标志。所谓残心，就是在攻击施放完后一段时间内按下特定的按键就可以恢复精力，兼具了精力恢复、取消后摇、重置派生的功能。取消和重置派生在任何动作系统中都有极其重要的地位，这里不再详谈。而在精力管理上，残心是个主动获得精力的手段，这在魂系列中是几乎没有的。此外，攻击施放完时立刻残心只能恢复较少的精力，必须再等一会后残心才能恢复更多精力。这再次体现了风险收益的设计思路：快速残心能更快地使出下个动作，但牺牲了精力恢复量；而慢速残心获得了更多的精力恢复，但失去了更早的行动时间。因此残心的节奏不仅影响自己的精力，更影响自己的战斗的攻击节奏。相比魂系列在动作后只能被动地等待精力恢复，仁王通过加入残心系统，从而产生更多多变的攻击节奏与精力管理操作。实际上到了后期（多周目）有词条和道具的支持，很多时候精力是几乎无限的，而招式不能克服后摇过长或者是缺少衔接，都会让战斗的节奏出现很大的缺口，使得战斗陷入被动，所以对战斗节奏的把控是比对精力的管理更为重要的。&lt;/p&gt;
&lt;p&gt;除了普通的残心，仁王还对残心进一步进行了扩充，引入了闪避残心的流水、切换武器残心的紫电等等。在这之中最为关键的就是流转——用架势切换代替残心（架势切换的组合键和残心的按键有重合）就可以恢复更多精力。流转对于快速残心来说弥补了精力恢复量较小的缺陷，对于慢速残心则能让精力恢复更多，某些时候甚至能超过原本的精力消耗量，实现电表倒转（只靠残心本身是无法让精力恢复量比消耗量多的）。如此高的收益让玩家主动使用流转，从而鼓励他们使用不同的架势，思考架势的使用、不同架势和招式的组合与联动。可以说，正是流转将残心和架势这两个看似不相关的系统天才般结合在一起，形成了游戏界独一份的战斗体验。当玩家学会了这套战斗系统，了解自己武器的性能和敌人的性能，基本能完成这样的一种战斗循环：首先是立回阶段，合理躲闪或防御敌人的招式，以自己可以随时调节的攻击节奏，压制敌人的攻击节奏，通过精力管理和节奏控制将节奏的压制转变为精力的压制；然后就是压制阶段中不断消耗敌人精力直至耗空；最后就是对没有精力的敌人随意输出的打木桩阶段。正是这些攻防节奏变化的立回和压制带来了仁王战斗那无与伦比的爽快感。&lt;/p&gt;
&lt;p&gt;这套战斗思路我直到中后期才彻底打通，以我一周目后期用手甲打人形敌人的思路为例，先使用取钟馗讨恶鬼快速近身并迫使敌人防御，然后通过“连绵”系统以招式取消招式的特性来无缝衔接招式，从而消耗敌人精力并叠“连绵”的增加伤害的 Buff，最后打完精力后就是打桩。（不过我只玩了手甲，其他武器不像手甲，不能用武技取消武技，可以说是离开连绵就不会玩仁王了）当我发现即使是初见 BOSS，我也能在略微熟悉招式后就轻而易举地压制并击败它，我感觉仁王2开始成为“爽游”了。&lt;/p&gt;
&lt;p&gt;然而，这种爽快感并非贯穿始终。每当我想要尊重仁王2时，它就用一坨大便呼我脸上告诉我玩的是仁王2。超大体型 BOSS 的设计直接就是给我恶心到了，长壁姬强制多打一，当你在专心打一个小眼球时你绝对不知道你的背后有多少眼球等着远程攻击阴你；而太一法师则是经典因要攻击的部位和敌人攻击的部位不一致导致难以看到敌人的攻击的问题。诚然这些超大体型 BOSS 都有简单的打法，比如太一法师躲在它的胸前，它就无法打到你，但这本来就不应该这样设计。然后是美术更刺眼了，到后期角色身上 Buff 和道具等特效的增多，且这些特效缺乏调整，导致每次战斗都有大量特效形成光污染。而场景的红黑色块污染更是不减反增，特别是进入了常世后更是对眼睛的反人类折磨。本身常世就会有一个黑白滤镜，再叠加某些场景本身光照问题导致场景几乎伸手不见五指。而且投技的特效也是黑白的，所以有时你要在黑白的滤镜下躲黑白的敌人的黑白特效的投技。而地图设计上无意义近路等让人感叹何意味的箱庭设计也是层出不穷，关卡设计也真是让人无言以对。&lt;/p&gt;
&lt;p&gt;当我结束了游戏的一周目后，回看我的旅程，我彻底地理解了为什么说“仁王的核心不是类魂”。早从仁王1开始，仁王就绝对学习了《黑暗之魂》，但可以说《黑暗之魂》的精巧箱庭、宏大美术等优秀之处一点没学到，反而只学了低容错高难度、存档点复活敌人、恶意放怪等皮毛。如果仁王是类魂，那它绝对算失败的类魂。但仁王在动作和战斗系统的创新却反而让其走出了另一条路，让我们看到了动作游戏的又一种可能性。时至今日，仁王系列刚刚推出了第三代（我还没玩），并诞生了将仁王的系统拆开和简化的《卧龙》、《最终幻想起源》、《浪人崛起》等作品。《仁王3》能否成为实现忍者组“500万销量大作”的美梦的杰作？我不知道。但我希望仁王探索出的这一条路能有人继续走下去。&lt;/p&gt;</description></item><item><title>2026-01 乐子大赏</title><link>https://fsdx.top/posts/2026-01/</link><pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate><guid>https://fsdx.top/posts/2026-01/</guid><description>&lt;p&gt;这个“乐子大赏”是我今年打算写的东西，本质类似于月度总结，分享这一个月我玩的、看的、经历的一切中我认为有意思的，值得拿出来写一写的事情。虽然叫“乐子大赏”，但里面的内容不能算是“乐子”，至于为啥叫“乐子大赏”，大概是致敬那位很久不更新正统“乐子大赏”的大人吧。&lt;/p&gt;
&lt;p&gt;这个月基本就是考试，考完试放寒假后我的精力就主要用在街霸6和GTNH上面。街霸6 是老早之前就购入并小体验一会，和 GGST 一样都是为了体验格斗游戏而玩的作品。这次打算比较久地玩玩一款格斗游戏，因此选了国内社区最大的街霸6。我是觉得格斗游戏最好选择社区最大的，一方面是活跃玩家多，无论是匹配还是约战都比较容易，毕竟格斗游戏最终还是要和人打，而非一直在练习场；另一方面则是社区产出的内容很多，无论是新手教学、角色和招式对策等教程性质的内容还是街霸6 中的超级爆爆回，老桑等娱乐性质的内容都有很多。我街霸6体验各种角色体验了一圈最后选择了肯，道服系的操作逻辑让我玩起来更舒服，而肯的招式也很酷炫，手感也不错。不过在半年前肯的强度从“要么肯练，要么练肯”削弱成了一个“正常角色”，或许不是一个较好的入坑时间？其实我倒是无所谓，毕竟对于大多数玩家来说，个人的实力水平差距是可以比角色间的强度差距更重要，所以选择自己喜欢的角色并坚持练习是最好的。&lt;/p&gt;
&lt;p&gt;GTNH 是 Gregtech: New Horizons 的缩写，Minecraft 的一款科技向的模组整合包。Minecraft 我在小时候玩过原版，现在早已很久不玩，对于各种模组或是整合包也没怎么接触。而之所以突然玩这个主要是在 B 站刷到了&lt;a href="https://www.bilibili.com/video/BV1r6yHB6EAd/"&gt;这个视频&lt;/a&gt;，瞬间就被吸引了。这种自动化流水线类的游戏一直是我很喜欢的类型，所以我立刻决定入坑。但入坑后不久就发现 GTNH 不只是这种自动化流水线类，起码在前期，整合包的生存压力和战斗压力比原版大很多，要完不少和自动化发展少的内容，而且能建设的产线自动化程度很低，不像异星工厂等在游戏刚开始不久就能搭建自动化程度不低的产线，并限制玩家必须发展自动化才能往后发展。异星工厂这样的设计让玩家能尽早地接触自动化的内容，很快地体验到这种优化设计的魅力，这是我觉得 GTNH 的自动化流水线类的游玩内容在前期的设计不足，不过我也只玩到前期的 LV 阶段，是游戏的第三个阶段，对于中后期的内容还不能妄下断言。&lt;/p&gt;
&lt;p&gt;不过 GTNH 是个难度和肝度都很大的科技向整合包，完整玩完所有阶段的游戏时长可能要花上几千小时，对于从没接触过科技整合包的我来说或许不是个好的选择。幸好 GTNH 的任务书主要内容的指引完善，还有着活跃的社区，维护 GTNH WIKI 等网站、产出优质内容、帮助和引导新玩家，开荒一定能顺利进行的吧（不知从何而来的自信）&lt;/p&gt;
&lt;p&gt;这个月也开始读战锤 40K 的小说《荷鲁斯之乱》系列。战锤 40K 的“落后”的科幻（一战风格）、宗教和科技杂糅、深邃绝望黑暗的世界观和设定算是我的心头好。不过我只能算是个云锤，只在看一些剧情和设定的视频来了解 40K。现在打算读一读它的小说，先选了对整个 40K 故事举足轻重的大事件“荷鲁斯之乱”的小说来读。目前只读了开头的一两本，就发现了一个问题：在故事的时空和人物等发生变化时缺乏过渡，需要读者通过上下文确定具体的时空和人物，添加了阅读时的心智负担。比如 A 和 B 对话完就直接描述人物 C 在另一个星球上发生的事情。这种写法更适合影视作品的文案，这样观众可以通过画面的变化确定故事的时空和人物是否变化，而在只有文字信息的小说这样写就不合适了。&lt;/p&gt;
&lt;p&gt;我在回顾去年更的内容中感觉丝之歌那篇并不好，虽然核心内容是我从一个普通玩家的角落来考虑这个游戏，但太过缺乏我自己的感受，缺乏人情味。去年更的内容也没多少，倒是符合我想写就写，想不写就不写的心态，不知今年又会怎样。&lt;/p&gt;
&lt;p&gt;一月的其他东西关注较少，现在写草稿时想起的也就只有几个。首先是亚历克斯无保护徒手攀爬台北101大楼，虽然比起他攀爬酋长岩，震撼感稍弱了一些，但他的这一壮举仍然是值得夸赞的。然后是 clawbot，刚出不久就在 AI 圈和 CS 技术圈大火，但和大多数 LLM 产品一样，刚出时的炒作气氛太浓，还需要时间观察和验证。最后是 PTCG 在靖国神社办活动，虽然在一月初就有过宣传，不过到月末实际搞活动才在国内有热度这种“消息的滞后性”也是见怪不怪了。对于这件事本身没啥好说的，靖国神社算是中日关系的底线之一，PTCG 在国内必然迎来重大舆论危机，观察后续怎么处理吧。于私来说我觉得，也希望老任别被禁，毕竟任天堂的游戏还有不少想玩的。&lt;/p&gt;</description></item><item><title>丝之歌——能让你发笑的“空洞骑士”</title><link>https://fsdx.top/posts/%E4%B8%9D%E4%B9%8B%E6%AD%8C/</link><pubDate>Sat, 13 Sep 2025 00:00:00 +0000</pubDate><guid>https://fsdx.top/posts/%E4%B8%9D%E4%B9%8B%E6%AD%8C/</guid><description>&lt;p&gt;丝之歌是一个能让你玩地发笑的“空洞骑士”，但是这个笑是一种无语的笑。&lt;/p&gt;
&lt;h2 id="青出于蓝的空洞骑士"&gt;青出于蓝的空洞骑士&lt;/h2&gt;
&lt;p&gt;为什么说丝之歌是“空洞骑士”，那是因为丝之歌的大多数优点是和前作空洞骑士一脉相承的。而前作空洞骑士的优点无须我过多赘述，互联网上早已有许多赞赏和分析的内容。在这些优点上，丝之歌也做了自己的进步。在优秀的美术基础上，丝之歌还添加了很多前作所没有的小细节，例如大黄蜂的转身、冲刺时以不同方向和力度进行跳跃时的不同动作、撞墙的反应等，这些丰富的细节足以让我这种前作玩家感到极大的惊喜。机制上飞钩作为新的能力设计的不错，能为移动、探索、战斗等诸多方面服务；大改的纹章系统允许玩家更换攻击模组可以说是很大胆的改进，允许玩家根据不同的情况和自己的喜好选择不同的纹章，让游戏体验能更加丰富和个性化。工具的加入使玩家的攻击手段更加多样，丰富了玩家的战斗体验。而剧情上整体故事还是很薄弱，但第三幕最后也能从我这种期待多年的前作玩家中获得一些情怀分。而且相比前作，本作的体量近乎翻倍，夸张的游戏内容量让仅仅 76 元的国区售价（Steam）的本作物超所值。丝之歌毫无疑问是个合格的空洞骑士的续作。&lt;/p&gt;
&lt;h2 id="变本加厉的空洞骑士"&gt;变本加厉的空洞骑士&lt;/h2&gt;
&lt;p&gt;那为什么说丝之歌能让你发笑？这则在于丝之歌的缺点上。丝之歌的缺点也不少，首先便是中文本地化的质量问题，既然 Team Cherry 已经宣布会进行修改，那这里就不过多赘述。其次是反馈循环失衡，正反馈缺失而负反馈过多。在负反馈方面，大黄蜂的血量设计和前作相同，但在前期就能遇见两伤怪，而两伤怪即使是前作在后期也是比较少见的；而在回血上本作是要打满 9 刀有回三血的能量，前作还是 3 刀有回一血的能量，看似相同，实则更苛刻，毕竟这些能量有部分可能要去释放技能，所以能量是严重缺乏的，因此流程的容错率比前作低很多，玩家在探索时会长期处于一种高压的状态，此时很多比如辛苦到达的椅子（存档点）是陷阱椅子等情况带来的负反馈会被玩家放大。而且这样的高压下失败惩罚也及其严重，让人觉得就是单纯的恶意来破坏玩家体验的，例如不少 boss 都是失败就要从跑一大段跳跳乐的三百六十五里路，其中点名批评伟大的格洛这个 boss, 没有发现隐藏椅子的话失败就要重新跑腐汁泽这个令人恶心的地图，而且还要打一场不少粪怪的连战，这种失败惩罚带来的负反馈之大足以让人弃坑游戏了，能坚持下来的玩家往往也只能无语发笑。&lt;/p&gt;
&lt;p&gt;而在正反馈方面，本作不少连战跳跳乐都没有很好的奖励，辛辛苦苦打过连战却发现这只是开了可能之后不会走的近路，钱都没怎么获得；而且本作还有很多无意义的岔路或者单纯放个尖刺等坑人的地方，跑得快点到下个房间就掉进刺中、看到下面有个坑洞还以为有什么下去一看就是刺的情况不胜枚举。这样的反馈循环失衡不会让玩家进入一种体验越来越好的正向循环，而是越来越差的负向循环：想想看顶着上述低容错率和高失败惩罚下提心吊胆地，中间还掉了几次魂地来到了一个房间，一看还是个连战，而且没有捷径导致打输了之前的经历都要重来一遍，好不容易通过发现没什么奖励，到了下个椅子一看还因为之前丢光了钱，不够钱解锁，看着自己仅存无多的血量，继续往前吧前面的路毫无信息可能一不小心就失败，回到上一个椅子吧走过的路也是凶险万分难以安全通过，再想想无论哪种选择只要失败中间路途的艰难险阻都要重新经历一遍，这时玩家在绝望心理下无语发笑肯定不难理解的。&lt;/p&gt;
&lt;p&gt;除了反馈循环的失衡，还有其他因素导致游戏体验变得痛苦，例如在本作的两大核心内容——跳跳乐和战斗中，战斗除了上述的低容错外还有大量小怪加入了十分烦人的后撤步动作，这些小怪都容易让人打得及其恼火，这种心态下玩家又会更容易失误，进一步降低了容错率，提高了挫败感；而跳跳乐中本作很多的跳跳乐都是在一个黑灯瞎火的环境，且平台间距做得较远，玩家难以获取路线的信息，不知道下一步去哪，总是要用血量作为学费来探路。平心而论，本作的绝大多数跳跳乐没有移动平台等复杂机制、战斗也没有很难处理的敌人招式，绝对难度不大，经过不长的一段时间的练习就能轻松通过，但上述设计却让这段练习时间带来的挫败感十分强烈，与上面的反馈循环失衡导致的放弃练习的沉没成本高，通过挑战的正反馈不足，进一步让游戏体验更加痛苦。诚然，后撤步动作的大量加入和平台间距远的原因或许是因为飞钩、滑翔等能力设计让主角的追击性能和横向移动性能高，因此要在挑战层面做出相应的调整来维持挑战性，但这种调整做法无疑是不够好的。&lt;/p&gt;
&lt;p&gt;像上述跳跳乐和战斗的调整这样初衷是好的，但执行坏了的问题还有不少。比如经济系统，就我的体验而言，丝之歌的缺钱问题还是挺严重的，获得钱的来源和量都比较少，但消耗钱的地方和量都相比前作有增无减，这些初衷是为了叙事而服务，钱的形式是念珠，念珠只有会有信仰的人形怪有掉落，掉落量和信仰程度、生活水平等有关，比如圣堡工厂的工人掉落的很少，而圣咏殿的贵族掉落较多，且圣堡工厂的不少椅子都要收费。这很好地体现了底层工人的生活处境和圣堡对底层工人的剥削，但这种做法并没有做好非文本叙事和玩家体验之间的平衡。&lt;/p&gt;
&lt;p&gt;还有纹章系统的修改，虽然我之前在讲优点是讲了这种改进能允许玩家根据不同的情况和自己的喜好选择不同的纹章，但实际情况是很多时候玩家面临的都是跳跳乐，连战等混合场景，而纹章只允许在椅子中修改，这使得适用不同场景的灵活性大大降低，很多玩家还是会固守一个自己熟悉手感和模组的纹章。而且相比前作根据费用平衡护符的强度，让玩家选择不同护符，本作护符只有颜色而没有费用之分，不同颜色要安装到对应颜色的槽位，这种改变实际反而降低了护符搭配构筑的多样性。例如同样是在探索时不会摘下的指南针护符，前作只用一费，还有好几费的空间允许自由搭配，而在本作就是占了可能本就为数不多的黄色槽位，构筑空间就大大减小了。而且本作中不同颜色的护符强度差异太大，例如黄色护符除了指南针和磁石骰基本都是不会使用的废物，而蓝色护符例如碎面甲、注丝套件等好用的护符太多，这种失衡会进一步加剧槽位紧张的问题。&lt;/p&gt;
&lt;p&gt;而除了上面的问题外，作为类银最重要的地图设计和流程设计丝之歌也存在的一定的问题。地图上区域内连接做得不算好，不同点位缺少捷径等连接，甚至有些捷径更是几乎不会再走一遍，比如腐汁泽、猎者小径、沙噬虫道、罪途等地区，很多时候重新经过这些地区都要重走大部分内容，而要重走这些区域的次数也不少。上面所述的很多负反馈的问题如果有比较好的区域内连接设计的话是可以得到很好的缓解的，比如在一些困难的挑战节点和存档点间设计比较安全的连接就可以降低玩家重复挑战的成本，避免重跑三百六十五里路。&lt;/p&gt;
&lt;p&gt;而在流程设计上首先是成长的设计有问题，开头比较长的时间主角得到的成长都很有限，长期的探索下玩家并没有主角变强，自己游玩地更加轻松的感觉，这也是一种正反馈的缺失；而且对于高难度的后期区域在入口处没有用能力锁等硬锁阻碍玩家而只是单纯的上强敌的难度软锁或者干脆不明确上锁，缺乏明确的引导或限制让在前中期的玩家明白这应该是之后来的地方。例如猎者小径在区域入口使用加斯卡尔禁卫作为强敌的难度锁，本心是想让玩家在获得冲刺能力后在再来；而罪途并没有上任何锁来限制玩家进入，只用较难的敌人和路线让玩家获得更强的移动性能再进入。这些困难实际上并不能很好地阻碍玩家，特别是经历过魂类游戏热潮的当代游戏玩家们早已对低性能角色打高性能敌人的高难度战斗见怪不怪，往往会硬着头皮强行攻克，例如艾尔登法环的大树守卫就没有很好地作为强敌的难度软锁来引导玩家去其他地区。其实是可以设计一些看似能力锁，但实际可以通过特殊的技巧通过的伪硬锁来即限制玩家进入，又保留破序的可能。这样的硬锁缺失会导致玩家过早进入不是为当前性能的主角设计的区域，比如进了第一幕就能进罪途并顺路进入腐汁沼的一部分，而这些区域在第一幕的主角性能下是十分困难的。但在进入这些区域并存档后，玩家就连离开都很困难，毕竟地图设计上区域内连接没有存档点和区域入口间方便安全的捷径，而且回去的路也是困难重重，若是失败丢魂更是前功尽弃。&lt;/p&gt;
&lt;p&gt;而真正令我无语发笑的其实是因为上面的不少问题都是前作空洞骑士中就已经存在的问题，但是丝之歌不仅没有较好地改进，反而变本加厉了。地图设计中区域内连接的缺乏前作也有比如王国边境，但本作更多；摸黑跳跳乐前作也有比如深巢，但本作更多；挑战之前三百六十五里路前作也有比如三螳螂，但本作更多；硬锁的缺失前作也有比如三螳螂左转深巢，但本作更多……上述的这些缺点实际上会产生一种相互加剧的负向循环，例如流程设计让玩家进入高难区域，本身的低容错带来的高负反馈更进一步加剧，而地图设计中区域内缺少捷径让玩家有更高的失败成本……这种情况下变本加厉导致的缺点放大往往会量变导致质变，从而使得给玩家的苦难和折磨更加深刻。&lt;/p&gt;
&lt;h2 id="让人玩笑的空洞骑士"&gt;让人玩笑的空洞骑士&lt;/h2&gt;
&lt;p&gt;实话实说，虽然我用很多的篇幅讲述了丝之歌的缺点，但在我的游戏体验中其实并没有令我印象深刻的折磨和苦难，回忆游玩历程，真正让我难以忘怀的是我游玩时的欢乐和爽快。但这是建立在我在前作中早已通过了最难的跳跳乐——苦痛之路和顶级战斗挑战——五门的熟练度和技术基础之上。但对于丝之歌，前作的高口碑和高销量、常年的续作等待带来的热度等等的因素早已使得丝之歌不再会是前作那样发售首月仅 6 万份的小众作品，这从发售之时 Steam 等游戏商城的服务器出问题的热况就可见一般。然而这样的热度不会改变一个事实——空洞骑士不是适合大多数人的游戏，而变本加厉的空洞骑士只会更加小众。&lt;/p&gt;
&lt;p&gt;七年的等待后，在丝之歌中我看到的不是对于前作空洞骑士的设计范式的突破性创新，只是在空洞骑士的框架下的进步，而对空洞骑士的缺陷却又大多是变本加厉而非改善。这样一款极端化的空洞骑士是否是玩家们在七年的等待中所希望的？对我而言，绝对不是。丝之歌还是太像前作空洞骑士了，但前作已经是七年前的老游戏了，七年的等待带来的是极端化的，变本加厉的空洞骑士，这只会让我无语发笑。&lt;/p&gt;
&lt;p&gt;或许是前作 1500 万的销量使得 Team Cherry 并不需要为财富担忧，从而在续作中做一个让自己开心的游戏内容，而不是选择为了市场选择大众化。我敬佩这种为自己而做游戏的独立精神，但这样的精神中诞生的游戏往往不会是迎合大众口味的游戏。既然他们选择了做变本加厉的空洞骑士，那在如此的游玩热度中玩家社区的争议和骂名就要平心静气地接受，最好做出适当的优化。回看 Team Cherry 在 2020 年接受的采访，虽然两伤敌人会在早期出现等等设计那时就有提出，但他们说的丝之歌是“新人入门的不二之选”显然是个已经被他们遗忘的承诺。不知当他们回想过去的这个承诺，再看看今天的争议时，是否也会黯然发笑。&lt;/p&gt;</description></item><item><title>终端 (Terminal), TTY 和 Shell</title><link>https://fsdx.top/posts/%E7%BB%88%E7%AB%AFterminal-tty-%E5%92%8C-shell/</link><pubDate>Sat, 23 Aug 2025 00:00:00 +0000</pubDate><guid>https://fsdx.top/posts/%E7%BB%88%E7%AB%AFterminal-tty-%E5%92%8C-shell/</guid><description>&lt;p&gt;在使用计算机进行编程相关工作时常常要接触到终端，而在使用终端的过程中难免会接触到 Terminal, TTY 和 Shell 的概念，这篇博客就是我对这些概念的学习和理解的整理。&lt;/p&gt;
&lt;h2 id="打字机"&gt;打字机&lt;/h2&gt;
&lt;p&gt;现在人们和计算机进行交互的硬件设备除了鼠标，最广泛使用的就是键盘了。然而键盘的历史其实比通用电子计算机还要久远。早在通用电子计算机还没出现的 19 世纪 60 年代，美国人斯托夫·拉森·肖尔斯就发明了世界第一台实用的机械打字机（单论自动打字机器的历史记载很早就有，但实用意义上的真正打字机的发明还要等到肖尔斯），而键盘正是打字机的一大重要组件，其作用和今天类似：接受并告知系统用户的输入是什么。&lt;/p&gt;
&lt;p&gt;而后随着第二次工业革命带来了电，打字机也发展出采用电信号的电传打字机 (Teletypewriter, TTY)。在电传打字机诞生的早期，它的主要用途和通信设备连用，比如发电报等。之后随着 20 世纪 50 年代早期计算机的发展，人们将电传打字机被改装成计算机的输入设备，电传打字机成为了和计算机进行交互的重要硬件设备，之后逐渐演变成今天的键盘。&lt;/p&gt;
&lt;p&gt;虽然打字机最后被计算机取代，但它的遗产即使是在当今的计算机中也无处不在：TTY 这个名词就是来源于电传打字机的英文缩写、最广泛使用的 QWERTY 的键盘布局早在机械打字机时代就已经产生、ASCII 码作为基础字符集的普及和串口通信的协议和接口的形成等也离不开电传打字机以及回车 (CR) 和换行 (LF) 的不同。&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;回车 (CR, Carriage Return) 是将打字机中在纸上打印字符的打印头移到行首，一般采用 &lt;code&gt;\r&lt;/code&gt; 表示。&lt;/li&gt;
&lt;li&gt;换行 (LF, Line Feed) 是将打字机的纸张向上移动一行，一般采用 &lt;code&gt;\n&lt;/code&gt; 表示。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在实际文件中，Windows 系统采用的 Dos 风格换行符是 &lt;code&gt;\r\n&lt;/code&gt;, Linux 采用的 Unix 风格换行符是 &lt;code&gt;\n&lt;/code&gt; (同时包含换行和回车两个作用), 而 MacOS 早期采用的换行符是 &lt;code&gt;\r&lt;/code&gt;, 之后改为了 Unix 风格 &lt;code&gt;\n&lt;/code&gt;, 正是这些换行符的差异导致跨平台文件读写可能导致问题，比如在 Linux/Mac 中打开 Windows 的文件可能发现每行结尾可能显示 &lt;code&gt;^M&lt;/code&gt; 字符，这正是 CR 的显示形式。还好现代的编辑器往往都提供了自动识别和转化换行符的功能。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="终端和-tty"&gt;终端和 TTY&lt;/h2&gt;
&lt;p&gt;终端 (Terminal), 简而言之就是人类和计算机进行交互的设备。作为输入设备，终端能解析用户的输入并告知计算机；作为输出设备，终端能够给用户显示输出结果。在计算机发展早期，TTY 和物理终端是几乎等价的概念。在现代计算机中，终端往往是指虚拟终端，TTY 是操作系统中对终端的一个抽象层，负责处理用户键盘输入和屏幕输出，还处理包括输入缓冲、回显（Echo）、信号（如 Ctrl+C 终止进程）机制、输入和输出通过串行线路传输等底层交互细节。&lt;/p&gt;
&lt;p&gt;实际上，在当今的图形化界面中，我们接触更多的终端往往还是终端模拟器，比如 MacOS 或 Windows 的“终端”、&lt;a href="https://github.com/kovidgoyal/kitty"&gt;Kitty&lt;/a&gt;、&lt;a href="https://github.com/alacritty/alacritty"&gt;Alacritty&lt;/a&gt; 等。终端模拟器的作用正如其名，是模拟 (物理) 终端的功能，提供输入和输出的交互。此外，一些对终端有更深入接触的人必然会了解到诸如 ssh 的远程会话或者诸如 tmux 的终端复用器。而上述的终端模拟器、远程会话和终端复用器其实现 (Linux 中，其他操作系统的实现我并不了解) 还离不开另一个重要概念，也就是下面要讲的伪终端。&lt;/p&gt;
&lt;h3 id="伪终端"&gt;伪终端&lt;/h3&gt;
&lt;p&gt;伪终端 (PTY) 是操作系统内核对终端功能的软件模拟，它允许程序在不依赖物理终端硬件的情况下，提供与终端相同的交互行为。其实现包含两部分：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;主设备 (PTY Master，ptmx): 连接到终端模拟器、终端复用器等，负责管理和从设备以及主设备连接的终端模拟器等的输入输出的数据交互。&lt;/li&gt;
&lt;li&gt;从设备 (PTY Slave, pts): 连接到 Shell 等应用程序，行为和物理终端一致，负责管理和连接的应用程序的输入输出的数据交互，可以有多个从设备会话独立运行。&lt;/li&gt;
&lt;/ul&gt;
&lt;!--listend--&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;以在终端模拟器中使用 ls 命令为例：
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;1. 用户在终端模拟器输入 ls 后按下回车，终端模拟器获取用户输入并将输入数据发送给主设备，主设备再将输入数据发送到从设备。
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;2. Shell 从从设备读取并解析输入数据，执行 ls 命令，将程序的输出数据写回从设备，从设备再将输出数据发送给主设备。
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;3. 主设备接收到从设备的输出数据并转发给终端模拟器，终端模拟器解析输出数据，将结果显示在屏幕上。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;关于伪终端更详细的内容可以通过 Man 手册 &lt;code&gt;man pty&lt;/code&gt;, &lt;code&gt;man pts/ptmx&lt;/code&gt; 查看。&lt;/p&gt;
&lt;h3 id="tty-文件"&gt;TTY 文件&lt;/h3&gt;
&lt;p&gt;在 Unix 的一切皆文件哲学下，TTY 被抽象为一种特殊的设备文件，比如在 Linux 中这些文件就是 &lt;code&gt;/dev/&lt;/code&gt; 下一系列名字含 &lt;code&gt;tty&lt;/code&gt; 的文件，其中包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/dev/tty[NUMBER]&lt;/code&gt; 表示虚拟终端，常用于用户登录会话，例如登录图形化界面通常使用的就是 &lt;code&gt;tty1&lt;/code&gt; 或 &lt;code&gt;tty7&lt;/code&gt; ，其他 &lt;code&gt;tty2-6&lt;/code&gt; 往往是 TUI 界面。可以通过 &lt;code&gt;Ctrl+Alt+F1-F7&lt;/code&gt; 切换到对应的虚拟终端。还可以通过命令 &lt;code&gt;who&lt;/code&gt; 查看当前用户 tty。
&lt;ul&gt;
&lt;li&gt;特别的， &lt;code&gt;/dev/tty0&lt;/code&gt; 指向当前活动的虚拟终端。例如切换到 &lt;code&gt;tty2&lt;/code&gt; 时， &lt;code&gt;tty0&lt;/code&gt; 就会指向 &lt;code&gt;tty2&lt;/code&gt; 。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/dev/ttyS[NUMBER]&lt;/code&gt; 表示物理串口终端， &lt;code&gt;/dev/ttyUSB0&lt;/code&gt; 表示 USB 转串口适配器设备的串口终端，这些都和硬件相关。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/dev/pts/[NUMBER]&lt;/code&gt; 表示伪终端的从设备， &lt;code&gt;/dev/ptsm&lt;/code&gt; 表示伪终端的主设备。对从设备文件的读写会指向从设备连接的终端。
&lt;ul&gt;
&lt;li&gt;例如在一个对应 &lt;code&gt;/dev/pts/1&lt;/code&gt; 的终端模拟器中使用命令 &lt;code&gt;echo &amp;quot;Hello World&amp;quot; &amp;gt; /dev/pts/1&lt;/code&gt; 就会发现 &amp;ldquo;Hello World&amp;rdquo; 被直接输出到了当前终端模拟器中。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/dev/tty&lt;/code&gt; 表示当前进程的控制终端，无论当前进程是在物理终端、远程会话、终端复用器还是终端模拟器等终端中运行，读写此文件均指向当前终端。
&lt;ul&gt;
&lt;li&gt;例如在终端模拟器中使用命令 &lt;code&gt;echo &amp;quot;Hello World&amp;quot; &amp;gt; /dev/tty&lt;/code&gt; 就会发现 &amp;ldquo;Hello World&amp;rdquo; 被直接输出到了当前终端模拟器中。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;此外，GNU coreutils 还提供了 &lt;code&gt;tty&lt;/code&gt; 命令来显示当前连接到标准输入的终端的文件名，使用 &lt;code&gt;echo &amp;quot;Hello World&amp;quot; &amp;gt; $(tty)&lt;/code&gt; 可以实现和上面的 &lt;code&gt;echo&lt;/code&gt; 命令一样的效果。&lt;/p&gt;
&lt;h2 id="shell"&gt;Shell&lt;/h2&gt;
&lt;p&gt;Shell 在概念上其实和 Python 没什么区别。都是可以作为交互式的 REPL 程序、都是可以作为脚本的解释器运行脚本、都是可以作为编程语言，通过自己的语法和关键字等来写脚本。只不过 Shell 可以默认可以根据用户输入调用外部程序。（当然 Python 也可以实现，只是默认不支持）&lt;/p&gt;
&lt;p&gt;就像浏览器有 Chrome、Firefox、Safari 等软件一样，Shell 也有不同的软件，常见的 Shell 有：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: center"&gt;名称&lt;/th&gt;
&lt;th&gt;描述&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;sh&lt;/td&gt;
&lt;td&gt;POSIX 标准&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;中定义的 Shell 的实现, 现代的许多 Linux 发行版中作为 bash 等其他 Shell 的符号链接, 主要用来作为脚本解释器&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;bash&lt;/td&gt;
&lt;td&gt;最常见的 Shell, 是现代的许多 Linux 发行版的默认交互式 Shell, 符合 POSIX 标准&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;zsh&lt;/td&gt;
&lt;td&gt;目标是 bash 的拓展版本, 现在的 MacOS 默认交互式 Shell, 大部分符合 POSIX 标准&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;fish&lt;/td&gt;
&lt;td&gt;现代交互式 Shell, 注重用户友好, 开箱即用, 现代化脚本语法, 不符合 POSIX 标准&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;cmd&lt;/td&gt;
&lt;td&gt;Windows 系统的默认 Shell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;powershell&lt;/td&gt;
&lt;td&gt;Windows 系统的 Shell, 可以看作高级的 cmd&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;在 Unix 类操作系统中有 POSIX（可移植操作系统接口）标准这一说法，其是由 IEEE 定义的一系列标准，旨在为不同的 UNIX 操作系统提供统一的 API 和工具规范，从而提高跨平台兼容性。而在 Shell 语法和行为上 POSIX 标准是以 sh 作为一种标准化 Shell 来定义的。&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>问题和个性</title><link>https://fsdx.top/posts/%E9%97%AE%E9%A2%98%E5%92%8C%E4%B8%AA%E6%80%A7/</link><pubDate>Thu, 14 Aug 2025 00:00:00 +0000</pubDate><guid>https://fsdx.top/posts/%E9%97%AE%E9%A2%98%E5%92%8C%E4%B8%AA%E6%80%A7/</guid><description>&lt;p&gt;我喜欢居家独处，而不是外出社交。从 MBTI 的 E 和 I 的角度的话，我毫无疑问是个 I 人，外出社交对我而言是消耗能量的，居家独处是恢复能量的。我觉得这正是我的个性，但家里人觉得这是个问题。他们总是说“总是一个人待在房间不好”，但这个“一个人待在房间”正是我搞自己的东西，沉浸在自己的世界的状态，一个我觉得最舒服的状态。对于这样的分歧，我觉得分歧产生的一大原因是认为生活方式和性格是否存在标准。&lt;/p&gt;
&lt;p&gt;家人认为这是问题，实际上是预设了一种“没问题”的正常状态作为标准，因为和这种标准有区别，所以是有问题，是一种不好的异常态。而我认为这两种状态是没有对或错的，是没有一个所谓的标准的。这只是一种个性，是因人而异的，不同人有不同的适合自己的生活方式和性格。没有作为标准的正常态，也就不会有所谓的不正常的“问题”态。具体到我的这个情景，就是家人认为喜欢外出玩乐，积极和人社交，坐拥成群好友、广大人脉，能在各自公共场所游龙享乐才是好的正常状态，我和这个标准完全相反，所以是一个问题。但我认为没有标准，所以对此的解释和认知就是这是我的个性。&lt;/p&gt;
&lt;p&gt;我个人是不认可甚至反感家人的这种想法的。这种想法有点学生思维，认为所有的事物或问题都是有标准答案的，和标准答案不同的解答都是错误的，因此要追求这个标准答案。而我认为，不是所有的答案都是有对错的。诚然很多问题确实有少数的比较好的答案，但这不代表这些答案就是对的，其他答案就是错误的。对于答案，判断好坏的标准应该是放到具体的情境中判断合不合适，而不是正确和错误。&lt;/p&gt;
&lt;p&gt;令人可惜的是，家人在生活很多方面都贯彻了这样的“学生思维”。我最讨厌的一处体现就是家人的一个想法：希望我不要封闭内心，能够多向他们表达自己内心的想法，但不要是些不好的想法。什么是不好的想法？其实就是家人只想听到的不是我实际想说的，而是他们想听的，他们喜欢的。既然如此，我为什么还要告诉我内心的想法，反正他们也不想听。如此还要我不封闭自己的内心，简直是荒谬至极。&lt;/p&gt;
&lt;p&gt;然而真正讽刺的是，持有这种思维的人往往认为这种“学生思维”是标准答案，因此大多都对不认可这种思维的人无法理解，进而彻底否定他们。而不认可这种思维的人能够理解学生思维也是一种“个性”而不是错误，能够认可这种思维在某些情境（例如正如其名的应试教育做题时）下是合适的，并不会进行彻底的否定。&lt;/p&gt;
&lt;p&gt;后来我看到一篇文章：《&lt;a href="https://www.freyaindia.co.uk/p/nobody-has-a-personality-anymore"&gt;没有人拥有个性了&lt;/a&gt;》，感觉其表达了和我的上文有关联的观点：这篇文章认为（普通人心中的）心理治疗的文化将很多的“个性”都解释为了心理疾病，对很多事物过度强调理性解释，追求合理解答导致了很多层面的焦虑和不好的认知。虽然这篇文章的主要观点是反对用理性解释完全代替感性体验，但我觉得这也是人们定义了一种“健康”作为标准，把所有不符合这种标准的都认为是病态的、错误的、需要治愈和修正的。正如下面一段所言：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Now you are always late to things not because you are lovably forgetful, not because you are scattered and interesting and secretly loved for never arriving on time, but because of ADHD. You are shy and stare at your feet when people talk to you not because you are your mother’s child, not because you are gentle and sweet and blush the same way she does, but autism. You are the way you are not because you have a soul but because of your symptoms and diagnoses; you are not an amalgam of your ancestors or curious constellation of traits but the clinical result of a timeline of childhood events.&lt;/p&gt;
&lt;p&gt;现在你总是迟到，不是因为可爱地健忘，不是因为你散漫又有趣，且因从不准时而被秘密喜爱，而是因为注意力缺陷多动障碍。你与人交谈时害羞地盯着脚，不是因为你是你母亲的孩子，不是因为你温柔甜美且会像她一样脸红，而是因为自闭症。你之所以成为现在的你，不是因为拥有灵魂，而是因为你的症状和诊断；你不是一个祖先的混合体或奇特特质组合，而是童年事件时间线的临床结果。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;我认为真正好的心理治疗并不是寻找病态并修正它，而是是赋予你生活和症状以意义。它关乎接受你的人性，你的本质，嘲笑你的缺点，摆脱思维定式，找到内心的自由感，这样你才能深入地参与人际关系，过好自己的生活。接受自己的个性，接受自己的不符“标准”，拥抱真实的自己。真如这篇文章中我最喜欢的一段：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;So free yourself to experience, not explain. Be brave enough to be normal. Do not offer up your feelings and decisions and memories to the intrusion of the market, to the interpretation of experts, to be filed as deviations from what the medical industry decides is healthy. Leave yourself unsolved. Who knows; it’s a mystery. Written in the stars. From somewhere unknown. Holding on to your personality is a declaration that you are human. A person, not a product. No other explanation needed.&lt;/p&gt;
&lt;p&gt;所以，让自己去体验，而不是去解释。勇敢到足以做普通人。不要把你的感受、决定和记忆交给市场的入侵，交给专家的解读，交给医疗行业所定义的“健康”范畴之外的东西。让自己保持未解状态。你是一个无人能知晓的谜题；是一个写在星星里的谜案；是一个来自某个未知的地方的谜团。坚持你的个性就是宣告你是人类，你是一个活生生的人，你不是产品，无需其他解释。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>关于</title><link>https://fsdx.top/pages/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://fsdx.top/pages/about/</guid><description>&lt;p&gt;你好，陌生人。我是 fsdx，喜欢折腾自己觉得有趣的东西，日常喜欢游戏和阅读。&lt;/p&gt;
&lt;p&gt;这里是我个人的一个输出的空间，可能会写一些在技术探索、观点思考、日常分享等方面的内容。因为内容涉及不少领域且大多并非专业，如有错误恳请指出，也欢迎和我探讨你的想法。&lt;/p&gt;
&lt;p&gt;由于我个人非常随性，因此获取产生内容的时间不固定。暂时还不知道未来会怎样，但先写下这几段作为开始吧。&lt;/p&gt;
&lt;p&gt;联系方式：&lt;a href="mailto:zc.cai@foxmail.com"&gt;zc.cai@foxmail.com&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>