玩家涌进来后,网络创世纪的活生态为什么崩了?

网络创世纪资源系统的设计师 Raph Koster 纠正了流传说法:生态 AI 是因为径向搜索与寻路成本被关掉的,而封闭资源银行则因为玩家囤积羊毛衬衫之类的货物而崩溃,银行里没有羊毛就再也生成不出羊。

玩家涌进来后,网络创世纪的活生态为什么崩了?
本篇导航5 个章节

关于网络创世纪的复述都一样:设计师做了个活的生态,玩家把它吃光了,模拟就死了。亲手做这个系统的人说,这个故事并不完全对。玩家确实像蝗虫,但生态死法和传说不一样,而真正的原因对今天做模拟世界的人更重要。

网络创世纪日版零售盒封面,发布前须先上传 ultima-box.jpg 文件。画面为持剑铠甲战士与持剑女子,背后有骷髅与城堡。这是较晚版本的盒封,不是 alpha 实机画面,也不是生态系统的图片。

快速信息

  • 来源:系统原首席设计师 Raph Koster 在 2006 年资源系统系列文章与 Did players destroy the UO ecology 纠正帖中的说法,以及 Game Developer 对 GDC Online 2012 经典复盘的报道。

  • 定性:本文用设计师本人的记录纠正流传版本。别处引用的 Garriott 说法是玩家杀得太快、模拟还没开始就跟不上了。

  • 系统是什么:生物由 PRODUCE、EAT、SHELTER、DESIRE 四类资源标签驱动,生成与世界里的资源盈余挂钩,1996 年在 alpha 里,1997 年 beta 期间被移除。

  • 按 Koster 的说法,杀死它的东西:径向搜索加寻路的成本、无玩家在附近时生物进入睡眠,以及一个会被囤积抽干的封闭资源银行。

  • 本文不声称的内容:没有击杀数、生成速率、服务器成本或玩家数,因为打开过的来源都没有这些数字。资源数值留给了制作与采集,被关掉的只是 AI。

  • 最后核实:2026年10月29日。

人人复述的故事,与纠正

先从传说讲起,因为读者已经听过这个版本。通常的说法是:Origin 给网络创世纪做了个虚拟生态,玩家涌进来、杀得比游戏生成还快,设计师只好含泪把系统拆掉。Richard Garriott 也曾按这个意思被引用:玩家杀得太快,模拟根本没开始过,也从来没人注意到这个系统。但按设计该系统的人的说法,事情并不完全是这样。Koster 专门写了纠正帖,因为用轶事拼凑的文章一直在讲错。他讲了传说混成一团的两个不同事实:AI 是因为径向搜索加寻路的成本被关掉的,这和生态崩溃无关;生态崩溃是因为一个所有东西都从固定资源池生成的封闭经济循环,结果栽在了玩家囤积上。

这个系统由 Koster 和妻子 Kristen 在 1995 年初构想,给每个物件贴上资源标签:生物可以 PRODUCE 东西、按胃容量和咬合大小 EAT 东西、在喜欢的东西附近 SHELTER、对想要或害怕的东西有 DESIRE,优先满足 FOOD、再 SHELTER、再 DESIRE。生成按盈余来:GRASS 多了就生成吃草的东西,它们的 MEAT 多了就生成吃肉的东西。发售前的著名例子说:冒险者把兔子杀少了,狼就去吃鹿,饿肚子的龙可能晃向村子。Alpha 里动物还会像玩家一样升级,于是有了最有名的笑话:从狼口逃生的兔子变强了,放走兔子的玩家等于练出了杀手兔。Game Developer 对 2012 年复盘的报道引用 Koster 的玩笑:alpha 玩家没多久就发现自己在玩 Monty Python: The MMO;团队叫停了升级,但发售版里留了一只怪物兔子。这个轶事是真的,但也很小。

不是一群饿玩家,而是三次不同的失败

第一次失败是性能,而且发生在玩家动手之前。Koster 写道,生物 AI 在 alpha 里是能跑的:想要 GOLD 的乞丐会跟着有钱玩家,熊会在蜂巢附近晃悠。问题是持续的径向搜索贵得离谱,寻路也一样。团队先降低搜索频率,然后走了一步 Koster 说单凭它就彻底毁掉大规模生态应用的棋:没有玩家在附近时,所有生物都进入睡眠。一个只有被看着时才运转的模拟不再是世界生态。系统在 beta 期间还被一位按 Koster 的说法并不喜欢也不理解它的工程师重写过,计划中的第二阶段(把生态接进任务)也没有发生。按划定区域和列表生成生物的生成区域最终接管了全部生成。

第二次失败是封闭银行,这才是玩家真正搞坏的部分。按最初设计,新物件要从资源银行提取:每种资源有一个固定池子。MEAT 池子被透支时,任何用 MEAT 的东西都无法生成,直到世界里有 MEAT 被销毁、回到银行。Koster 说,实际中拦住生物生成的不是 MEAT,而是被玩家囤起来的 FUR 之类货物,它们让鹿和兔子回不来了。他的纠正帖给了最干净的例子:玩家杀羊、用羊毛做大量衬衫来刷制作技能,然后把衬衫囤起来或卖得很慢。中央银行的羊毛用完了,就再也生成不出羊。玩家不是靠杀得太快吃掉生态,而是靠囤得太多饿死生态:躺在银行和房子里的衬衫是再也不会回来的羊毛,所以世界造不出产羊毛的动物。

能复用的部分

下面的步骤都不是 Origin 做过的事,因为 Origin 没有做这些。它们是根据 Koster 对失败原因的讲述推导出的设计规则,改写给今天做模拟世界的小团队,而且只停留在你自己的项目里:没有一条要求你去动线上游戏、公开服务器或别人的经济。模拟生态有三个预算,不是一个:感知世界的算力预算、制造东西的物资预算、玩家持有东西的预算。网络创世纪按这个顺序把三个都用完了,而传说只记住了第三个。

周一早上照着做

  • 先给感知定预算、再谈好看。给每个生物的搜索半径和频率设硬上限,并在承诺活世界之前用满员规模测一次成本。

  • 每个产出都要有消耗。每种资源都要写明:什么会销毁它、多快、玩家囤着它会怎样。

  • 绝不要让玩家手里的库存卡住生成。把重生和银行解耦:生物要按自己的计时回来,哪怕玩家正坐在一堆它的材料上。

  • 用蝗虫和囤积者测试,不要用观光客。在自己的测试版本里,用进度奖励测试者去刷某一种资源,然后盯着银行看。

  • 准备一个看得见的兜底。提前定好:模拟关掉时你的世界是什么样子,让死掉的生态退化成能玩的世界,而不是空世界。

  • 把纠正写进宣传口径。如果预告片承诺一条龙会因为饥饿晃向村子,就把这个场景成立所需的精确链条、以及最先断掉的一环写下来。