Glinaur 背后的思考,摘自开发者自己的设计文档。已定案的内容会明说已定案;这里没有任何内容说明什么时候。
已撰写 2026年10月6日
更快地保存世界
服务器以 tick 为单位运行世界,每秒一个 tick。每三十个 tick,它就会保存一次每个在线角色的状态:位置、生命值、法力、经验、技能、已探索的地图、已发现的东西、生效中的效果等等。这次保存被称为“flush”(刷写)。
在此之前,flush 为每个角色发送一条数据库命令。有 300 个测试角色在线时,负责保存它们的那个 tick 要用掉它那一秒的大约一半。
现在所有行一起发送,每条命令最多包含一千个角色。第二项改动把所有必须在通知任何人之前就保存的东西(金币、战利品、死亡、升级)放进每个 tick 一次的事务中:要么全部保存,要么全都不保存。
这很重要,因为设计目标是在一个不分割的世界里同时容纳约一千名玩家,而这个规模目标正是对架构影响最大的风险。
下面的数字是在同一台机器上、通过基准测试比较改动前后的结果;它们并不代表正式运行的服务器会遇到什么情况。把每个 tick 的更新并行发送给玩家,目前还没有完成。
- 保存 300 个角色:之前 489 ms、300 条命令,之后 69 ms、一条命令。
- 保存 3,000 个角色:之前 4,917 ms,之后 550 ms。
- 300 件物品的磨损:之前 387 ms,之后 6.5 ms。
- 一个包含 100 次死亡的 tick:之前 245 ms、209 条命令,之后 54 ms、11 条命令。
已撰写 2026年10月4日
是谜团,不是战争
世界现在有了前提。它原本是一块孤零零的大陆;后来其他大陆到来并与它连在一起,每一块都是一整套神话。从那以后,世界便失去了平衡:是整个世界,不只是它的魔法。当整块整块的大陆突然出现,一切都会陷入混乱。
新来者并不进攻。这正是关键:故事是一个需要调查的谜团,而不是一场需要打赢的战争。他们为何在此,发生了什么,这是一场入侵吗?世界的秩序中有什么发生了偏移,已知的一切必须重新书写。
神话是游戏的一个层面,而不是它的中心。它们也意在教学:区域名称、发布任务的人、任务文本以及各种生物的图片,都应当展现一种神话是如何构建的。北欧神话最先到来,位于第一座城市以北。
每个角色所立的誓言关乎任务,而非服从。一个角色如何应对失衡是它自己的事。这也正是玩家对玩家战斗获得意义的地方:各种立场,就是对同一誓言的不同回答。
已撰写 2026年10月3日
为什么成长这么慢
Glinaur 的设计是要玩上数年:数百个等级、漫长的学派链、数值攀升很高的装备。缓慢的节奏是已定案的,也是有意为之的。
原因有两个。漫长的道路才能留住一个活跃的在线人群;设计针对的是全天候 400 到 600 名玩家。而持续扩展的系统深度,是一位开发者唯一负担得起的内容。
新人与老玩家之间的差距要靠机制来弥合(导师制,或许还有追赶的途径),而不是缩短道路。两者都尚未实现,形式也仍未确定。
已撰写 2026年10月3日
先引擎,后内容
游戏以引擎为先来构建。内容与平衡数值都是数据,在面板中编辑,绝不写进代码:新增怪物、商店、学派或区域都不需要编程。
一种机制只需证明一次。一条铁矿脉就证明了采矿;更多金属只是更多行数据。这就是世界今天看起来很小的原因:你看到的低估了引擎能承载的东西。
这也是你看到的几乎一切(名称、物品、怪物、价格和每一个数字)都是占位的原因。内容和平衡会在系统建好之后,各自分批进行。
已撰写 2026年10月3日
没有日期,只有依赖关系
你在本站找不到任何事情的日期。工作按照谁依赖谁来排序(下一件事动工之前必须先存在什么),绝不按日历,也不按紧急程度。
设计则不同:它始终是开放的。任何设计问题都可以随时定下来;只有构建才有先后顺序。这就是为什么建议在每个阶段都有用。
已撰写 2026年10月3日
如实说出风险
设计文档点明了它们自己的风险:
- 规模目标(在一个不分割的世界里同时容纳约一千名玩家)决定了架构,必须尽早做压力测试。
- 一个会变化、会记忆的世界:地块、建筑、商店库存和地上的尸体全部持久保存。
- 地块、袭击与城市控制是最大的新设计面,也是对一位开发者而言范围上最大的风险。
- 经济需要持续调整,并且需要内置于游戏的度量。
- 制作内容需要工具,现在已基本由编辑面板解决。
- 设计依赖于其人群:在线玩家低于大约一百人时,核心机制就会失去意义。带动态价格的 NPC 需求已定案但尚未实现,其用意正是缓解这一点。
- 一个鲜活的 NPC 模拟是一个庞大且不断扩大的面。
