Moteur 2D

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Image contenant une multitude de dessins. De haut en bas : effets de sortilèges, personnages, équipements, éléments de décor.
Tile set : fichier image contenant l'ensemble des dessins élémentaires d'un niveau. On peut apercevoir les effets de sortilèges statiques (deux premières lignes), les animations des sortilèges (boule bleue) et des personnages, des éléments de l'inventaire et les éléments constitutifs du décor. Les dimensions et les crédits sont indiqués en bas, à droite.

Un moteur 2D est une bibliothèque logicielle dont la principale fonction est d'afficher à l'écran un environnement graphique bidimensionnel ou isométrique, à partir d'un point de vue spécifié.

Il existe plusieurs types de moteurs 2D, dont les deux principaux reposent respectivement sur l'affichage d'une image unique, et sur l'affichage en tiles. Dans le premier cas, les niveaux sont faits d'une seule pièce, c'est-à-dire que le personnage dirigé par le joueur évolue sur une image unique de grande taille. Dans le second cas, les niveaux sont créés par assemblage d'une multitude de petites images, pour former une grande image. L'image de base est appelée « tile » et le fichier qui contient l'ensemble des tiles d'un niveau est appelé « tile set ». Un 'tile set est défini par la largeur et la hauteur de ses tiles en pixels, et est généralement crédité. Un tile set contient à la fois des éléments du décor, les animations des personnages et éventuellement des éléments de l'interface du jeu.

Historique[modifier | modifier le code]

Durant les premiers stades du développement des jeux vidéo, les développeurs étaient confrontés aux limitations techniques des machines de l'époque. Deux problèmes étaient récurrents : le manque de mémoire vive, et la lenteur du traitement des images et de leur affichage à l'écran. Les niveaux étaient jusqu'alors faits d'une seule pièce, c'est-à-dire une très grande image. Elle était entièrement chargée en mémoire pour pouvoir être affichée à l'écran, ce qui conduisait à une surconsommation inutile de la mémoire vive, puisque seule la portion de l'image où se trouve le personnage était affichée à l'écran.

Capture d'écran d'un jeu. La vue de gauche montre les personnages en train de combattre des zombis dans une sorte de cave, tandis que le menu de droite montre la côterie, l'inventaire et le journal de bord.
Capture d'écran de Blades of Exile : trois tile sets sont utilisés pour dessiner : le niveau (écran de jeu), les boutons d'action (en bas), les icônes (à droite).

Pour remédier à ces limitations, et en partant du constat que les environnements dessinés à l'écran se ressemblaient souvent, une nouvelle technique d'affichage fut développée. Cette fois-ci, au lieu de charger en mémoire une très grande image représentant tout l'environnement du jeu, le moteur ne chargerait en mémoire vive qu'une série de petites images, les tiles. Le moteur n'avait plus qu'à répéter et assembler les images pour former le niveau complet. De cette manière, seule la partie du niveau qui devait être affichée à l'écran était chargée en mémoire, d'où un gain de mémoire.

Cette nouvelle approche sera une révolution pour les jeux de plates-formes et les RPG, et elle atteindra son apogée durant les périodes 8 bits et 16 bits des consoles de jeux. Quelques exemples : Megaman (Nintendo Entertainment System), The Legend of Zelda: A Link to the Past (Super Nintendo) et Shining Force (Mega Drive). De nos jours, les jeux en tiles sont toujours d'actualité, notamment pour les consoles portables et les téléphones mobiles.

Principe[modifier | modifier le code]

Le niveau est découpé en une mosaïque de cases et est lié à un tableau ou une matrice à deux dimensions, dont chacune des entrées contient les caractéristiques d'une case. Par exemple, le développeur peut définir pour une case si le joueur peut marcher dessus (opposition sol / mur), si la case blesse le joueur (opposition terrain normal / lave), etc. Plus important, chaque entrée définit l'image qui doit être utilisée lorsque la case est affichée à l'écran. Cette technique permet aux développeurs de créer des environnements entiers, en n'ayant recours qu'à un simple éditeur de texte et un tile set. Toutefois, pour des raisons de commodité, la quasi-totalité des jeux en tiles sont créés à partir d'éditeurs spécialisés.

Capture d'écran d'un logiciel utilisé pour dessiner une ville médiévale en vue aérienne.
Capture d'écran d'un logiciel d'édition de jeu en tiles. Création d'une carte du monde en vue de dessus en perspective, à base hexagonale.

Les cases ont une forme géométrique simple : triangle, carré, losange ou hexagone. Plus rarement, il est possible de rencontrer des cercles. Ces cases sont dessinées avec une hauteur et une largeur définies par l'utilisateur, mais elles doivent correspondre aux dimensions des images composant les tile sets choisis.

L'affichage du niveau peut se faire en vue de côté, en vue de dessus stricte (vue aérienne), en vue de dessus avec perspective (effet de profondeur suivant un seul axe) ou en vue isométrique. Dans le dernier cas, il n'est plus possible de définir les paramètres de collision directement à partir du tableau ou de la matrice : il faut alors définir des masques. Les masques sont des formes géométriques invisibles pour le joueur, qui épousent la forme d'un obstacle sur sa base. Par exemple, si un cylindre bloque un passage, son masque aura la forme d'un disque, et le joueur pourra librement circuler autour de ce disque. Si le joueur se place derrière le cylindre, il sera en partie caché par celui-ci, alors que s'il n'y avait pas de masque, il ne pourrait tout simplement pas se placer derrière le cylindre.

Variantes[modifier | modifier le code]

Le système en tiles présente l'inconvénient de donner au joueur une impression de lassitude, puisque les niveaux sont conçus d'une répétition des mêmes images de base, souvent peu détaillées. De plus, avec les progrès de l'informatique, notamment en termes de capacité de mémoire vive, le problème de la surconsommation inutile de la mémoire perd de son importance. Par conséquent, le système en tiles est peu à peu tombé dans la désuétude, même s'il reste encore aujourd'hui utilisé par les amateurs pour sa simplicité.

Les jeux vidéo en deux dimensions se basant sur une image unique sont progressivement ré-apparus. Bien que l'édition des niveaux soit rendu plus difficile (une simple modification sur le niveau nécessite de retoucher le fichier en entier), les graphistes peuvent désormais travailler sur un seul fichier et avec une plus grande liberté, ce qui permet d'augmenter significativement le niveau de détail de l'image.

Cette façon de concevoir les niveaux peut être combinée avec l'ancien système de tiles : l'image du niveau peut être découpée en rectangles de taille moyenne, et seule la portion de l'image affichée à l'écran est chargée en mémoire. De cette manière, il est possible de dessiner des environnements riches et variés, sans pour autant perdre en mémoire vive. Commandos 3 : Destination Berlin est un exemple de ce type de combinaison.

Il est également possible de construire des niveaux à l'aide de blocs. Cette fois-ci, un tile sert de bloc, mais l'agencement des blocs n'a pas besoin de suivre un maillage régulier, ce qui offre une plus grande liberté dans la création de l'environnement. Chaque bloc contient la définition de ses propres caractéristiques (terrain solide, lave, zone toxique, etc.). Ce système est notamment utilisé pour les jeux de plates-formes, tels les premiers Rayman.

Notes et références[modifier | modifier le code]

Voir aussi[modifier | modifier le code]