尘埃游戏的数据模型

尘埃是一款 RPG 游戏,但剧情的推动和玩家角色关系不大。剧情会一直推动,玩家角色可以通过某些事件来了解剧情,剧情的发展也会反馈到游戏世界中。为了消除这种失控的乏味感,游戏需要一个能打发时间的核心玩法。小时候玩游戏,经常多人一起,小霸王,街机,然后是网游。看别人 玩游戏,也是一种乐趣,尘埃的核心玩法,可以自己亲自去玩,也可以观看 NPC 游玩(如果玩过三国志 11,把玩家势力托管给 AI 过,就很容易理解 NPC 游玩是怎么一回事)。

游戏的核心是四洲棋,四支队伍两两结盟获得比分的游戏。比赛是赛季制,分积分赛和冠军赛。冠军赛有年度赛季冠军,四年赛季冠军,八年赛季冠军(这个赛季制度是为了其中一个 NPC 服务)。

游戏背景世界地图为

游戏背景世界地图

每个州会有一支队伍参与比赛,成土州是个例外,有两支,拉文纳虽附属与罗伦萨,也有一支,共 28 支队伍(拉文纳附属于罗伦萨,在后续的《灰烬》中才会分离)。

造化是一个很玄幻的词。“天理循环,报应不爽”,是一个很容易让人感慨的词。我尝试通过四洲棋来自动展示这么一点。数学中有一个类似的展示,是混沌系统的吸引子。最为人熟知的吸引子,当属洛伦茨吸引子

洛伦茨吸引子

为解释混沌系统对初值的敏感性,洛伦茨用了蝴蝶效应一词。相比那个解释,这个吸引子更像蝴蝶。

在游戏里实现一个自定义吸引子,是一件很难且没有必要的事情。难是因为这是全新的数学分支领域,我个人自然没有这个能力;没有必要是因为,即便能够实现出,如何在交互上让玩家选择,玩家没有办法在无穷个选择之中做出选择。好在游戏并不需要完美遵守数学(游戏中的很多实现,更多靠的是 magic number),我们只需要做一个近似的效果上像吸引子即可。

首先,我们要做一个人口迭代系统。这方面有直接的虫口模型可以借鉴。具体推导如下:假设每年人口以一定比例增加,这个比例系数为 r,第 n 年人口数目为 \(z_n\), 则第 n+1 年人口数目为 \(z_{n+1} = rz_n\)。当然,人口增加受资源限制,设 t 为这样的人口数:若人口达到了这个数,则资源全部被消耗光。则第二年的人口数必然与 (1-\(z_n\)/t) 成正比(剩下的资源数)。则 \(z_{n+1} = rz_n(1-z_n/t)\),令 \(x_n\) = \(z_n/t\), 则 \(x_{n+1} = rx_n(1-x_n)\). 此时的 \(x_n\) 代表意义是第 n 年的人口消耗资源系数。在《灰烬》游戏的背景中,育役已经施行千年之久。所谓育役,即成年后统一到育役中心生育后代,由政府统一培养。背景中的社会,依然有阶级存在。有阶级,就有分配的问题。帕累托法则也会影响着资源的分配,甚至更极端,如 1%/9%/90% 等。育役中心地位的变动,则会影响到他接受到的资源数量,资源数量影响下一代的培育质量。

有了人口,还需要后天环境。如果真的人多就是一切,那么中国足球应该是世界上最强的了。后天环境,可以更直接的服从帕累托法则。只有 20% 左右的州对四洲棋很感兴趣,从而制造出四洲棋队伍的强弱层次。

因为剧情的扳机和四洲棋息息相关,那么四洲棋则不应该是孤立的,他有着庞大的上下游链条。于上,多一个额外焦点,转移下层注意力和精力;于中,敛财,完成利益输送;于下,给出一点生机,并加速淘汰掉部分。所有的矛盾和故事就藏在这里。

如何产生循环?如果选择八年为一个周期,那么可以利用 r = 3.5546 产生的周期 8 超稳定轨道;如果选择四年为一个周期,那么可以利用 r = 3.4986 产生的周期 4 超稳定轨道。选定中下两个循环节的话,周期 8 则可以产生 64 个分叉。对于游戏,已经足够;若嫌太多,则可以 4*8 = 32 个。

循环节如何确定?这是为剧情服务的部分,自己做好游戏剧情关卡即可。