【饥荒】关于随机地图生成的方式

介绍世界的生成方式

原文

我注意到,几乎没有人知道如何在饥荒mod里建立新的地图,所以我想分享我的知识。如果在任何事情上我错了,请纠正我或给我信息.

世界生成的组成是?

第一部分: 预制物和静态布局

中英对照
预制物 –> Prefabs
静态布局 –>Static Layouts

预制物是,额…. 就本文来言是在地图上最小的单位,你在世界上看到的所有东西都是有预制物组成的.本文不准备创建任何预制物,只有说明如何让预制物显示在地图上.

静态布局是一系列的预设物安照特定的布局显示在地图上,每一次生成静态布局都是相同的.例:猪王,传输机零件.它们每次出现都是相同的.

译者注:猪王四周围的方尖碑都是相同的位置.

这两部分合在一起是因为每次生成是都是相同的.

第二部分:房间与造型

房间是在生成地图时第一个开始随机生成的,它包含 contents (内容,包括预制与静态布局), tags(标签) values(地表).

房间的标签确定了这个房间的特殊性,而value确定了地表,你将会发现自己站在什么地表上.

contents 定义为一个表,包括下列变量,

变量名介绍
countstaticlayouts一个表,包括你想要在这个房间里的静态布局
countprefabs一个表,包括你想要在这个房间里的预制物
distributepercent一个小数,确定预设物分布的几率
distributeprefabs一个表,规定每个预设物的几率
prefabdata确定如何修改预制物

乍一看,distributeprefabs和 countprefabs 看起来是相似的,但实际上他们是作用于两个不同的时候的.

distributeprefabs 不需要为每个预设物设置特定的数量,当你需要他均匀分布时使用这个.
例:在森林里所有的树时均匀分布的,但是没有一个特定的数量.
countprefabs当你需要一个特定的数量时使用.
countstaticlayouts类似于countprefabs,当显然它是用于静态布局的.

prefabdata用于设置预制物的起始条件,例:树木是一级还是两级,蜘蛛洞穴一级两级?

当然,你应该不需要使用prefabdata来控制树木的生长状态,因为不使用的话,会随机生成树木,我想……没有人会喜欢一个树林里所有的树木都相同吧?但是,你应该使用prefabdata来控制蜘蛛洞穴的生成,比如全部是一级的.

造型是介于静态布局与房间中的一种,它是在生成地图时生成的,大小有点像静态布局,但是他的随机方式像房间.

第三部分:任务,锁和钥匙

一个任务有5个重要的组成部分:

变量名描述
Locks确定任务是如何连接到其他任务的.
Keys另一半,确定两个任务是否可以连接到彼此
Rooms本质上,这个任务由什么组成
room_bg 和 background_room用来充填其它区域

当世界生成时通过各自的task,检查key和locks,将可以匹配的task联系起来。
key和locks 对应的列表可以在locksandkeys.lua里找到。
key和locks主要是用来保持平衡的。

Rooms是用来填充整个世界的,你应当定义一个特定数量的Room。相反的 room_bg 和 background_room, 用来填充剩余部分,它们的数量是随机的。

(未完待续)

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值