Héros / Héroïne
|
Salut,
J vais aussi ajouter mon grain de sel sur ce thread bien sympa. Tout d abord regardons la génération du monde. Un monde peut être facilement généré à partir de brique de base. Ces briques pouvant elles mêmes être générées sans trop de problème. A partir de ce monde généré, il est possible de lui rajouter ce que certains d entre vous appellent des tilles. Ou lui en enlever. Ce qui fait pour un monde, en théorie infinie (dépend des règles d évolutions du monde par contre) Ce que je ne comprends pas c est pour quoi des tilles n'ont pas le droit de se superposer. Un mob serait sur 2 tilles, managé par 2 serveurs différents ? Mm je ne suis pas d accord, on peut facilement connaitre qui manage quoi. Et justement quand un mob se trouve sur 2 tilles, c est a ce moment la ou on peut faire un "Switch" de gestion du mob entre les 2 serveurs. On peut aussi avoir un serveur dédié à faire tourner le code des IA ce qui enlève complètement le problème des tilles. Le serveur d IA se moquera totalement de savoir sur quel tille il est. Il a juste besoin de connaitre le monde d ailleurs il peut connaitre le monde entier sans trop de problème car il n a besoin que d une représentation quasi matricielle. Le problème d escalier étant alors appartenant mais solvable en utilisant des matrices de niveaux qui ne dépendent pas de Z mais de l empilement de certaines salles. Un changement de Z sur un même niveau ne pose aucun problème. La modification du terrain se fait aussi plus facilement en imposant des contraintes. IE: on évite de modifier le terrain qui appartient a 2 tilles meme si ca reste largement possible Ok, sauf pour l interpolation qui reste une prise de tète incroyable. 2 tilles se superposent, rien n empêche de niveler le terrain pour que ca soit cohérent entre les 2 tilles. Avoir 2 tilles permet aussi d'une certaine manière de créer des falaise assez facilement. Quand on est sur la tille la plus "haute" on peut considérer le haut de la falaise comme passant. Quand on est sur celle en bas, c est bloquant. En ce qui concerne le pathfinding, c est encore mieux, l algo le plus utilisé reste l A*. Avec un découpement par tilles superposé partiellement, totalement ou non on fait un A* en 2 passe. Première passe au niveau des tilles, et une autre passe entre la première tille et la seconde. L'algo n a donc plus besoin de calculer le chemin entier, juste un morceau => gain en ressource. Et de plus, avoir des tilles qui se recouvrent évite le problème des plantages de pathfinding entre 2 tilles. Imaginons que l interpolation nous positionne sur le point qui n appartient a aucune des 2tiles ... => crash sauf si catché Parlons un peu de performance. La prise de décision est rarement ce qui bouffe le plus de ressource. Ce qui mange les ressources c est le pathfinding et l interpolation associée Une IA n a pas besoin de recalculer ses décisions toutes les 15 ms, une decision pour 750 a 1000 millisecondes, c est largement suffisant. Le mouvement par contre est continue => il consomme plus Pourquoi ne pas faire un calcul d IA sur un client, j vois une raison simple: Ca sert a rien d augmenter la BP qu’un serveur prend déjà dans la poire. Car tout calcul fait sur un client doit se répercuter sur le / les serveur(s) et ensuite être Réémis aux autres clients. Autant faire les calcules sur le serveur ou un serveur spécifique. Ok le réseau peut être optimisé pour mais ca reste une complexité supplémentaire. Toujours concernant l IA, un system d IA a prise de décision base sur une collecte d'informations pertinentes puis une moulinette peut être utilisé. La moulinette pouvant bien sur évoluer via des pondérations a la réseau neuronal. Plus l IA est complexe, plus le nombre de décisions est important. Avec un système de décisions il est, de plus, plus simple d optimiser le comportement. On peut ajouter les décisions une a une. On balance d abord les 2 premières, puis on ajoute une 3 Emme, on évoluer un peu, etc. .... En se basant sur ce principe, l'algorithme global de l IA ne change pas. Pour chaque décisions il existe une action. L'IA ne fait que calculer les décisions qui correspondent a son type de mob. On a ainsi une simplification du développement de l IA car elles se ressemblent toutes. Et en plus on peut les laisser évoluer pendant le combat si nécessaire. Pour tout ceux qui me dirait que j y connais rien, attendez le 5 juillet vous jugerez a ce moment la. En attendant concernant la génération du monde voila 2 liens qui montrent ce que je fais ajd, le seul hic est que ca ne gère pas le multi niveau (une pièce au dessus d une autre) pour l instant. Monde sans mur Monde avec mur basse résolution Et le monde vu de l intérieur Ce monde dispose aussi d une IA basée sur des décisions qui fonctionne plutôt pas mal. Cordialement, Chryso |
18/06/2007, 10h04 |
|
Aller à la page... |
A quand un environnement intelligent ?
Suivre Répondre |
|
Partager | Rechercher |
girion |
|
Le souci, Nepher, c'est qu'il est loin d'être prouvé que ton intérêt pour la patate chaude soit une attitude plus que fortement minoritaire au sein de la clientèle des MMOGs.
|
27/06/2007, 11h43 |
|
Lyta Alexander |
Voir le profil public |
Trouver plus de messages par Lyta Alexander |
Lyta Alexander |
Voir le profil public |
Trouver plus de messages par Lyta Alexander |
Lyta Alexander |
Voir le profil public |
Trouver plus de messages par Lyta Alexander |
Lyta Alexander |
Voir le profil public |
Trouver plus de messages par Lyta Alexander |
|
Concernant Wakfu, une petite new sur l'évolution de l'univers de ce jeu, et l'interaction que le joueur pourrait avoir avec : http://devblog.wakfu.fr/categories/4-gameplay.html
|
29/06/2007, 15h53 |
|
Suivre Répondre |
Fil d'ariane
Connectés sur ce fil1 connecté (0 membre et 1 invité)
Afficher la liste détaillée des connectés
|