JeuWeb - Crée ton jeu par navigateur
Régénération des ressources végétales - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Gameplay, gamedesign (https://jeuweb.org/forumdisplay.php?fid=48)
+--- Sujet : Régénération des ressources végétales (/showthread.php?tid=6803)

Pages : 1 2


RE: Régénération des ressources végétales - MadMass - 02-02-2014

Je pense qu'il veut dire par là que la croissance d'une végétation sur le temps est pas linéaire, et qu'attendre 1000 ans fera pas plus de bois mais un bois plus vieux :p


RE: Régénération des ressources végétales - niahoo - 02-02-2014

non, simplement des espèces différentes. Comme on ne trouve pas les mêmes espèces d'animaux au même endroit à 100 000 ans d'intervalle. D'une part parce que les espèces évoluent (habilis -> erectus -> sapiens) et de l'autre parce que certaines espèces prennent le pas sur d'autres (neaderthal / sapiens).
Sur une forêt (primaire pour les connaisseurs), tu auras un moment où la quantité de masse végétale (parce qu'on s'intéresse ici à la récolte) sera maximale, mais la situation évoluera, et pourquoi pas de manière cyclique.

Mais on digresse ...

C'est pas gênant de dire que la quantité de ressources d'une parcelle évolue à l'infini, (très lentement ou pas), si c'est un mécanisme du jeu. Simplement je ne vois plus très bien la logique de parler en pourcentages ; on ne fait pas de pourcentages sur l'infini. D'ailleurs les formules de Xenos définissent une suite, il n'est pas question de ratio, la formule définit simplement l'étape suivante par rapport à la situation actuelle.

Donc, si R représente les ressources actuelles sur une parcelle, pour une parcelle de type T :
- au dessus de 0 ressources les ressources évoluent de R*N1 par étape (temps/tour de jeu/action) (lentement, N1 est un multiplicateur petit mais >1),
- quand R>R1 ( R1 correspond à ton 30%) les ressources évoluent plus vite, de R*N2 par étape (N2 est un multiplicateur fort)
- quand R>R2, les ressources évoluent lentement, de R*N3 par étape, et ce jusqu'à l'infini
- mais on peut rajouter d'autres caps.

L'idée de la courbe en S correspond à ce que tu veux faire, mais est il possible de dessiner une courbe en S qui forme un S dans un espace donné, puis qui continue d'augmenter à l'infini ? Dans ce cas c'est parfait.

Autre idée : en dessous d'un seuil bas, les ressources sont multipliées par N et N<1, ce qui veut dire que si on a trop abusé sur une parcelle elle finit par crever toute seule. Il faut agir (magie, engrais, toussa) pour lui redonner la pêche.

La banane ouais !


RE: Régénération des ressources végétales - Xenos - 02-02-2014

Perte du temps continu
Citation :je dirais de prendre la formule de Xenos et de remplacer son N par la fonction de la courbe en S que tu choisiras

Attention, car si tu procèdes ainsi, tu auras une variation suivant la date de calcul.
Avec la formule précédente:

V(T) = V(0)*N^T

Si tu évalues en T1 et que tu sauves le résultat, puis que tu évalues en T2, alors tu auras le même résultat que si tu évalues directement en T2:
V(1) = V(0)*N, qu'on sauve, puis V(2) = V(1)*N
donne le même résultat que
V(2) = V(0)*N²

En passant par la sigmoïde, tu n'auras pas le même résultat, car "N" (remplacé par la sigmoïde) dépendra de V(T), à l'instant de l'évaluation.
Donc, si tu passes par une fonction autre qu'une constante N, alors tu devras évaluer toutes les parcelles à la fin de chaque tour (interdit de "sauter" des parcelles, aka interdit de calculer V(T=2) à partir de V(T=0)), puis sauver le résultat pour le réutiliser au prochain tour (c'est donc inexploitable dans un jeu où les parcelles évoluent de façon continue: les formules ne marcheront que dans un jeu par "tour" ou "étapes").


Fonction de croissance en tour par tour
Donc, si tu es uniquement en tour par tour (de 10 minutes chacun), tu peux effectivement passer par la fonction de croissance C, arbitraire, et calculer la valeur de la case en fin de tour:

Q(T+1) = Q(T)*(1 + C(Q(T)))

Avec Q(T) la valeur de la case au tour courant, C la fonction qui à une quantité de ressources associe la proportion de croissance, et Q(T+1) la quantité de ressources à la fin du tour.
Alors, pour la fonction de croissance, t'as le choix.

Je suppose donc:
  • Beaucoup de ressources = pas de régénération
  • Niveau de ressources optimal = régénération maximale
  • Peu de ressources = très faible taux de régénération

Donc:
Quand la quantité de ressource tend vers l'infini, la régénération tend vers 0, donc la case ne gagne pas de ressources.
Quand la quantité de ressources vaut M, merveilleuse valeur optimale, alors la régénération vaut R et elle est maximale.
Quand la quantité de ressources s'approche de 0, la régénération tend vers 0.

Que l'on traduit par:
  • C(q→∞) = 0
  • C'(q=M) = 0
  • C(q→0) = 0

Où C' est la dérivée de C.
Proposition:

Code :
C(q) = k*exp(-q/M)*q

Avec M la valeur merveilleuse, celle pour laquelle la croissance C sera maximale, et k une constante arbitraire. Si tu veux que la valeur C(M), croissance maximale, soit de P%, alors, la formule devient:

Code :
C(q) = (P/100)*(1/M)*exp(1-q/M)*q
Schéma:
[Image: Sephormule.png]

Quand P augmente:
[Image: Sephormule-Pvar.png]

Quand M augmente:
[Image: Sephormule-Mvar.png]


Et donc, pour x la quantité de ressources actuelles, P le pourcentage maximum de régénération atteint si x=M, et X la quantité de ressources après régénération:

Code :
X = x*(1+(P/100)*(1/M)*exp(1-x/M)*x)


PS: on peut parfaitement faire des pourcentages à l'infini Wink Si on considère, comme unité de mesure, "la quantité de ressources 'normale' de la case", le pourcentage P% est alors simplement la représentation de (P/100) unités dans ce système de mesure.


RE: Régénération des ressources végétales - niahoo - 02-02-2014

Oui je voulais dire impossible de faire des pourcentages si 100% représente l'infini.


RE: Régénération des ressources végétales - MarcusS - 05-02-2014

Concernant l'idée que l'on n'a pas la même végétation dans le temps, je vous présente l'exemple de la réunion :
-> coulée de lave (aucun végétaux) -> mousses et lichen -> graminées, céréales -> buissons -> arbres -> sous bois -> canopée.

D'ailleurs, dans l'idée des seelies, on pourrait très bien autoriser des seelies de feu à brûler la parcelle, leur donnant un avantage en puissance, mais en prenant le risque de perdre une parcelle de terrain pendant un certain temps.

Sinon j'aime bien cette idée même si Xenos parle une langue étrange. ;-)


RE: Régénération des ressources végétales - Xenos - 05-02-2014

Je ne suis pas le seul XD

Plus sérieusement, s'il y a des trucs pas clairs, faut le dire Wink

Pour le résumé:
Code :
P: Pourcentage de régénération maximal
M: Quantité de ressources en laquelle ce pourcentage maximum P est atteint
valeurActuelle: Quantité de ressources actuellement présente sur la case
nouvelleValeur: Quantité de ressources sur la case après le cycle de régénération

C(P,M,q) = (P/100)*(1/M)*exp(1-q/M)*q

nouvelleValeur = valeurActuelle * (1 + C(P, M, valeurActuelle))



RE: Régénération des ressources végétales - MarcusS - 06-02-2014

Cool, cela faisait longtemps que je n'avais pas écouté Fronçois Perus.

Sinon, merci pour le résumé. Me manque qu'une valeur : q .
Mais j'ai comprit le principe.


RE: Régénération des ressources végétales - Xenos - 07-02-2014

Dans "C(P, M, valeurActuelle)", q = valeurActuelle.
Dans C(P,M,q), aka dans la définition de la fonction C elle-même, q représente la quantité de ressources prenant part au renouvellement.


RE: Régénération des ressources végétales - MarcusS - 07-02-2014

Ah oui, de fait je comprend mieux la formule. Merci.