Un outil intégré à Unity qui permet de dessiner et générer aléatoirement un labyrinthe 2D ou 3D avec vos propres Prefabs.
Autre game jam, autre outil Unity. Durant cette Ludum Dare 22, fin 2011, j’étais tout seul pour faire le jeu, et en tant que développeur, il n’était pas question d’apprendre à modéliser en 3D durant le week-end, que je passe également avec ma petite famille. Donc je me suis limité à des pièces cubiques, mais pour la beauté de la chose, j’ai directement créé en C# les pièces 3D. Le principe du jeu, Sqared, fait référence au film Cube dans sa construction de pièces cubiques contenant des pièges à éviter, et ajoute la possibilité pour le joueur de dialoguer bien sûr avec les autres personnes qu’il rencontre dans le labyrinthe mais également, petit twist du jeu, d’échanger sa place avec elle : il peut ainsi tour à tour changer de place avec une personne en fauteuil roulant, une personne âgée avec une canne, une strip teaseuse (choix inspirés alternativement par le level design et le film). Il ne pourra amener qu’un seul personnage jusqu’à la fin, et certains pièges ne peuvent être franchis qu’avec un unique personnage également : au joueur de choisir son parcours et de terminer avec le personnage qu’il décide.
Tout au long de la game jam, le scénario évoluait, accompagnant les nouvelles fonctionnalités, personnages et pièges à intégrer. Le labyrinthe évolue donc aussi, afin que l’ensemble reste cohérent dans sa longueur. Il est devenu évident assez rapidement que je devais ajouter un petit outil pour m’aider à faire ça.
En un week-end, j’avais un outil pour dessiner des labyrinthes en 3D
Après avoir constaté la rapidité avec laquelle il était possible de créer un outil de Level Design dans Unity, je me suis dit que cet outil pourrait être utilisé par de nombreux développeurs, j’ai donc pris un mois pour l’améliorer et le mettre à disposition de tous.
Durant cette période, et par la suite, lors de la vie du studio, cet outil s’est complété, pour donner finalement A Maze Kit, un outil dans lequel il est possible de :
- dessiner soit-même un labyrinthe en 2D ou en 3D
- générer procéduralement un labyrinthe de la dimension souhaitée, avec un choix d’algorithmes (Depth First Search en premier, avec des variantes)
- visualiser et éditer le labyrinthe directement dans la scène 3D de Unity
- générer le labyrinthe à partirs de préfabriqués Unity en un clic
- choisir un thème (un ensemble de préfabriqués) qui permettent d’aboutir directement à un jeu fini !
L’asset est livré avec deux thèmes :
- un thème 2D : un jeu d’infiltration et de recherche d’un objet caché dans la scène,
- un thème 3D : un jeu de tir où il faut trouver la sortie.
Nous lancerons par la suite une phase de recherche et développement prometteuse car l’outil a finalement pu positionner des pièces 3D les unes par rapport aux autres sans que celles-ci n’aient obligatoirement des dimensions identiques. J’ai d’ailleurs beaucoup appris sur la topologie à ce moment là grâce aux chercheurs du laboratoire XLIM de Poitiers, mais aussi grâce aux talents de développement et de synthèse de Viviane, la développeuse que j’avais recruté pour cette tâche là.
De tous les outils développés sous Unity et partagés, c’est celui qui pouvait le plus aider au développement d’un projet mais qui n’a finalement jamais servi dans un projet grand public, tout du moins, jusqu’à maintenant. Finalement, ce sont les recherches sur les algorithmes de génération de labyrinthe et leur représentation en données qui reste toujours d’actualité, peu importe le moteur et le langage utilisé.
Ci-après une démonstration sous forme de trailer !
Crédits
- Conception, développement v2 : Viviane Jaraczewski
- Conception, développement v1 : Frédéric Rolland-Porché
- Graphismes 2D/3D : Anne-Sophie Girault
- Marketing : Julie Mazé