了不起的“建城”模拟器-day1
2022/01/3171 浏览
镇楼神器:

模拟器最大地图为192×192格,对于修仙来说,足够了。但对于想要修好城的仙友们,这个地图仅仅只能承载搞出一个麻雀虽小五脏俱全的小村子。
为了完成我们的建城大计,我们首先要先对模拟器下黑手。
第一步尝试:382极限
首先我们要修改模拟器的一个核心代码:XiaWorld.GameDefine.MAPSIZES数组。
用dnspy打开
SteamLibrary\steamapps\common\AmazingCultivationSimulator\Amazing Cultivation Simulator_Data\Managed\Assembly-CSharp.dll
的动态链接库文件。
依次找到XiaWorld命名空间中的GameDefine类,在里面找到MAPSIZES后,右键修改方法,将最后一个值从192改为382。
关于382这个数字,是在不改动其他代码情况下,能支持的地图的极限尺寸。当你将该值从192改为2倍值384时,游戏的部分算法逻辑,将发生意想不到的变化。384情况下,在生成地图时,由于SizeScale(值为6)参与了某些方法参数的Magic Number(魔法值)计算,导致最终生成的地图,将是一望无际的大海(没有任何陆地元素),最终会导致在后续的一个地图生成逻辑中出现死循环情况。所以382成了第一个极限数字。
382×382地图体验:
地图生成速度:略低于192×192地图
地图元素分布合理程度:水域相对较小,其他相对合理
自动存档体验:稍慢于192×192地图
其他:体验与192×192地图相对一致
第二步:算法的试金石——1024
首先先看一组不同地图尺寸的对比图:

可以说,只有1024,才真正能达到“为所欲为”的目标。
当然,在1024之前,还有个512。对一般人来说,512是比较具备性价比的选择。一是:地图相对够大;二是:在地图实际体验过程中,相对较好。但是话说回来了,洞中方一日,世间已千年。对于修仙者来说,辛辛苦苦花费相当大的时间修城,最终结果却因地图尺度不够,总感觉不是那么很happy。
所以,我觉得各位仙友,只要电脑配置够,还是开1024比较好。
(话说回来了,1024格真的感觉源代码算法逻辑有问题啊,速度几何倍下降。)
要想玩1024格地图。首先要先改动MAPSIZES的数组值为1024。
其次,由于地图尺寸达到384了,所以源程序会生成一望无际的大海。经过一番尝试,后来做出如下修改:
1. 找到XiaWorld.MapMaker._Make方法。
2. 右键修改方法,找到
GameWatch.Instance.CoroutineTip = TFMgr.Get("生成云雾");
在上一行,新增一个int backupScale = SizeScale;
用于缓存SizeScale值(1024时为16)。
3. 在GameWatch.Instance.CoroutineTip = TFMgr.Get("生成河流");下一行,修改SizeScale值,最大不超过5。
该值达到6之后,地图水域面积特别大。
4. 在GameWatch.Instance.CoroutineTip = TFMgr.Get("整理山脉");等下一行,根据需要修改SizeScale值,最大不超过6,否则地图元素分布特别不合理。
最后,保存模块。
第三步:开始游戏
默认情况下,经过约10+分钟的地图生成,你就可以开始建城了。游戏中最好关掉自动存储,每次自动存储都得约1分钟左右。
对了,最好开一个迷雾全开的Mod,不然跑图啧啧。

附近的海的一角,就这大片面积,啧啧。地图相当NB。

day 1