Définir une formule dans le cadre d'un jeu vidéo

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
Agachack
Messages: 3
Enregistré le: 07 Déc 2021, 21:24

Définir une formule dans le cadre d'un jeu vidéo

par Agachack » 07 Déc 2021, 21:55

Bonjour,

Je ne suis pas certain d'employer les bons termes car je ne suis pas mathématicien pour deux sous, mais je tente quand même. Je suis en train de développer un jeu vidéo dans lequel vous avez une certaine population qui doit se nourrir :

8 personnes mangent un de nourriture toutes les 10 secondes

16 personnes mangent un de nourriture toutes les 5 secondes

24 personnes mangent un de nourriture toutes les 4 secondes

32 personnes mangent un de nourriture toutes les 3,5 secondes

40 personnes mangent un de nourriture toutes les 3 secondes

48 personnes mangent un de nourriture toutes les 2,5 secondes
...
..
.
Et ça doit se lisser jusque :
100 personnes mangent un de nourriture toutes les 1 seconde

Les valeurs ne doivent pas forcément être exactes, mais l'on doit voir un net lissage, qui tend vers zéro sans jamais le toucher lorsque la population (donc x?) est élevée.

Pour cela, il me faudrait une formule, une fonction, une courbe, ou un modèle, je ne sais pas comment cela s'appelle. Mais comment faire pour réussir à déterminer cette fonction ? J'imagine que la courbe doit ressembler à 1/0.01x, n'est-ce pas ? Mais après, comment faire en sorte que si x=8 alors y=10 en même temps que si x=100 alors y vaut 1...
On m'a conseillé, sur Reddit r/math, de regarder de ce côté-là :
https://en.wikipedia.org/wiki/Logistic_function
Mais clairement, c'est assez incompréhensible pour moi ; tout cela me dépasse amplement.

EDIT : bon, après avoir pas mal posé le truc, il semblerait que pour avoir ce type de courbe, il fallait bien partir de 1/0.01x. Mais pour être plus précis, et avoir la bonne valeur à 8x=10y, il faut que ce soit :
1/0.0125x
Et d'après le graph, ça semble y être, plus ou moins. Si x=100, on est plus vraiment à 1 mais à 0.8, mais c'est pas trop déconnant.



lyceen95
Membre Complexe
Messages: 2255
Enregistré le: 15 Juin 2019, 01:42

Re: Définir une formule dans le cadre d'un jeu vidéo

par lyceen95 » 08 Déc 2021, 00:28

Si je reprends tes valeurs :
(8,10) 8x10=80
(16,5) 16x5=80
(24,4) 24x4=96
(32, 3.5) 32*3.5=112
(40,3) 40*3=120
(48,2.5)48*2.5=120
(a, b)
a est le nombre de personnes, b est le nombre de secondes, le nombre qu'on obtient en multipliant a par b est assez stable, mais pas vraiment. Donc une formule du type b= 1/0.0125 a ne va pas marcher à la perfection.

On constate que si on calcule systématiquement (a+4)*b, on arrive à un truc un peu plus constant ;
Ou (a+6)*b aussi.
Le 2ème point (16,5) est un peu décalé, et aussi le 3ème
(16,6) et (24,4.5) seraient mieux dans l'alignement.
Et du coup, une formule assez fidèle serait : secondes = 135 / (personnes +6)

Agachack
Messages: 3
Enregistré le: 07 Déc 2021, 21:24

Re: Définir une formule dans le cadre d'un jeu vidéo

par Agachack » 08 Déc 2021, 01:13

Hello,

Merci pour ta réponse. Je comprends que tu as décidé de faire a*b où a= le nombre de personnes et b= le temps. Par contre, je ne comprends pas quels étaient les chiffres que tu aurais attendu (tu dis que le deuxième et le troisième sont décalés ?). Et je ne comprends pas comment tu fais pour parvenir aussi, "comme ça", à une fonction 135/(x+6) qui, pour le néophyte que je suis, paraît assez random et que je n'aurais jamais pu trouver comme ça, au hasard.

Mais... Force est de constater, en usant un site pour tracer le graph, que ça marche effectivement très très bien !!

Merci beaucoup ! :)

lyceen95
Membre Complexe
Messages: 2255
Enregistré le: 15 Juin 2019, 01:42

Re: Définir une formule dans le cadre d'un jeu vidéo

par lyceen95 » 08 Déc 2021, 01:44

Tu as choisi des fonctions de type hyperbole : y = a+ b/(x+c)
Tu te limitais aux hyperboles avec a et c nuls tous les 2 , donc de type y = b/x.
C'est restrictif. On n'a pas de raison de choisir a et c nuls.
Tu veux que quand x devient très grand, y devienne très proche de 0. Donc a=0, ok. Pas le choix.
Donc on cherche une formule du type y = b/(x+c)
Et en tâtonnant un peu, on trouve plus ou moins les paramètres que j'ai mis.

On peut choisir des courbes d'une autre forme : marche pas mal.

Agachack
Messages: 3
Enregistré le: 07 Déc 2021, 21:24

Re: Définir une formule dans le cadre d'un jeu vidéo

par Agachack » 08 Déc 2021, 13:22

D'accord, je pensais que tu avais pris les résultats de tous les a*b et que tu avais appliqué une formule spécifique qui donnait un résultat proche de celui que tu as trouvé (135/(x+6)), une formule relativement "simple" comme n'importe qui sachant faire un produit en croix s'il comprend qu'il peut le faire, là, par exemple.

Ou encore que tu avais pris un graph, placé les points aux bons endroits, et avec un logiciel, sélectionné tous les points placés -> clic droit -> définir la fonction (je ne sais même pas si ça existe, pour ça, j'émets des hypothèses).
Si c'était cela, peut-être que je pourrai reproduire cela plus facilement dans le futur si d'autres problèmes du même genre s'impose à moi.

Mais la réalité est que tu as trouvé tout cela via ton expérience et ta connaissance des fonctions / hyperboles ; pas de formule "magique", juste de la connaissance (que je n'ai pas spécifiquement).
Je tâche de retenir pour y = a+ b/(x+c), cela dit, sait-on jamais.

Bref, encore merci à toi, et y=42.67/x^0.7323 me va tout autant. :)

lyceen95
Membre Complexe
Messages: 2255
Enregistré le: 15 Juin 2019, 01:42

Re: Définir une formule dans le cadre d'un jeu vidéo

par lyceen95 » 08 Déc 2021, 19:15

La 2ème fonction, j'ai trouvé les valeurs via Excel. (Je crois qu'OpenOffice propose ça aussi)
Dans Excel, à partir d'un nuage de points, tu peux demander à tracer une courbe de régression. Et tu peux demander à voir l'équation de cette courbe de régression.
Au moment où tu demandes la courbe de régression, tu imposes un certain type de courbe (linéaire ... ...)
Ici, j'ai trituré un peu les données (échelle logarithmique), puis j'ai demandé à Excel de tracer la droite qui convenait le mieux. Ca m'a donné les valeurs 42.67 et 0.7323
Et j'ai remis les bonnes formules pour repasser de mes échelles logarithmiques à des échelles normales.

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 22 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite