作者kasdia (Leverage好好看!)
看板Minecraft
标题[讨论] 伺服器view-distance与怪物生成上限调整
时间Sat Aug 3 15:25:06 2013
最近在研究伺服器如何在怪物数量跟系统效能之间去做调整
首先提一下计算公式....
公式
MobLimit = Constant * Activated Chunk / 256
数量上限 固定变数 载入的chunk数量
Constant为固定变数
生物分成四个类别会受这个规则影响
monster: 70
animal: 15
water-animal: 5
ambient: 15
而server.properties中的View-distance则是最直接影响到Activated Chunk数量的参数
这个数字最大到15,最小到3
它每个玩家所触发的Activated Chunk工作半径
是以当下所在的Chunk为中心,前後左右字各延伸这个距离
所以以原始设定值10来看
一个玩家所啓动的Chunk数量会是
21*21=441
代入上面的公式,会知道怪物的数量上限会是120
调整到9的话就会是
19*19=361
这个数字差不多打了八折
代入上面的公式,会知道怪物的数量上限会是98.7
调整到8的话就会是
17*17=289
代入上面的公式,会知道怪物的数量上限会是79
为了提升效能,降低了读进来的Chunk数量,却也影响到怪物数量上限
间接会造成怪物跟生物无法好好的分布在各个区域
於是部份区域出现显着的生怪效率下降(因为quota被别的地方用掉了)
目前找到调整的方式是透过Craftbukkit内的bukkit.yml的参数来调整
在bukkit.yml中有一个参数是
spawn-limits:
monsters: 70
animals: 20
water-animals: 5
ambient: 15
在这里透过改变各个生物的数量上限系数,来补偿因为Activated Chunk数量过少所减少的生物数量上限
这个数字就随人填了吧
不过因为调高生怪上限,会因为Activated Chunk的半径变小,导致怪物变得密集
所以这个设定上限的变数可能要实际测试才能抓到适当的数值
目前是直接将少掉的部份补回去,可能要再视状况斟酌这个数字的大小
补充一点就是
多人环境下,玩家身边重叠到的Activated Chunk范围是不会重复计算的
所以当玩家群聚再一起的时候,server整体的Activated Chunk的数量不是倍数成长
而会扣除交叠的部份
以上纯心得文 请鞭小力一点XD
--
Wordpress:
http://kasida.tw/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 175.181.110.249
1F:推 HMKRL:最近server调过吗?感觉怪便少了 08/03 17:27
2F:→ kasdia:我只有感觉野外怪物变多 洞穴好像还好 08/03 18:34
3F:推 cephalitis:server挂了ˊ_>ˋ 08/04 19:57
4F:→ kasdia:你们server的问题可以直接FB或者wordpress问我啦XDD 08/05 04:03
5F:推 olys:找调怪物整体数量的方法很久了,没想到就在那麽近的地方! 08/13 21:47