Tag : développement

10/10/2007 - 10:47:53

Editeur de cartes : partie 2

Pour faire suite à mon premier message à propos de l'éditeur de carte, je vais vous présenter cette fois plus en détail la façon dont est construit le décor dans Wakfu.

Les plus observateurs d'entre vous auront certainement remarqué que les éléments graphiques ne dépassent jamais latéralement de la cellule où ils sont posés, mais qu'ils possèdent une hauteur variable.
Si cela ne pose aucun souci pour afficher la majorité des éléments du décor (Arbres, fleurs, etc.), cela pose une contrainte importante pour afficher de plus gros élément, à savoir : de devoir les découper en blocs plus petits.

Si on prend l'exemple d'un bâtiment, plutôt que d'afficher une grosse texture le représentant, nous affichons un empilement de briques, de tuile et de décorations diverses (portes, fenêtre, etc...).
Le level design devient donc un véritable jeu de Lego !

L'intérêt de ce système est double. Tout d'abord, cela permet de créer des dizaines de maisons à l'aide des mêmes petites textures et ainsi de réduire considérablement le poids du jeu. Cela nous permet également de créer simplement un monde isométrique où chaque objet possède un volume 3D définissant la façon dont un personnage peut interagir avec (collision, déplacement, etc..).
En théorie il est donc possible de marcher sur le toit d'une maison ou d'escalader une montagne à partir du moment où l'on trouve un passage permettant d'y accéder...

Nous nous sommes également aperçus qu'il était indispensable de pouvoir poser à plusieurs endroits le même bâtiment sans devoir refaire complètement l'empilement des blocs qui le compose. C'est pourquoi nous avons créé une notion de groupe, qui permet de sauvegarder un ensemble de blocs pour les réutiliser plus tard, et surtout de pouvoir y apporter une modification pour qu'elle soit prise en compte partout dans le monde ou l’on a posé ce groupe.



De plus, nous voulions que la taille des intérieurs et les extérieurs des bâtiments soient cohérents pour éviter les maisons avec un intérieur grand comme une cathédrale. Nous avons donc créé un système de calque permettant de réunir certains blocs au sein d'une même cellule.
Les éléments qui constituent l'intérieur de la maison et l'extérieur sont groupés dans des calques différents. Donc en masquant l'un ou l'autre, nous obtenons une transition « parfaite » lorsque l'on rentre dans un édifice.


En plus des éléments graphiques, il est possible d'ajouter d'autres éléments pour embellir la carte, comme poser des ombres sur le sol ou donner une teinte à un objet pour créer une ambiance particulière.

Enfin, des systèmes de particules peuvent également être posé sur une carte pour y ajouter du dynamisme (la flamme d'une torche, des papillons qui volent, des effets atmosphériques...), mais qui sait, cela fera peut-être l'objet d'un prochain post ? ^^
08/06/2007 - 14:58:41

Editeur de Carte : Partie I

Bonjour à tous !



Je vais faire un petit retour en arrière pour vous expliquer les prémices du développement de wakfu, et la conception de son éditeur de carte.

Un des postulats de base dans la création du jeu wakfu fut d'ajouter ce qui manquait cruellement à Dofus : le scrolling.
Cela impliqua vite la nécessité de pouvoir construire le monde non plus carte par carte, mais dans sa globalité, afin de ne pas se soucier des raccords entre les cartes et de pouvoir travailler les zones plus rapidement.
Après quelque temps de réflexion sur les technologies que nous pouvions utiliser, nous sommes arrivés à la conclusion que le combo C# / DirectX offrait des perspectives intéressantes pour concevoir un éditeur ergonomique et rapide.

Ayant mis de gros espoirs sur les nouvelles versions de Flash et de son Action Script 3, le client du jeu avait lui débuté en flash. Un des premiers problème que nous avons rencontré fut que l'on ne pouvait pas utiliser directement les 'sprites' réalisés sous flash par les graphistes avec un affichage DirectX ...

Nous avons donc tenté de schématiser chaque sprites dans l'éditeur par des symboles et des couleurs, mais cela s'avéra vite inutilisable car on ne disposait pas d'un aperçu réel de la carte. Nous sommes finalement parvenus tant bien que mal à utiliser de façon transparente les fichier générés par flash pour les afficher en tant que Bitmap dans l'éditeur, c'était déjà nettement mieux ...

Une fois ce souci résolu nous nous sommes attelé Julien (Poup) et moi même à la conception du coeur de l'éditeur, pendant que Bo tentait contre vents et marrées de réaliser un scrolling fluide en flash, et qu'une autre partie de l'équipe commençait à réécrire un serveur de jeu en Java plus robuste.

Quand l'éditeur commença à fonctionner correctement, le constat fut sans appel, même si le scrolling en flash du client était désormais fonctionnel, l'éditeur avait des performances bien meilleures car il profitait de l'accélération 3D et avait un rendu assez proche de celui offert par du vectoriel.
Nous avons donc décidé de réécrire le moteur du jeu en Opengl pour avoir des performances proche de Directx et conserver la portabilité vers Mac et Linux.

Pendant plusieurs mois l'éditeur s'est vu enrichir de nouvelles fonctionnalités, l'une d'elle était de pouvoir travailler de façon collaborative sur la carte, il a donc fallu écrire un serveur pour gérer les transactions entre les différentes instances de l'éditeur et permettre ainsi de créer une sorte de "Sim-City Online" , où les graphistes responsable de la conception des cartes s'amusaient à détruire l'arbre du voisin et à dialoguer à l'aide de buissons...

Ces divertissements ne durèrent qu'un temps car devant l'ampleur de la tâche, il fallu mettre les bouché double pour arriver à bout de la première île du jeu.
Encore aujourd'hui, Poup se fait régulièrement harcelé pour ajouter de nouveaux outils à l'éditeur (Copier/coller, teinte, atténuation des dénivelés etc...) et c'est loin d'être terminé ... !

page generated in 32 msec using 0 query(s)