Voici la présentation de The Map, une participation en équipe à notre concours de programmation Python 2024-2025 :
- le jeu a initialement été conçu pour NumWorks par Vivien G-R. alias Azre, élève de Vincent Robert alias cent20 au Lycée Louis Pasteur en Avignon, où il suit l'enseignement de spécialité NSI depuis la rentrée 2024
- puis porté pour TI-Nspire CX II par Pierre B. alias Exyodeff, autre élève de Vincent
Vivien nous a fourni 3 versions :
- Dans une première version, il s'agissait d'un jeu où les donjons, générés aléatoirement, commençaient avec 3×3=9 cases pour s'étendre au fur et à mesure des passages des étages. Les choix d'itinéraires étaient donc initialement très limités et la carte générée se devait d'en garantir au moins un comme gagnant pour ne pas rendre le jeu impossible
- Une deuxième version améliorait significativement l'interface en regroupant les informations à afficher sur une barre d'état sous la carte, et les rendant plus intuitives en accompagnant les points d'icônes de couleur.
- Enfin la troisième version démarre directement avec 8×4=32 cases, offrant ainsi bien plus de possibilités d'itinéraires, le choix de ce dernier devenant un véritable enjeu. Beaucoup moins monotone au départ !
Tu disposes de points de vie, d'attaque et de défense, et ton objectif est de parvenir vivant à la case de sortie marquée d'une croix.
Les cases sont souvent associées à 1 événement se déclenchant lorsque tu la franchis pour la première fois. Ces événements peuvent être de différents types, clairement identifiables par une forme monochromatique :
- bonus :
- ajoute des points de vie (cœur rose)
- ajoute des points d'attaque (épée verte)
- ajoute des points de défense (bouclier vert)
- dangers :
- retire des points de vie (pic rouge)
- monstre à occire pour passer (épée rouge)
- autres :
- la sortie déjà évoquée (croix jaune)
- gemme pouvant être ramassée (losange bleu sur fond jaune)
Les monstres de différentes espèces ont chacun leurs points forts et points faibles, disposant eux aussi de différents niveaux de points de vie, attaque et défense. Au bestiaire nous avons droit aux araignées, blobs, gobelins, hydres, ombres, squelettes et zombies.
Pour pimenter la chose, les événements de certaines cases peuvent nous être cachés, étant alors marqués de points d'interrogation qui peuvent eux aussi nous soumettre à différents niveaux d'incertitude :- le point d'interrogation vert indique un des types de bonus précédents mais on ignore lequel
- le point d'interrogation rouge indique un des dangers précédentes
- et enfin le point d'interrogation noir ne donne aucune indication, pouvant cacher aussi bien un bonus qu'un danger, une gemme ou même la sortie
L'interface visuelle du jeu se compose donc :- de la carte[/i]
- d'une barre d'état inférieure t'indiquant sur 2 lignes tes points de vie, attaque et défense, ainsi que les informations dans le cas où ton arrivée sur une case vient de déclencher un événement (type et nombre de points gagnés ou perdus, points du monstre, etc)
- enfin, d'une barre de titre inférieure
Le jeu a été testé sur NumWorks N0120.
Le jeu est réactif. Petit détail, on peut juste regretter l'absence d'élément visuel faisant clairement comprendre qu'un combat est en cours et que le joueur ne peut donc plus être déplacé jusqu'à son résultat, contrairement à tous les autres événements qui permettent immédiatement un nouveau déplacement.
Les graphismes sont soignés mais l'affichage n'est pas toujours optimisé, certaines zones étant inutilement effacées pour être redessinées au complet, notamment les icônes des points pendant le déroulement des combats, générant des clignotements peu esthétiques.
Le caractère aléatoire par contre donne une rejouabilité excellente !
Le jeu est réactif. Petit détail, on peut juste regretter l'absence d'élément visuel faisant clairement comprendre qu'un combat est en cours et que le joueur ne peut donc plus être déplacé jusqu'à son résultat, contrairement à tous les autres événements qui permettent immédiatement un nouveau déplacement.
Les graphismes sont soignés mais l'affichage n'est pas toujours optimisé, certaines zones étant inutilement effacées pour être redessinées au complet, notamment les icônes des points pendant le déroulement des combats, générant des clignotements peu esthétiques.
Le caractère aléatoire par contre donne une rejouabilité excellente !
Toutefois, les besoins en mémoire de tas (heap) font que le code ne fonctionne que sur TI-Nspire CX II.
Ce ne sera absolument pas pénalisant mais c'est dommage de ne pas avoir optimisé pour les autres modèles. En effet, à survoler le code relativement modeste sans définition d'énormes variables, nous pensons que ce jeu aurait dû pouvoir y tourner sans exploser la mémoire.
Attention, le code n'est hélas pas basé sur la dernière version du jeu NumWorks. Le donjon démarre donc en 3×3=9. C'est même basé sur la toute première version du jeu reçue, la barre d'état en bas d'écran n'y étant pas encore présente. Le code n'a malheureusement pas fait l'objet de mises à jour par la suite.
Il semble s'agir ici d'un portage peut-être un peu trop rapide. Nous pouvons lui reprocher diverses choses, de l'anecdotique au plus problématique :
- Pour les détails, non adaptation du texte d'introduction disant de taper
OK
, cette inscription de touche n'existant pas sur TI-Nspire CX II - Des affichages beaucoup moins optimisés que dans les versions plus récentes, davantage de zones de l'écran non affectées par divers événements étant systématiquement effacées pour être redessinées, et ce de façon totalement inutile, générant autant de clignotements peu esthétiques. Il est certes vrai que la TI-Nspire CX II n'est pas particulièrement rapide pour les graphismes Python, mais il y avait un moyen très simple de masquer ce problème en faisant appel au double buffering offert par la bibliothèque ti_draw. Il suffisait pour cela d'appeler une fois
ti_draw.use_buffer()
au lancement du script, puisti_draw.draw_buffer()
après chaque série de modifications de l'affichage suivant chaque déplacement et/ou événement, pour afficher d'un seul coup tous les derniers changements effectués. Simplissime et enfantin, avec cela même du code graphique mal écrit et optimisé se serait affiché comme celui d'un pro, c'est bien dommage d'avoir raté cette remarquable possibilité, surtout lorsqu'elle n'aurait nécessité que l'ajout de 2 lignes. - Et malheureusement il y a quelque chose qui ne va pas du tout dans le code, les touches fléchées devant souvent être laissées enfoncées pendant plus d'une demi-seconde pour être prises en compte, une latence qui pour ne rien arranger semble variable, rendant hélas l'expérience de jeu assez désagréable, un problème qui se produit aussi bien sur calculatrice que sur logiciel et qui n'aurait donc normalement pas pu être raté. Cela ressemble au blocage des déplacements déjà évoqué pendant le déroulement d'un combat, sauf que l'on parle bien ici de cases ne comportant pas de monstres, et dont la visite n'affiche pas d'état de combat. Ce problème ne semblait pas présent dans la version NumWorks équivalente.
En plus de ne pas avoir la même qualité que l'original, en l'état The Map sur TI-Nspire CX II nous semble défectueux, au point de risquer de décourager la plupart des joueurs tombant dessus.
Toutefois, ceci constituant la première participation en équipe avec portage pour calculatrice Texas Instruments, nous réservons pour le moment notre jugement sur le caractère réussi ou pas du défi de porter son jeu pour différentes calculatrices, et donnant droit par ordre de classement au choix d'un lot correspondant à la catégorie du portage, en plus de l'éventuel lot correspondant au jeu initial (si suffisamment bien classé).
Toutefois, ceci constituant la première participation en équipe avec portage pour calculatrice Texas Instruments, nous réservons pour le moment notre jugement sur le caractère réussi ou pas du défi de porter son jeu pour différentes calculatrices, et donnant droit par ordre de classement au choix d'un lot correspondant à la catégorie du portage, en plus de l'éventuel lot correspondant au jeu initial (si suffisamment bien classé).
Liens projet :
- pour NumWorks :
- pour TI-Nspire CX II : The Map v1