JeuWeb - Crée ton jeu par navigateur
PNJ, ou comment faire évoluer des évenements non liées a des joueurs? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : PNJ, ou comment faire évoluer des évenements non liées a des joueurs? (/showthread.php?tid=579)

Pages : 1 2


PNJ, ou comment faire évoluer des évenements non liées a des joueurs? - NicoMSEvent - 27-12-2006

J'aimerais que mon monde vive, et donc, qu'il évolue, même lorsque personne n'est connecté au serveur. Est-il possible (autrement qu'avec le "cron" de linux) de faire évoluer (se déplacer) des PNJ, ou se faire multiplier des monstres "tout seul"? Je veux dire par là sans intervention humaine.

Même si ce n'est que le début d'une idée, c'est le bienvenu, il n'y a pas de concept idiot, juste des maniere idiote de les interpréter ^^


RE: PNJ, ou comment faire évoluer des évenements non liées a des joueurs? - Loetheri - 27-12-2006

Alors, oui et non ^^ Mais je ne crois pas que cela te sera utile dans ton cas.

En faite, lorsqu'on récupère les données des bestioles, on leur fait jouer un tour ^^ Donc par exemple un déplacement. Donc ils ne bougeront pas en temps réel mais seulement quand ce sera nécessaire.


RE: PNJ, ou comment faire évoluer des évenements non liées a des joueurs? - joshua - 27-12-2006

J'ai croisé sur un site un "webcron" en gros, c'est un cron situé sur le web, qui lance régulierement un trux via URL. Si tu blinde ca ca devrait passer. Sinon autre possibilité: tu prevois tous tes calculs et tout s'effectue a la connexion d'un joueur. Donc parfois ce sera plus long que d'autres ^^


RE: PNJ, ou comment faire évoluer des évenements non liées a des joueurs? - Maegia - 27-12-2006

Inutile de faire bouger les créatures lorsqu'il n'y a personne de connecter, non ? Tu enregistres simplement le temps de la dernière connection d'un joueur, et lorsqu'un nouveau joueur se connecte, tu regardes selon le temps écoulé le nombre d'action possible pour tes créatures, et tu les leur fait jouer. Inutile de jouer avec des cron etc, souhaites-tu vraiment faire grossir ton bandwith alors qu'il n'y a aucun joueur présent ?


RE: PNJ, ou comment faire évoluer des évenements non liées a des joueurs? - NicoMSEvent - 27-12-2006

non, en fait le webcron est une mauvaise idée... ça consomme plein de bande passante pour rien, surtout que j'ai un cron en local qui pourrait faire la meme chose.
Ce qu'il faudrait pour bien faire est un process en parallele qui serait l'IA des monstres et tout.
En fait, ce qui m'intéresse est le temps réel, et avoir un univers permanent avec des interaction multiples et complexes.
Par exemple, une communauté de lapins. Des loups s'en nourrirait, mais n'en mangerait pas assez que pour les faire disparaitre. Donc, on aurait un certain équilibre. Si on a un joueur exterminateur de lapins (XP), il déséquilibrerait le système. Les loups iraient chercher leur nourriture plus loin (les petits villageois du village voisin, par exemple). Donc, un joueur pourrait déclencher qqch qui se passerait quelques heures plus tard (dès que le nombre de lapins atteind un seuil minimum).
Vous en pensez quoi?
Une solution pour ce probleme épineux? ^^


RE: PNJ, ou comment faire évoluer des évenements non liées a des joueurs? - Loetheri - 27-12-2006

Euh ... Tu veux créer un semblant d'IA nettement plus complexe que ce qui est utilisé pour les jeux PHP traditionnels Smile

N'ayant pas encore eu de véritables cours d'IA (qu'une approche historique Big Grin), je ne saurais malheureusement t'aider.


RE: PNJ, ou comment faire évoluer des évenements non liées a des joueurs? - NicoMSEvent - 27-12-2006

je pense que je vais créer un programme sur le coté qui va attaquer la DB, et gérer tous les monstres et autres PNJ...
vu la réflexion que j'ai eu tantot, je pense que je vais continuer sur cette voie là. Php ou pas, je ne sais pas encore...
Je parcourerai tous les monstres tous les x milli-seconde, et en fonction de leur environnement immédiat, ils réagiront de manière simple.
Macroscopiquement parlant, ça aura l'air d'avoir la complexité d'une fourmiliere... chaque fourmi a une tache simple. Chacun son job, et on verra ce que ça donne ^^

MAis avant ça, je vais m'attaquer a l'animation des modeles 3D (pour que visuellement ça donne bien Wink )


RE: PNJ, ou comment faire évoluer des évenements non liées a des joueurs? - Maegia - 27-12-2006

Je ne comprends pas pourquoi tu voudrais que, même sans qu'aucun joueur ne soit connecté, ton jeu te bouffe de la bande passante. D'autant plus que tu comptes gérer des animations, bonne chance pour te trouver un hébergeur acceptable ! Wink


RE: PNJ, ou comment faire évoluer des évenements non liées a des joueurs? - NicoMSEvent - 28-12-2006

avec un programme parallele sur un meme serveur, il n'y a pas de perte de bande passante vu que tout se passerait en local.
Tout ce qu'il y aurait comme ressource de "gaspillée", c'est du temps processeur (et un peu de mémoire).

Les animations et la 3D seront gérées coté client, ça sera déjà ça en moins coté serveur


RE: PNJ, ou comment faire évoluer des évenements non liées a des joueurs? - joshua - 28-12-2006

Moi j'ai eu des cours d'IA....
Mais dans le cas présent ca s'applique mal. Car tu risques comme le dise les autres de griller un paquet de ressources. Tu peux te servir de la connexion des joueurs pour la mise à jour.