有这样一款游戏
- 是一款经营模拟游戏
- 由内购(划掉)手游大厂EA制作
- 杀入美国iOS畅销榜前十
- 持续运营4年仍保持不错成绩(2014年上线,2018年9月30日仍排畅销榜98)
它就是SimCity BuildIt
可以看到即使运营了4年,他的成绩还是很稳的
今天将要说明的就是它的产出及消耗数值的计算方式
注:本文只介绍已有游戏取随机值的方法手段,不展开讲思路的优劣
首先确定模拟城市的规则
产出规则
产出分为不同的店铺,每个店铺里能产的材料是固定的
店铺分为产基础材料的(不需要原料,有多个队列)和高级材料的(需要原料,单队列)两种,通过基础材料合成为高级材料,一是增加了操作及收获的反馈,二是通过建立层级,减少了材料的数量,避免游戏数值过度膨胀
消耗规则
以当前等级可以消耗的材料为范围,消耗的材料是在范围内随机的
同类材料的消耗数值是较小的
同一等级升级需要的材料数量也是随机的
同一等级升级最多需要三种材料
明确规则后,拆分三张表,分别是消耗计算表,调整和产出表,还有随机值表,其中调整和产出为产出物的价值,剩下两张是计算表,这样准备工作就完成了。
“开始建造你的第一个房子吧!”
1,材料范围
首先从消耗的材料中入手,先确定每一级材料的定价(略),然后根据材料定价和消耗定价算出该级是否能用到某种材料
材料范围的基础公式是:
其中调整和产出!$E$29和调整和产出!$F$29为材料的取值范围,调整和产出!$C$29为对应材料的序号
这个公式可以返回可选材料的对应值
因为每级需要最多三种材料,所以对第二种和第三种材料做额外处理
首先去除第一种已选好的材料,然后判断此级的消耗定价减去第一种材料对应的消耗定价乘以数量,满足则赋值空,否则返回对应材料的序号
第二种材料范围的公式:
第三种材料范围的公式:
“盖起这幢大楼需要铲子,木头,和一颗瓜子”
2,随机值
确定了材料的范围,可以进行取随机值得计算,使用随机和计数公式可以取到符合要求的随机值。
取随机值的基础公式:
同理,因为不一定存在第二,第三种材料,所以后两种材料的随机值也要做额外处理
第二种随机值的公式:
第三种随机值的公式:
3,确定材料
到这步已经知道每种材料的取值范围和随机值了,然后用排序及取值公式,取到此级别消耗的材料。
材料取值的基础公式是:
其中D2是该级消耗的定价,25为该级消耗小于最小材料定价时的赋值,$O2 AL2为对应材料返回值的范围,调整和产出!Q4为第一种随机材料的名字
同样,第二种和第三种材料的取值需要做额外处理
第二种材料取值的公式:
第三种材料取值的公式:
能同时生产全部基础资源的万能工厂
4,材料数量
在上一步,我们取到了确定的材料,所以可以用逻辑及搜索的公式,配合材料的定价,求出对应材料的数量
这种材料数量的基础公式:
其中$F4为此次升级对应随机的材料数量,调整和产出!$C$5:调整和产出!$F$30是定价范围,虽然看起来公式很长,但只是多了一层嵌套
在做第二种数量的时候尝试了多加辅助列减少公式难度的方式,其中G5为第二种材料的名字,I5为辅助列
第二种数量的公式:
辅助列的公式:
第三种数量的公式:
材料生产出来了,发展壮大你的城市吧
5,产出及优化
总结一下,我们的做法是先给定消耗的定价和材料的价值,然后确定对应级别消耗材料的范围,通过取随机值在其中获得材料,计算出材料的数量,然后如法炮制,获取全部三种材料。
至此,根据以上公式,我们求出了想要的值,为了优化阅读体验,还可以用搜寻的公式,把编号转化为文字,再进行一些页面的排版,就可以获得较容易阅读的数值产出了
最后的输出,对于数据还是做了进一步的处理,读者朋友们看出来了吗
(作者授权游资网发布)
作者:米特
来源:知乎
原地址:https://zhuanlan.zhihu.com/p/48506959
|