Une autre question que l'on pourrait se poser, est celle de la persistance de l'univers. Calculer l'évolution des PNJ sur une durée d'un tour n'est pas trés compliqué, mais que se passe-til si le joueur abondonne son jeu pour une durée d'une semaine ( qui je l'imagine equivaut à plus d'une centaine de tours ). Faire une simulation au tour par tour ruinerait completement le serveur.
Je pense qu'il faut partir sur une base probabilistique : J'ai tant de besoin, tant d'offre, je peux donc degager que sur un tour on va avoir une augmentation globale de X en besoin de type 1. Ensuite il faut une fonction de distribution. J'ai N PNJ avec une valeur Vi en besoin, Une moyenne de M en besoin, je dois distribuer X points de besoin, donc chaque PNG aura environ X/N + f(M-Vi).
f est une fonction de M-Vi (l'ecart à la moyenne ) heuristique censé simuler l'aspect prioritaire . Normalement l'integrale de F doit etre nulle sur l'interval [MaxVi,MinVi] pour pouvoir retrouver un resultat correcte. ( Je sais, parler d'integrale sur un ensemble discret n'est pas correcte, En fait c'est la somme des f(M-Vi) pour tout i ).
On peut aussi inserer une fonction aleatoire, mais son impact devra etre minime.
Je sais pas si c'est clair, ni même si c'est appliquable pour plusieurs besoins. La difficulté etant de trouver une fonction f valide, mais l'avantage est que l'on peut etendre la durée à plus d'un tour.
Une autre idée completement hors de propos serait de laisser au joueur le soin de determiner les priorités des besoins, un vrai casse tête à faire en code ( enfin si on cherche l'optimisation bien sur, sinon suffit de definir un ordre de priorité arbritraire ).
Aussi, j'aime pas trop l'idée d'avoir un seule critère de jugement ( le moral des PNJ ), ca limite les possibilités des joueurs. Relié chaque besoin des PNJ au besoin du joueur ( PNJ qui a faim = PNJ qui recupere mal, PNJ fatigué = PNJ qui ne travail pas... ) me parait mieux, mais ce n'est qu'un point de vue.
Je pense qu'il faut partir sur une base probabilistique : J'ai tant de besoin, tant d'offre, je peux donc degager que sur un tour on va avoir une augmentation globale de X en besoin de type 1. Ensuite il faut une fonction de distribution. J'ai N PNJ avec une valeur Vi en besoin, Une moyenne de M en besoin, je dois distribuer X points de besoin, donc chaque PNG aura environ X/N + f(M-Vi).
f est une fonction de M-Vi (l'ecart à la moyenne ) heuristique censé simuler l'aspect prioritaire . Normalement l'integrale de F doit etre nulle sur l'interval [MaxVi,MinVi] pour pouvoir retrouver un resultat correcte. ( Je sais, parler d'integrale sur un ensemble discret n'est pas correcte, En fait c'est la somme des f(M-Vi) pour tout i ).
On peut aussi inserer une fonction aleatoire, mais son impact devra etre minime.
Je sais pas si c'est clair, ni même si c'est appliquable pour plusieurs besoins. La difficulté etant de trouver une fonction f valide, mais l'avantage est que l'on peut etendre la durée à plus d'un tour.
Une autre idée completement hors de propos serait de laisser au joueur le soin de determiner les priorités des besoins, un vrai casse tête à faire en code ( enfin si on cherche l'optimisation bien sur, sinon suffit de definir un ordre de priorité arbritraire ).
Aussi, j'aime pas trop l'idée d'avoir un seule critère de jugement ( le moral des PNJ ), ca limite les possibilités des joueurs. Relié chaque besoin des PNJ au besoin du joueur ( PNJ qui a faim = PNJ qui recupere mal, PNJ fatigué = PNJ qui ne travail pas... ) me parait mieux, mais ce n'est qu'un point de vue.