Existem fórmulas disponíveis para uma equação de retorno decrescente; no entanto, esses geralmente envolvem exponencial. Que outras maneiras existem para chegar a essa equação? Tomemos, por exemplo, o seguinte caso de teste - Uma fazenda produz 10 alimentos, para cada 10 fazendas produzidas, a taxa de produção cai 5%.
game-design
mathematics
Extrakun
fonte
fonte
Respostas:
Para formular uma equação de retornos decrescentes, eu pensaria imediatamente em frações.
Este é um gráfico de
y=1/F
y
ficará menor à medida queF
for maior. Isso lhe dará uma queda constante que nunca chega a 0. A partir disso, você pode transformá-la para obter o tipo de curva que deseja. Usar números> 0 sempre dará resultados positivos que nunca são 0.Honestamente, eu recomendo ir ao WolframAlpha e colocar algumas equações e olhar para os gráficos que desenha para ver se dá a curva que você deseja. Fora isso, leia as equações lineares e quadráticas para descobrir rapidamente o que você deseja alterar em uma fórmula. Isso ocorre porque modelar gráficos através de equações é um tópico um pouco grande, e se eu pudesse explicar isso perfeitamente, venderia essa explicação para alguns professores de matemática primeiro.
Basicamente, para gráficos lineares, lembre-se
y=mx+c
.m
é o gradiente e pode ser positivo ou negativo, dependendo do que você precisa, ec
é o ponto em que ele intercepta oy axis
.x
é sua variável de entrada ey
é sua saída.Este é um gráfico de
y=mx+c
ondem=1
ec=0
Para gráficos quadráticos, fica um pouco mais complicado, por isso vou ser um pouco vago e você terá que ler os detalhes você mesmo. A Khan Academy é realmente um bom recurso para ensinar isso. É da forma geral
y=ax²+bx+c
.c
ainda é o intercepto em y, e você pode ajustá-lo para "levantar" o gráfico.a
eb
ambos afetam a curva da mesma forma, mas em graus diferentes.Isto é
y=-x²+2x+10
. Observe o-x²
, o que torna a curva invertida.Basicamente, brinque com os gráficos até conseguir o que deseja, embora eu recomendo ler mais se quiser projetar a experiência de maneira rápida e limpa. Equações básicas são importantes para os jogos e realmente interessantes.
Outras coisas a serem observadas são gráficos exponenciais e logarítmicos , ou seja, gráficos de
y=e^x
ey=ln(x)
para obter gráficos que aumentam e diminuem rapidamente, dependendo da transformação. Além disso, vetores e transformações são úteis, pois descrevem o que você está fazendo no gráfico "base".fonte
1/x
. Obviamente, para tal curva um que você nunca querx
para igualar zero, embora!y = a^x
e você pode adicionar um controle deslizante paraa
brincar com a função. Você pode ter quantos quiser. Você pode até animar os controles deslizantes. É bem legal, na verdade. (Equivalente ao MathematicaManipulate
.)Retornos decrescentes = derivada decrescente
Então o que você precisa fazer? Escolha uma função que atenda aos critérios acima e integre-a.
A escolha mais simples para esta tarefa é
g(t,n) = 1/(t+1)^n
onden=1
marca o limite entre funções sempre crescentes e limitadas.A integral de g de 0 a x é o que você precisa:
f(x,n) = ((x+1)**(1-n) - 1)/(1-n)
Aqui está como ela procura diferentes
n
E aqui está normalizado com o mesmo valor final
Alterando o expoente,
n
você pode ajustar facilmente o balanceamento.Nota: O derivado aqui é a produção por fazenda, enquanto a integral é a produção total de várias fazendas
fonte
Em geral, uma equação linear começará com
y = mx + b
, ondeb
está o seu valor inicial emx
é como você ajusta o valor inicial à medida quex
aumenta.Portanto, a primeira parte da sua equação, a
b
, será10
porque você deseja que as fazendas comecem com 10 alimentos.Em seguida, no seu caso, você deseja ajustar os alimentos produzidos a cada dez fazendas. Portanto, você precisará dividir por dez para obter uma equação que funcione para cada dez farms (assumindo que o
x / 10
retorno seja um número inteiro, ou seja13 / 10 = 1
:Então, finalmente, precisamos descobrir como queremos que os alimentos mudem para todas as
x / 10
fazendas. No seu caso, você deseja diminuir em 0,5 (5% de 10), o que é linear. Então temos:Então, para a fazenda
x = 5
, chegamos5 / 10 = 0, 0 * -0.5 = 0, 0 + 10 = 10
. Para a fazendax = 11
que obtemos11 / 10 = 1, 1 * -0.5 = -0.5, -0.5 + 10 = 9.5
, para a fazenda 23, obteríamos 9,0.Então você só precisa calcular o total de alimentos para todas as fazendas.
Mas talvez você em 5%, você queira diminuir em 5% do valor anterior. Ou seja,
10, 10 * 0.95 = 9.5, 9.5 * 0.95 = 9.025
(nesse caso, a quantidade que diminuímos fica cada vez menor). Então, vamos modificar a equação.5%
é um aumento do tipo exponencial e a fórmula exponencial éy = b*m^x
.Ainda temos
b = 10
, e precisamos dividir por 10 truques. Então nós temosy = 10*m^(x/10)
.m
é0.95
, pois queremos receber 95% do valor de cada vez. Então a equação para fazendax
éy = 10*0.95^(x/10)
.fonte
Um retorno linear decrescente faria? produção por fazenda = (1 - (0,05 * (f / 10))) * * taxa de produção. Isso fornece um pico de produção total (taxa * # de fazendas) em f = 100.
fonte
Você pode considerar uma solução algorítmica que corresponda à situação.
Ou seja, considere por que há retornos decrescentes em sua situação de jogo e modele-os.
Múltiplas instalações do mesmo tipo podem ter retornos decrescentes: pode haver outros recursos ou instalações das quais elas dependem ou que resultem em gargalos ou outras situações limitantes, como uma rede viária, trabalhadores disponíveis ou transporte ou água doce ou água. eletricidade ou qualquer outra coisa.
Uma fazenda pode produzir 10 alimentos por dia em circunstâncias ideais, mas requer duas horas de agricultor por dia também. Também requer uma água fresca por alimento por dia, e seu próprio poço fornece apenas até 5 água por dia. O restante deve ser retirado de um córrego ou rio adjacente ou trazido de transporte. E levar a comida para onde ela precisa ser útil também pode ser um problema. Etc. Remova alguns ou adicione mais, dependendo do que você deseja representar, mas esses podem ser motivos muito mais interessantes e significativos, que agregam interesse e valor aos outros sistemas de jogo, em oposição a uma fórmula matemática artificial não baseada em outros elementos do jogo .
fonte
Se você quiser que uma equação generalizada seja usada, você pode usar um gráfico de cosseno: A * cos (Bx + C) + D
Mas modifique-o para meio período, para incluir o aumento pseudo-exponencial no início, depois um curto período de aumentos lineares, até um ponto de retorno finalmente decrescente. O único problema disso é que seria necessário criar um teto intransitável. Então, depois de uma certa quantidade de fazendas, você não veria aumento.
A imagem abaixo é um gráfico de aumentos no ritmo para execuções de 30 min, fazendo exatamente o mesmo exercício na preparação. Obviamente, não é perfeito, mas você pode resolver isso para encontrar o que está procurando.
fonte