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


Régénération des ressources végétales - Sephi-Chan - 01-02-2014

Hello,

Puisqu'on parlait de plantes, j'en profite pour rester dans le sujet !

Dans Seelies, le plateau de jeu est constitué de nombreuses zones, elles-mêmes constituées de parcelles de ressources. Ces parcelles contiennent une quantité finie de ressource d'un type donné — et si elles sont végétales — disposent d'un facteur de régénération (les cailloux ne repoussent pas !).

Je souhaite qu'une parcelle en bon état se régénère plus rapidement qu'une parcelle presque à sec. Le but est d'offrir la possibilité d'appliquer la politique de la terre brûlée : quand on sent qu'on va perdre un territoire, on peut exploiter à fond les parcelles qui l'entourent pour tenter d'en priver le nouveau propriétaire.

Est-ce que vous pensez que ce mécanisme est cohérent ?
Et est-ce que vous avez des fonctions mathématiques pour ça (pour toi Xenos !) ?


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

Du point de vue de la cohérence oui, et de toute façon que ce soit cohérent ou non c'est une mécanique de jeu intéressante je trouve.


RE: Régénération des ressources végétales - Ter Rowan - 01-02-2014

j ai pensé au même mécanisme, donc oui cohérent

pour les formules, je dirais une courbe en S de régénération :

si très peu d'éléments, alors très peu de régénération car les éléments ont du mal à se trouver donc à se reproduire

si un nombre moyen d'éléments, alors régénération normale

si bcp d'éléments, alors très peu de régénération car les éléments sont les uns sur les autres

après... j'attends Xenos


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

Qu'est-ce que signifie "en bon état" ou "à sec" ?

Naturellement, la capacité d'une parcelle à produire des plantes est déterminée par la nature du sol. (Et le climat mais c'est un autre problème.)
Plus tu vas cultiver un sol, plus tu te rapproches de l'épuisement, et, comme tu dois le savoir, c'est la raison pour laquelle on laisse les champs se régénérer en jachère/friche. L'épuisement des sols est une notion bien connue, tu pourras facilement te documenter dessus. Donc ça me paraît logique oui.

Ce qu'il faudrait voir, c'est comment le sol se régénère alors qu'on le cultive en permanence. Il y a bien les engrais mais d'autres mécanismes doivent jouer.

Je ne comprends pas pourquoi tu veux épuiser les parcelles qui entourent le territoire qu'on va te prendre, au lieu de l'épuiser lui.

En attendant Xenos, on peut dire que tel type de plante consomme tel type de ressources minérales, que tel engrais augmente la croissance d'une plante en augmentant également leur consommation en minéraux. (l'engrais ça peut être de la magie hein, c'est conceptuel, pas forcément du monsanto - et idem pour le désherbant qui va appauvrir le sol mais protéger les plantes).

Quand on a récolté les plantes, on les laisse pourrir dans le champ (on les mélange à la terre en labourant mais je me souviens pas si c'est avant le semis ou après la récolte, il faudra vérifier tout ce que je raconte), afin de rendre au sol une partie des minéraux. C'est pour ça que la monoculture est dangereuse : il faut faire varier les espèces sur un même sol afin de leur permettre d'apporter à ce sol leurs .. apports, qui varient d'une plante à l'autre.

Il existe différents sols (acides, calcaires, mélange le tout en proportions diverses) sur lesquels les plantes vont plus ou moins bien pousser selon leurs besoins. mais si ton sol contient beaucoup d'azote et aussi beaucoup de fer, tu peux faire pousser une plante qui aime le fer et quand y en a plus ben tu peux toujours faire pousser des plantes à azote (bon là c'est hyper simplifié, l'azote c'est pour toutes les plantes ...).

Voilà quelques billes, à toi de simplifier pour en faire un gameplay. Mais ça m'intéresse, j'aurai probablement une parti agriculture dans mon jeu.


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

Salut,

Oui, j'ai Smile Et le mécanisme me semble cohérent.

Suite géométrique (tour par tour)
Code :
Valeur(T+1) = Valeur(T)*N

Avec Valeur(T+1) la valeur après regénération, et Valeur(T) la valeur avant. N est une constante arbitraire strictement supérieure à 1.
La formule est valide en tour par tour, et à calculer à chaque tour.

Exemple:
Pour N = 2 et Valeur(T=0) = 100.
Je ne touche pas la case pendant ce tour.
Valeur(T=1) = Valeur(T=0)*2 = 200 (écart: +100)
Je ne touche pas la case pendant ce tour.
Valeur(T=2) = Valeur(T=1)*2 = 400 (écart: +200)
Je ne touche pas la case pendant ce tour.
Valeur(T=3) = Valeur(T=2)*2 = 800 (écart: +400, plus la case est riche, plus elle régénère)
Je pompe 100 sur la case au début de ce tour.
Valeur(T=4) = (Valeur(T=3) - 100)*2 = 1400 (écart: +600)
Je pompe 800 sur la case au début de ce tour.
Valeur(T=5) = (Valeur(T=4) - 800)*2 = 1200 (écart: -100, la case perd des ressources si je l'exploite beaucoup)

On peut soit enlever les ressources exploitées avant de multiplier par N:
Code :
Valeur(T) = (Valeur(T) - Exploitation(T))*N
Soit après
Code :
Valeur(T) = Valeur(T)*N - Exploitation(T)
Dans le premier cas, on considère que les ressources sont extraites trop tôt pour qu'elles participent à la regénération, dans le second, elles sont extraites après la regénération de la case. On peut aussi faire un compromis:

Code :
Valeur(T) = (Valeur(T) - Exploitation(T) / 2)*N - (Exploitation(T) / 2)




Exponentielle (continue)
Code :
Valeur(T) = Valeur(T0)*N^(T - T0)

Où "^" est l'opérateur "élévation à la puissance", et avec Valeur(T) la valeur à la date T, Valeur(T0) la valeur à une date quelconque (avant T), et N une constante arbitraire, supérieure à 1.
La formule peut alors être appliquée à tout instant T, sous condition que depuis T0, il n'y ai pas eu de changement (exploitation de ressource) sur la case.


Exemple:
Pour N = 2 et Valeur(T=0) = 100.
Tant que je ne touche à rien:
Valeur(T=0) = Valeur(T=0)*2^(0-0) = Valeur(T=0) (c'est cohérent!)
Valeur(T=1) = Valeur(T=0)*2^(1-0) = 200
Valeur(T=2) = Valeur(T=0)*2^(2-0) = 400
Valeur(T=3) = Valeur(T=0)*2^(3-0) = 800...
J'exploite la case à la date T=3, et donc, la valeur de la case est modifiée:
Valeur(T=3) = 800 avant exploitation
Valeur(T=3) = 500 après (j'ai pris 300 unités)
Valeur(T=4) = Valeur(T=3)*2^(4-3) = 1000

Cette méthode se passe du tour par tour. En effet, on peut très bien dire:
Valeur(T=0) = 100
Rien ne se passe pendant un moment...
Ah! quelqu'un vient de se connecter et exploite la case! On est à T=4:
Je calcule Valeur(T=4) = ValeurPrécédente * 2^TempsEcouléDepuisLaValeurPrécédente
Donc, Valeur(T=4) = 100 * 2^4 = 1600
J'exploite, disons, 500 unités, et je sauve la nouvelle valeur, avec sa date:
Valeur(T=4) = 1100

Cette seconde méthode évite d'avoir un "daemon" qui tourne en arrière-plan pour actualiser chaque tour.


Eléments supplémentaires sur N
La valeur de N suit les règles suivantes:
N < 0 : Incalculable
N = 0: La case sera toujours vide
0 < N < 1: La case perd peu à peu des ressources
N = 1: La case ne regénère pas du tout
N > 1: La case regénère peu à peu

Pour une valeur de N de la forme N=(1 + k/100), avec k > 0, la case gagnera k% de ressources à chaque unité de temps. Par exemple, N=1.10 signifie "+10% par unité de temps (ou par tour)".


RE: Régénération des ressources végétales - Sephi-Chan - 01-02-2014

(01-02-2014, 07:37 PM)Ter Rowan a écrit : j ai pensé au même mécanisme, donc oui cohérent

pour les formules, je dirais une courbe en S de régénération :

si très peu d'éléments, alors très peu de régénération car les éléments ont du mal à se trouver donc à se reproduire

si un nombre moyen d'éléments, alors régénération normale

si bcp d'éléments, alors très peu de régénération car les éléments sont les uns sur les autres

après... j'attends Xenos

C'est vrai que ce genre de courbe me plairait vraiment : ça remplacerait le côté absurde d'une quantité maximale au profit d'une évolution plus naturelle (même si le résultat est le même, c'est plus sexy).

Le facteur de régénération doit être assez faible entre 0% et 30% de la quantité nominale de ressource, puis élevé entre 30% et 80% pour retrouver un niveau faible à partir de 80%. Et au delà de 100% c'est typé logarithme.

Mais je ne sais pas combiner des fonctions de ce style, pour avoir des transitions bien lissées.


(01-02-2014, 07:38 PM)niahoo a écrit : Qu'est-ce que signifie "en bon état" ou "à sec" ?

Voilà quelques billes, à toi de simplifier pour en faire un gameplay. Mais ça m'intéresse, j'aurai probablement une parti agriculture dans mon jeu.

La parcelle tend à être un bon état quand elle possède plus de 50% de sa capacité nominale, et tend à être à sec en dessous de ce seuil.

Je compte rester simplement dans les premières itérations du projet mais j'aimerai bien creuse la richesse de ces mécaniques. En effet, comme Seelies est un jeu où chaque Seelies à un rôle spécial dans son équipe, il est important pour moi de fournir à chacun un gameplay suffisamment riche.

Actuellement, les Seelies de Terre s'occupent de la gestion des ressources, les Seelies de Feu des aspects militaires et les Seelies d'Eau de la diplomatie, et viendront ensuite les Seelies de Bois et de Métal.


Merci Xenos pour ton exemple. Je pense m'inspirer de la seconde utilisation puisque mes résolutions auront lieu à intervalles réguliers (de l'ordre de 10 minutes).


RE: Régénération des ressources végétales - Ter Rowan - 01-02-2014

(01-02-2014, 11:28 PM)Sephi-Chan a écrit : Mais je ne sais pas combiner des fonctions de ce style, pour avoir des transitions bien lissées.

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 c est pas la fonction de la courbe en elle même, c'est sa dérivée ou un truc comme ça, sinon tu mets une gaussienne pour le N (d'ailleurs c est peut être bien la même fonction dont je parle, trop vieux pour ces conneries moi)


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

Citation :Le facteur de régénération doit être assez faible entre 0% et 30% de la quantité nominale de ressource, puis élevé entre 30% et 80% pour retrouver un niveau faible à partir de 80%. Et au delà de 100% c'est typé logarithme.

C'est pas clair. Déjà, qu'est-ce que le niveau de ressources ? J'aimerais que tu définisses mieux les termes. Tu veux dire qu'une forêt dont on coupe la moitié des arbres (qui tombe donc à 50% de ressources) se régénèrera rapidement vers 80% de bois, puis beaucoup plus lentement à partir de ce seuil, c'est bien ça ?

Que se passe-t'il au delà des 100% ? que vient faire le logarithme ici. Tu parles de croissance, c'est bien ça ? Une vraie forêt, quand elle atteint son maximum de masse végétale (si on peut exprimer ça ainsi), ne va pas produire plus d'arbres. Les arbres ne poussent pas entre les arbres. La masse végétale du sous-bois peut éventuellement augmenter, mais on constate également des diminutions du sous-bois, la canopée captant la majorité de la lumière disponible.
Après, je sais que dans un jeu il ne faut pas trop coller à la réalité, mais cette réalité propose d'emblée des algorithmes applicables, c'est toujours intéressant de s'en inspirer. Donc si j'étais toi, je ne dépasserais pas les 100% car ça n'a pas vraiment de sens. Tu peux décider qu'une parcelle de ressources est, sans "anthropisation", ou "seelisation", à 80% de sa ressource exploitable. Donc par défaut un gars qui découvre un coin de forêt la trouve capée à 80%.

Mais bon, j'ai dû rater un passage du topic car dans toutes les formules de Xenos, je ne retrouve pas l'énoncé du problème, la modélisation de ressources naturelles. Si tu prends une forêt à l'an 0 et que tu la coupes à l'an 100 000, tu n'aura pas plus de bois qu'à l'an 1000. Tu auras juste pas le même bois.


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

d où la courbe en S, niahoo, qui représente la masse de la forêt (avec l'asymptote qui représente ton 100%)


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

Ce que j'appelle niveau ou quantité nominale, c'est la quantité finie de ressource qu'il y a dans une parcelle.

Dans mon idée la parcelle continue à croître TRÈS lentement. C'est juste pour éviter d'avoir une valeur fixe, c'est moche. :p


(02-02-2014, 12:15 AM)niahoo a écrit : Mais bon, j'ai dû rater un passage du topic car dans toutes les formules de Xenos, je ne retrouve pas l'énoncé du problème, la modélisation de ressources naturelles. Si tu prends une forêt à l'an 0 et que tu la coupes à l'an 100 000, tu n'aura pas plus de bois qu'à l'an 1000. Tu auras juste pas le même bois.

Comment ça, pas le même bois ?