Ce devblog sera consacré à la description du processus de mise en place d'un de nos plus gros enjeux : le Pathfinding des zombies.
Priorité et rythme de développement:
Nous nous sommes principalement consacré à établir l'architecture aussi bien dans l'équipe que dans le jeu afin de nous améliorer dans le futur. Cela nous a forcé à drastiquement augmenter la proportion du travail d'équipe dans le jeu. Cela a eu un fort impact à court terme sur notre progression car notre équipe a du dédier du temps et des ressources à la planification. Le nouveau système de Pathfinding des zombies est un bon exemple de cette approche qui commence à porter ses fruits.
Voici quelques exemples des futurs changements majeurs:
-Nouveau système de rendus (qui permet des améliorations potentielles vers le DX10 ou le DX11
-Nouveau système d'intelligence artificielle pour les animaux qui est meilleure que les animations actuelles.
-Nouveau système d’action, remplacent le système d'action actuel utilisant la molette de la souris
-Refonte complète du système d'inventaire. Ce qui ne sera pas un gros changement pour les utilisateurs. Cela nous permettra d'implanter des nouveaux systèmes plus avancés de meilleures performances et moins de bugs.
Background:
Les zombies ont prouvé leur capacité à être l'un des composants les plus difficiles à développer du jeu. Alors que nous étions en train de développer le jeu nous avons réalisé que dans le temps que nous avions, nous aurions besoin de travailler sur les paramètres de l’intelligence artificielle déjà en place dans le moteur. Dans le moteur l’intelligence artificielle était calculée pour chaque personne. Dans le mod, cela a été abandonné au profit d’une approche « par joueur ». Cela signifiait que les zombies dans les mod étaient simplement des pions, activés par les joueurs se déplaçant à proximité.
En plus des problèmes de comportement, nous avons également eu des problèmes de Pathfinding et de collision avec l’intelligence artificielle. Le moteur faisait des choses pour lesquelles il n'a jamais été conçu pour, surtout en ce qui concerne l'intérieur de bâtiments. Nous avons tenté de remanier ces solutions pour répondre à nos changements, mais, comme on peut le constater actuellement cela a échoué. En fin de compte, nous avons décidé qu'il serait plus facile repartir de zéro.
Le challenge :
Il existe de nombreuses solutions intéressantes disponibles pour Pathfinding, c'est assez standard dans l'industrie du jeu vidéo. Notre problème n'est pas unique, mais notre situation était la suivante: notre carte est très grande mais elle exige la même précision qu'une petite.
Les Résultats :
J'ai parlé à Martin Slavkov, programmeur de la solution, pour m’aider à vous décrire le résultat avec quelques captures d’écran.
Un petit programme a été développé pour comprendre la carte Chernarus, charger tous les objets, et ensuite définir des milliards de lignes pour calculer la capacité de déplacement. Cela fonctionne alors non seulement à l'extérieur où vous pouvez marcher, mais également à l'intérieur. Avoir une solution unifiée pour le Pathfinding rend beaucoup facile notre travail.
Le moteur est alors capable de charger les morceaux de données (« chunks ») dont il a besoin. Il utilise peu de mémoire (environ 600 Mégabits supplémentaires, maximum), mais il ne charge que les « chunks » dont il a besoin. Cependant, comme nous nous dirigeons vers le 64 bits sur le serveur, cela réduit les problèmes potentiels avec la mémoire.
Les optimisations de performances peuvent être très importantes. Actuellement, l'équipe travaille sur la parallélisation de la fonction de Pathfinding de l’intelligence artificielle afin qu'elle puisse fonctionner sur une base séparée. Toutes les nouvelles fonctionnalités que nous développons de cette façon vont malheureusement augmenter notre temps de développement mais les résultats des performances seront extrêmement élevés.
Auparavant deux systèmes différents ont été utilisés pour la navigation de l’intelligence artificielle. Un système de navigation extérieure autour des objets statiques et dynamiques, et un système de « chemin » interne a été utilisé pour l'intérieur des bâtiments. Ces artistes impliqués définissent les chemins que l'intelligence artificielle pourrait suivre. Nous avons dû abandonner cette méthode d’intérieur en raison des problèmes de performances énormes avec un plus grand nombre d’agents.
Dans la capture d'écran ci-dessus, vous pouvez voir un chemin entre deux points rouges. Parce que le système est maintenant unifié, cela signifie que ces solutions de Pathfinding, bien plus efficaces et naturelles, sont disponibles pour l‘intelligence artificielle, en consommant bien moins de performances que précédemment.
Quelques mots de Chris Torchia, responsable de l’équipe artistique.
Je suis heureux de vous faire part du contenu qui va bientôt arriver sur les serveurs expérimentaux. Récemment, les studios de Prague et de Bratislava se sont rencontrés et j’ai pu jeter un coup d’œil sur tous les travaux en cours concernant les nouveaux animaux. Nous avons une implémentation de base des prototypes d’animaux qui a vraiment l’air incroyable!
Un hameçon et une carpe ont été créés, que les joueurs seront en mesure de pêcher dans les étangs. Nous avons également créé des modèles de filets de poisson que vous pourrez cuisiner. Cela va littéralement changer le jeu. A propos des animaux ; nous avons aussi rencontré Big, la tortue du studio de Bratislava. Hum, ça me donne une idée...
Notre artiste responsable des personnages a créé un nouveau gilet de police de grande capacité pour aller avec notre tenue de police anti-émeutes Орёл (« Aigle » en russe NDT) inspirée de l’unité russe OMON. Nous avons également commencé à travailler sur les secouristes/ambulanciers, les pompiers, et la finalisation de la tenue Gorka (tenue des forces spéciales russes NDT).
Feux de camps, chasse et être un bûcheron!
Nous avons retiré les feux de camps et la chasse de la mise à jour précédente car dans leur état ils n’amélioraient pas le gameplay. Le temps supplémentaire a été consacré à améliorer ces aspects du gameplay.
La mise en place sur l’expérimental devrait nous montrer la façon dont cela va fonctionner. Couper du bois génère des buches, et après un certain temps, les arbres seront "dépensés" et tomberont. L'abattage des arbres se fait en tenant une hache dans les mains et en utilisant le menu d'actions avec molette de la souris. Il s'agit d'un excellent exemple de la raison pour laquelle nous voulons supprimer le système d'actions avec la molette de la souris. Au lieu de cela, nous envisageons de vous frapper tout simplement l'arbre à la hache et de recevoir directement du bois, mais c'est pour l’avenir.
Les feux de camps pourront être améliorés avec des pierres, qui seront récupérées à partir du sol autour des zones rocheuses ou en frappant les roches avec une pioche. Les feux de camps pourront être craftés en utilisant un "kit de feu" avec des objets tels que des chiffons et des brindilles. Les brindilles devront être trouvé es sur le sol des forêts. Tous ces aspects ont besoin d’être améliorés avec un nouveau système d’action, ces changements ouvriront la voie à des systèmes plus complexes tels que l’horticulture.
La prochaine mise à jour :
Nous n'avons pas de délai fixé pour les mises-en-place expérimentales, tout simplement pour nous faciliter le travail pour les versions stables. Avant toute chose, il est essentiel que les gens comprennent plusieurs choses:
-Nos différentes tâches prennent différentes quantités de temps.
-Nos tâches prioritaires sont basées autour de ce qui est nécessaire en fonction des dépendances du jeu, pas sur ce qui est nécessaire pour améliorer le design.
-Les versions planifiées sont notre objectif, mais pas notre but absolu. Nous retardons et reportons les versions dont nous ne sommes pas sûrs.
-Les Devblogs ne sont désormais plus programmés chaque semaine, et seront effectués aussi souvent que nécessaire.
Le mot de la fin
C'est un moment très excitant pour nous tous car nous sortons de deux mois de travail très agressif. Nous avons fortement élargi l'équipe, ce qui est très risqué. Cette prise de risque commence à porter ses fruits, et nous sommes ravis de voir l'impact massif que le Pathfinding et la collision auront sur l'expérience de DayZ.