Il existe des formules pour une équation de rendement décroissant; cependant, ceux-ci impliquent généralement exponentielle. Quels autres moyens existe-t-il pour arriver à une telle équation? Prenons, par exemple, le cas de test suivant - Une ferme produit 10 aliments, pour 10 fermes produites, le taux de production baisse de 5%.
game-design
mathematics
Extrakun
la source
la source
Réponses:
Pour formuler une équation de rendement décroissant, je pense immédiatement aux fractions.
Ceci est un graphique de
y=1/F
y
deviendra plus petit commeF
devient plus grand. Cela vous donnera une baisse régulière qui n'atteint jamais 0. De cela, vous pouvez la transformer pour obtenir le type de courbe que vous souhaitez. L'utilisation de nombres> 0 donnera toujours une sortie positive qui n'est jamais 0.Honnêtement, je recommanderais d'aller à WolframAlpha et de mettre quelques équations et de regarder les graphiques qu'il dessine pour voir s'il donne la courbe que vous voulez. En dehors de cela, lisez les équations linéaires et quadratiques pour pouvoir rapidement comprendre ce que vous voulez modifier dans une formule. C'est parce que la modélisation de graphiques à travers des équations est un peu un gros sujet, et si je pouvais l'expliquer ici parfaitement, je vendrais d'abord cette explication à certains professeurs de mathématiques.
Fondamentalement, pour les graphiques linéaires, rappelez-vous
y=mx+c
.m
est le gradient, et peut être positif ou négatif selon ce dont vous avez besoin, etc
est le point auquel il intercepte ley axis
.x
est votre variable d'entrée ety
votre sortie.Ceci est un graphique de l'
y=mx+c
endroitm=1
etc=0
Pour les graphiques quadratiques, cela devient un peu plus compliqué, donc je serai un peu vague et vous devrez lire vous-même les détails. Khan Academy est une très bonne ressource pour enseigner cela. C'est de forme générale
y=ax²+bx+c
.c
est toujours l'ordonnée à l'origine, et vous pouvez la modifier pour «soulever» le graphique.a
et lesb
deux affectent la courbe de manière similaire, mais à des degrés différents.C'est ça
y=-x²+2x+10
. Notez le-x²
, ce qui rend la courbe inversée.Fondamentalement, jouez avec les graphiques jusqu'à ce que vous obteniez ce que vous voulez, bien que je recommande fortement de le lire davantage si vous voulez concevoir l'expérience rapidement et proprement. Les équations de base sont importantes pour les jeux et vraiment intéressantes.
Il faut également noter les graphiques exponentiels et logarithmiques , c'est-à-dire les graphiques de
y=e^x
ety=ln(x)
pour obtenir des graphiques rapidement croissants et décroissants en fonction de la transformation. En plus de cela, les vecteurs et les transformations sont utiles, car ils décrivent ce que vous faites le graphique "de base".la source
1/x
. Voulez évidemment pour une telle courbe que vous nex
à égaler zéro, bien que!y = a^x
et vous pouvez ajouter un curseur poura
jouer avec la fonction. Vous pouvez en avoir autant que vous le souhaitez. Vous pouvez même animer les curseurs. C'est plutôt sympa, en fait. (Equivalent à MathematicaManipulate
.)Rendements décroissants = dérivé décroissant
Donc, qu'as tu besoin de faire? Choisissez une fonction qui correspond aux critères ci-dessus et intégrez-la.
Le choix le plus simple pour cette tâche est
g(t,n) = 1/(t+1)^n
oùn=1
marque la frontière entre les fonctions toujours croissantes et bornées.L'intégrale de g de 0 à x est ce dont vous avez besoin:
f(x,n) = ((x+1)**(1-n) - 1)/(1-n)
voici à quoi cela ressemble
n
Et ici, c'est normalisé à la même valeur finale
En changeant l'exposant,
n
vous pouvez facilement ajuster l'équilibrageRemarque: La dérivée ici est la production par ferme, tandis que l'intégrale est la production totale pour un certain nombre de fermes
la source
En général, une équation linéaire commencera par
y = mx + b
, oùb
est votre valeur de départ etmx
comment vous ajustez la valeur de départ au fur et àx
mesure.Donc, la première partie de votre équation, le
b
, sera10
parce que vous voulez que les fermes commencent à 10 aliments.Ensuite, dans votre cas, vous souhaitez ajuster la nourriture produite par dix fermes. Vous devrez donc diviser par dix pour obtenir une équation qui fonctionne pour dix fermes (en supposant que le
x / 10
renvoie un entier, c'est13 / 10 = 1
-à- dire :Donc, finalement, nous devons déterminer comment nous voulons que la nourriture change pour chaque
x / 10
ferme. Dans votre cas, vous voulez qu'il diminue de 0,5 (5% de 10), ce qui est linéaire. Nous obtenons donc:Donc, pour la ferme
x = 5
, nous obtenons5 / 10 = 0, 0 * -0.5 = 0, 0 + 10 = 10
. Pour la ferme quex = 11
nous obtenons11 / 10 = 1, 1 * -0.5 = -0.5, -0.5 + 10 = 9.5
, pour la ferme 23, nous obtiendrions 9,0.Ensuite, il vous suffit de calculer la nourriture totale pour toutes les fermes.
Mais peut-être que vous de 5%, vous vouliez qu'il diminue de 5% de la valeur précédente. C'est-à-dire
10, 10 * 0.95 = 9.5, 9.5 * 0.95 = 9.025
(dans ce cas, le montant que nous diminuons devient de moins en moins). Permet donc de modifier l'équation.5%
est une augmentation de type exponentielle, et la formule exponentielle esty = b*m^x
.Nous avons encore
b = 10
, et nous devons faire notre division par 10 astuce. Nous avons doncy = 10*m^(x/10)
.m
est0.95
, puisque nous voulons prendre 95% de la valeur à chaque fois. Donc, l'équation pour la fermex
esty = 10*0.95^(x/10)
.la source
Un rendement décroissant linéaire ferait-il l'affaire? production par exploitation = (1 - (0,05 * (f / 10))) * taux de production. Cela donne un pic de production totale (taux * # d'exploitations) à f = 100.
la source
Vous voudrez peut-être envisager une solution algorithmique qui correspond à la situation.
C'est-à-dire, réfléchissez aux raisons pour lesquelles la rentabilité de votre jeu diminue et modélisez-les.
Plusieurs installations du même type peuvent avoir des rendements décroissants, car il peut y avoir d'autres ressources ou installations dont elles dépendent, ou qui entraînent des goulets d'étranglement, ou d'autres situations limitantes, comme un réseau routier, ou des travailleurs ou des transports disponibles ou de l'eau douce ou l'électricité ou autre chose.
Une ferme peut produire 10 aliments par jour dans des circonstances idéales, mais cela nécessite également deux heures d'agriculteur par jour. Il nécessite également une eau fraîche par aliment et par jour, et son propre puits ne fournit que jusqu'à 5 eaux par jour. Le reste doit être prélevé dans un ruisseau ou une rivière adjacent ou apporté par transport. Et amener la nourriture là où elle doit être utile peut également être un problème. Etc. Supprimez-en ou ajoutez-en plus selon ce que vous voulez représenter, mais cela peut être des raisons beaucoup plus intéressantes et significatives, qui ajoutent de l'intérêt et de la valeur à vos autres systèmes de jeu, par opposition à une formule mathématique artificielle non basée sur d'autres éléments du jeu .
la source
Si vous voulez utiliser une équation généralisée, vous pouvez utiliser un graphique en cosinus: A * cos (Bx + C) + D
Mais modifiez-le à une demi-période, de sorte qu'il inclurait la hausse pseudo exponentielle au début, puis une courte période d'augmentations linéaires, jusqu'à un point de rendement finalement décroissant. Le seul problème avec cela est qu'il faudrait créer un plafond infranchissable. Donc, après un certain nombre de fermes, vous ne verriez aucune augmentation.
L'image ci-dessous est un graphique des augmentations de rythme pendant 30 minutes, faisant exactement la même séance d'entraînement en préparation. Ce n'est évidemment pas parfait, mais vous pourrez peut-être travailler dessus pour trouver ce que vous cherchez.
la source