Veloren 的几处非常规设计:ECS、玩家与 NPC 同构、物理化世界生成
来源: blog.jsbarretto.com — 2026-09-15
概述
Veloren 的核心开发者记录了项目里几个不寻常的选择。游戏建立在 ECS 之上而不是传统的类继承体系,这带来了扩展性:48 线程服务器上五百多个玩家、上万个实体互动只用到约一半 CPU。玩家角色与 NPC 在物理交互、移动控制、技能树和经验系统上完全同构,NPC 既不能瞬移也不能穿墙。地形放弃大数组、RLE 和八叉树三种常规方案,改用自研的 chonks,并以物理化的水力侵蚀模型生成山脉与河网。
核心要点
- ECS 里多态是默认、分类需要显式选择,由此产生过玩家可以「捡起」其他玩家的 bug。
- 坐骑系统最初缺少循环检测,玩家能搭出互相骑乘的实体高塔甚至坐骑环,物理引擎只能徒劳求解。
- NPC 与玩家走同一套 Controller 输入,NPC 也会因为没算好动量与摩擦而摔下悬崖。
- 世界生成偏重物理化:水力侵蚀造出地形与河网,路径生成使用简化代价模型,作者认为这正是游戏「比你更大」这种感觉的来源。
- 离开视野的 NPC 不会被销毁,而是被并入 rtsim 世界模拟,任务推进、阵营博弈与经济元素都在那里持续运行。
金句
好的程序化生成几乎不需要随机性,因为随机性正是玩家带来的东西——生成器的职责是把它压成一套自洽、有后果的系统。
👍 0
👎 0
返回 Lobsters 首页