Enigma (jeu vidéo, 2002)
Enigma est un jeu vidéo de puzzle allemand inspiré d’Oxyd.
Développeur |
Ronald Lamprecht, Raoul Bourquin, Andreas Lochmann[1],… |
---|---|
Réalisateur |
Daniel Heck |
Compositeur |
Andrew Sega (en) |
Version |
1.21 () |
---|
Site web |
---|
Règles du jeu
Enigma possède trois sortes de paysages (ou niveaux)[4]:
Boule noire
Dans les niveaux les plus classiques, le héros du jeu est une boule noire appelé Blackball ou Marble qui est chargé de toucher dans le bon ordre des pierres dites oxydes dont les couleurs sont appariées. Lorsqu'une paire d'oxydes est ouverte (après avoir touché ses deux composantes l'une après l'autre), elle le reste; et lorsque toutes les paires d'oxydes du niveau sont ouvertes, la partie est finie.
Méditation
Dans les niveaux de méditation, il y a plusieurs billes blanches (en général) à caser chacune dans un trou. Dès que chaque bille est en place, le niveau est terminé.
Yin-Yang
Dans certains niveaux, il y a deux boules, l'une noire, l'autre blanche. La souris ne commande que l'une des deux, mais un outil appelé yin-yang permet de commuter entre les deux. Issus de vrais jeux à deux joueurs dans Oxyd (avec un câble MIDI branché entre deux ordinateurs Atari), ce genre de jeu présente l'originalité qu'il n'y a pas de compétition entre les joueurs, mais qu'au contraire chacun a besoin de l'autre pour réussir.
Historique
Dans les années 1990, un jeu appelé Oxyd (en), initialement diffusé pour Atari était porté sur IBM PC. Le jeu Oxyd était développé par Meinolf Schneider. Il comportait déjà les trois sortes de paysages qu'on trouve dans Enigma. Un fan de ce jeu, Daniel Heck, a créé le [2] une version libre d’Oxyd avec possibilité d'importer les niveaux d'Oxyd (appelés paysages), et basé sur le même principe atextuel (la règle du jeu est à deviner pour chaque paysage). Il a donc décidé de nommer Enigma cette version libre du jeu.
Daniel Heck a d'emblée placé Enigma sous licence libre GPL, ce qui a permis à de nombreux amateurs de contribuer à ce jeu, créant au fil des années une communauté de contributeurs qui est encore active aujourd'hui. Parmi ces développeurs, on notera la présence d'Alex Smith[5].
Développé sous Linux[6], le jeu est régulièrement porté sous Windows et Mac. Le format de fichiers permet d'ailleurs de créer un paysage avec un éditeur de texte sous n'importe quel OS. La licence GPL étant virale, les paysages créés sont automatiquement placés à leur tour sous licence GPL et sont dans les faits, libres.
Formats des fichiers
Un paysage (niveau du jeu) est stocké dans un fichier xml, qui contient, outre des métadonnées (comme le numéro de version, nom de l'auteur, date, référence à la licence GPL, nom du paysage ...), du code lua qui décrit le paysage, avec une base de données d'objets Enigma et des actions déclenchées par certains des objets (par exemple, l'action d'un interrupteur ou l'appui sur une dalle sensible appelée trigger).
Aspect théorique
Arbres et labyrinthes
L'algorithme de Kruskal, qui est pourtant destiné à parcourir des arbres, est utilisé à l'envers par Enigma pour construire aléatoirement des labyrinthes[11].
Simulation
Le format de fichiers xml et la puissance du langage lua permettent de simuler d'autres jeux à l'intérieur d'Enigma, parmi lesquels Pong, Pacman, Tetris, Pentomino, Nim, Mastermind, Sokoban, l'Âne rouge, Sudoku, le jeu de la vie de John Horton Conway, etc.
L'un des niveaux possède même un interpréteur dans le langage de programmation Brainfuck[12]; un autre pilote une tortue LOGO[13].
Voir aussi
Liens externes
- (fr) , la description du jeu sur Framasoft.
- (en) , La page d'accueil du jeu
- (fr) , un article de présentation axé sur l'aspect algorithmique du jeu
- (en) le code source de la version 1.10 d'Enigma (en beta test, et pas finalisé)
- (en) la description des pièces du jeu dans la version 1.10, document pdf destiné aux développeurs du jeu
- (en) , un logiciel en Java (langage) qui permet de construire un niveau d'Enigma en peignant sur un canevas.
Notes
- auteur notamment de Nabokos qui est un Sokoban à l'envers:
- proposé sur le forum des développeurs de jeu
- détails sur la description dans la référence pour les développeurs (version pdf):
- voir à partir de la ligne 111 de cette bibliothèque en lua
- le niveau en lua
- son source
- la liste dans le source du jeu
- le code source en lua