欢迎光临散文网 会员登陆 & 注册

【读论文】放置游戏中的数学

2022-07-20 22:37 作者:飞虎233-放置游戏  | 我要投稿

来自 konregate 博客:https://blog.kongregate.com/the-math-of-idle-games-part-i/

可以通过修改最后的i为ii和iii来阅读第二篇和第三篇。

自己加了一部分内容,清下库存。

公式代号列表

n:工厂数,升级数等作为主体的数量

base:基础,第一个内容的相关数据

total:整体,全部,如total-p指游戏从最开始累计的全部的声望

rate:成长常数

buy:要购买的数量,没有该值的公式默认购买 1

currency:拥有的货币数量,不出现其他种类默认指 Money,即该游戏中的基础货币

p:声望

ever:一个值的永久版本,多次游戏获得的该值总和

multipliers:工厂数奖励,指一些游戏中购买x10/x25工厂时提供的生产速度奖励

Cost(n):第 n 个工厂购买价格

production(total):整体生产速度

currency(ever-p):多次游戏获得的全部声望,包含消耗掉的那些

普通工厂

一般来说,传统工厂的购买价格公式是:

Cost(n+1) = Cost(base) x rate^n

而生产力数据是(以每秒计):

production(total) = (production(base) x n) x multipliers

这样的设计会使得前期每秒收入远超新工厂成本,而达到一个限度后就会反过来,使你获得下一个工厂的时间被拉长。

当拥有不同种类的工厂时,“工厂最优收益”的概念就逐步浮现出来。在这里定义为“收入:成本”的最佳比率。虽然玩家不会完全按照最优收益的方式去购买工厂,但他们的行为最终还是会落在最优收益的附近。

目前这类游戏新出的工厂总是能比旧工厂提供更强劲的生产力,这往往会使玩家无脑ALLIN新工厂,即使在某些时段,性价比上旧工厂可能更高。造成这一情况的其中一个设计,是multipliers的趋同:每25个工厂总是会带来x2收益。如果能够给更低级别的工厂以更高的乘数收益,或单独设置每个里程碑的乘数收益,情况就会大不相同。

这里为5个工厂提供了一种新的multiplier收益方式:

  • 工厂1:25级乘数为x3,50级为x2,100级为x10

  • 工厂2:25级为x5,之后为x10

  • 工厂3:25级为x4,之后为x8

  • 工厂4:25级及之后为x2

  • 工厂5:25级为x1.5,之后为x2

以上的购买方式可以大大加强每个工厂的存在感,使在一段时间内每个工厂都有多个高光时刻。

作者最后总结了两个连续线性的工厂升级公式以防止For循环在程序中的过分使用:

cost(n+buy) = Cost(base) x rate^n x (rate^buy -1) / (rate - 1)

cost(n->max) = log(rate)(currency x (rate-1) / (Cose(base) x (rate^n)) + 1)

工厂的工厂

需要用到微积分知识,理解微积分的概念并不难。但你还需要将离散的工厂生产视为一个连续的过程,这可能会花费很多认知成本。

在这种模式中,母工厂的速率是子工厂速率的导数,类似于抛物线公式中的加速度。随着工厂套娃的发生,每个母工厂对应子工厂的加速度关系是:1(子工厂本身),x,x^2/2...x^n/n!

随着套娃级数的增加,总资源生产速度构成泰勒级数,这个级数的结果趋近于 e^x

大多数这类游戏都会将“工厂数量”和“购买工厂数量”分开对待,购买工厂的价格依然依据历史购买而增加。

一些游戏会使底层级的工厂能为整体提供增益,以使底层工厂依然具有购买价值。

一些游戏会将工厂的购买转化为工厂的级别,这会使前面所述的隔离有更清晰的展现。

还有一些游戏会将工厂当成货币使用。比如《UnderWorld Idle》,其高等级单位需要消耗低等级单位生产,而高等级单位会降低低等级单位同数量级的购买价格,高等级单位本身也会产生低等级单位。

设计两种以上的资源有助于使该模式具有更大的自由度。

声望循环

通过赋予新增益重置游戏的系统被称为声望系统,这是大多数现代放置游戏的关键机制之一。它一般有两个用途:

1. 阶梯效果,每次起步都会比上次起步快

2. 控制增长,不会使游戏后期的数值过大,大多数声望系统提供分数指数而非对数增长

声望通常由以下要素决定:

1. 最大放置收益

2. 总收入/自上次重置后的收入

3. 自上次重置后购买的升级次数

在工厂环节,我们能够预测在一定等级后,每秒收入将远低于新工厂成本以使购买新工厂需要等待大量的时间。新游戏带来的生产加速就可以大大拉长这个“逆转等级”,使得在进入放置状态前,能拥有更多生产力设施,进而带来远超之前游戏的生产力。

通过声望公式的设计,可以避免玩家通过快速反复重置来刷取声望。但这需要更高的存储成本。

Realm Grinder中的重置公式,要求玩家每次游戏的进度都要比上次多至少4倍才能获得奖励:

currency(money) = 10^12 x currency(p) x currency(p+1) / 2

currency(p)^2 + currency(p) - 2 x currency(money) / 10^12 = 0

AdVenture Capitalist 中的重置公式则不需要玩家达到一定进度,但早期进度获得的声望会越来越少:

currency(p) = 150 x sqrt(currency(ever-money) / 10^15)

饼干点击则采用了这个公式的立方根版本

currency(p) = pow( currency(ever-money) / 10^12, 1/3 )

点击英雄则采用了另一种思路:它的关卡难度曲线特别陡峭,以至于多次达到重置标准所花费的时间差别不大。而基于总升级数的声望获取及升级花费指数级上涨更是限制了声望获得。也因此它的计算公式非常简单:

currency(p) = 1 + log(total-level)

其它游戏经济系统(自行整理的)

转生类游戏升级经验 = a x Lv + b / Lv + c

谷值升级经验(x9 级升到 y0 级经验下降) = a x Lv^2 + b x Lv + c + d x (a x Lv’^2 + b x Lv’)

指数升级经验 =  a x Lv^2 + b x Lv + c

后期稳定升级经验 = K/(1 + (K-n) x e^(-r x Lv) / n)

《Realm Grinder》建筑升级成本公式:该建筑1级成本*成本乘数(1.15)^(下一级级数-1)

【读论文】放置游戏中的数学的评论 (共 条)

分享到微博请遵守国家法律