DenverSolo独立开发者。上个月成功部署了Qento:一个iOS叙事游戏,属于互动小说后裔——利用Swift + SwiftUI + Firebase + Claude API,约耗时一个月的个人工作,未经团队协作。分享可能最相关,也花费时间最长的两处系统设计:人物心理层和如何让引擎永远记住一切。
我要解决的问题。
静态原型(Hero, Mentor, Trickster)在长叙事弧中存活不下来。它们告诉LLM人物是什么,而不是防御之或什么破碎之。故事的篇章变得平淡掉——每个主角听起来像一个类别,而不是一个人的情感。选择让玩家感觉像是在从菜单里选择选项,而不是在经历一个真实的思维世界。
我构建的新系统。
每个主角都有三个层次:
伤口:发生在他们身上的事
护甲:他们围绕伤口建立的人格防御
驱力:它们背后的压力
玩家选择不仅仅会分叉故事。它会跨越人物的心理世界。脆弱的选择会破坏护甲。避免性选择会让它变厚。相连性的选择会改变他们对周围人物的信任程度。故事的篇章会回应,像被护甲所保护时以戒备的语气,像破防时以敞亮的语气。
还有一个反向力量的层次:反对者会用自己的伤口和压力曲线来镜射主角。只有当死亡构成了有意义的故事承诺时,他们才会死亡。死亡会被记载为一个疤痕,可以穿过你的其他遊戲——有时会以传染的暗示出现,有时会在几个番次日后以强烈的暗示传达。
引擎是如何记住的。
人工智能叙事不是生成篇章的难题。生成篇章只是开始。困难在于让篇章保持一致。几乎所有引擎在第三章就已经迷失了脉络:之前的承诺消失了,疤痕重新变成中立状态,恶人背后的残酷的情绪就消失了。这是内容的碎片化、向量搜索、摘要链等标准方法的局限性。几乎所有引擎都无法再接纳。
我在Qento中采用的方法是建立在边界上,而不是突破它。持久的状态(伤口、护甲完整性、对每个人物的信任、债务、背叛的承诺、疤痕)都会被压缩成一个符号化的注释。模型不会阅读之前的篇章。它会在每个动作中读取约350个符号化的状态。对Eli的信任度为0.41,因为十个步骤前他做了一个承诺破裂。护甲完整性为0.62,因为主角让她妹妹看到她的眼泪。每个参数都从事件历史中重建,而不是从记住的文本中。
结果是有效无限的记忆。第五步骤中的每个承诺,第十九步骤中的每个伤口,第三十步骤中的每个疤痕,在第四五步骤中仍然是可承载的。状态还会跨越故事,有一个死亡将会在故事里三个番次日以暗示和感觉的疤痕出现。末段仍然知道主角早先欠她父亲打电话,躲在厨房里从不告诉任何人发生了什么,步行方式比以前明显不同。不是通过阅读之前的篇章。作为状态通过模型生成下个段落的。
我作为Solo开发者所学习的。
困难的不是LLM整合。是让符号化注释变得足够浅,模型可以持有而不至于失去脉络。这是通过移除约88%的状态,使单关API的成本从每个番次降至0.79美金。
另一件事情:作为Solo开发者,你不能把角色工作和记忆层的工作外包给别人。系统必须做点什么。我花了更多时间在这两者上,远远超过了绘制、导航和付墙。
总体架构的详细说明:https://qento.io/build
应用商店:https://apps.apple.com/us/app/qento/id6761312674
寻找那些在叙事重型项目中运作的Solo开发者们。你们在角色状态方面使用了什么系统?在长弧中如何处理记忆衰退。诚恳的建议特别期待。
评论 (0)