大家好!我是James,一个独立开发者,我想讨论一下我的游戏的优化循环中遇到的一个问题,我花了很多时间试图让它更有趣。想必一些人会对数学感兴趣(或告诉我我哪里做错了 😄)。
问题: 大多数休闲游戏在运行时都会赚取优化货币,比如说是你的收入的平方根。我的游戏也是这样:reward = 10 × sqrt(runSalvage / D) 但是,我让设施成本以指数方式增长,所以你的收入只会以线性方式增长。实际上,一次运行的总收入会比线性增长快一些,大约是:t × log(t) 将它们放在一起,奖励每小时都会下降,从第一分钟开始。平方根吃掉了你的增长。因此,最优的策略是立即重置,反复进行。所有我玩过的这种形状的休闲游戏都最终会变成重置的spam,开发者通常会添加一个最小时间限制来绕过这个问题。
为什么不用定时器? 我试过了。玩家测试反馈说它看起来像回头来玩。缺乏玩家主动权使它变成一个规则,这不是很有趣。
我做了什么: 等待支付的收入必须以t²的方式增长,才能让平方根的增长速度超过时间。所以我添加了一个名为系统不稳定性的斜率,它将废料收入乘以:(1 + 2 × hoursIntoRun)²,最大值8小时(×289峰值)。当你将它整合时,运行的收入会增长大约像t³。平方根就是t^1.5,所以奖励每小时现在会随着时间的推移而上升,直到达到最大值。这使我能够将重置转变为玩家可以做出决定的真正决策,是否要提前兑现,还是等到峰值。8小时的最大值与离线最大值相同,因此有闲暇时间的玩家可以在睡前启动一次运行,然后在醒来时达到峰值,目的是让玩家不受懒惰玩(这是一个休闲游戏啊!)的惩罚。
我必须小心的部分:
- 离线进度:如果你在乘数从×10到×200的间隙离开,不能在×200时支付整个间隙。我的游戏会在整个间隙的平均值上支付(它是一个多项式,所以它可以很好地整合)。
- 还存在最小值,但它是生产目标而不是定时器,因此主动玩家可以更快达到。
- 最大值很重要。没有它,等待的最优策略是无限的,这只是另一种破碎的形状。
我不确定的部分: 这种斜率感觉好吗?还是它只是将最优等待时间移动到另一个地方,你会感到有责任去实现它?我的担忧是,我创建了另一种形式的任意等待。您在类似游戏中如何管理这个问题?(如果有人感兴趣,我的游戏是Umbral Idle:最后的废料在Android上)
评论 (0)