通过阅读饥荒代码理解树人机制
在百度上搜索了很久,各大中文论坛中都没有找到有关饥荒游戏中树人生成及睡眠机制的具体说明。饥荒官方社区中也没有说明,最终我打算通过查看饥荒源代码,解释树人的机制。为增加论述的可信性,本博客采取代码文字相结合的方式进行说明。
注:1.本文选取的代码为github仓库中brustlinker上传的2017年版本,暂且认为其为官方代码。
2.本人没有使用过lua语言,很多理解使用的是java里的机制。
3.本篇文章为自娱自乐,希望大家轻踩,但很欢迎有关问题的探讨。
宏常量设定代码tuning.lua
首先找到了tuning.lua文件,这是所有文件中包含数值最多的一个文件,其中设定了很多游戏本身的宏常量,在此找到了一些默认偏好下有关树人的基本属性,如图1所示。其中关键信息包括树人的三维,以及一些刷新有关的属性,默认下生成开始天数为3,刷新概率为1/75,生成距离为15。(剩余含chill的属性为其冷静的有关信息,将在后面进行解释)。
由此我们可大概猜测其生成方式与随机概率及生存日期有关,但其具体生成方式仍需查看其生成代码。
图 1 tuning.lua中的有关树人的生成代码
偏好设置tuning_override.lua
图2中为不同设置偏好下的树人刷新开始日期及树人刷出概率。