Averno

Après une longue pause de programmation sur Oric, L’année 2019 démarre en fanfare avec ce nouveau jeu proposé par DanCresp, une pleine réussite qui a été traduite en Français quelque peu modifiée par Dom.

Informations générales

Dan a été presque quatre ans sans rien programmer pour l’ORIC. Comme le temps passe vite !
Il est de retour, avec quelques nouvelles découvertes sur son système préféré.

Cette fois, c’est une adaptation assez fidèle d’un jeu acheté pour MSX qu’il a apprécié, beaucoup aimé et qui a laissé chez Dan de bons souvenirs.

Il existe des versions pour plusieurs systèmes, vous pouvez maintenant ajouter l’ORIC. Sur l’Oric, le jeu a un mécanisme identique à celui d’origine, mais avec quelques améliorations et quelques petites choses que Dan a laissées de côté. Il lui a fallu près d’une semaine pour réaliser une version jouable !

Ecran titre de la version 2019 sur Oric

Dan est très satisfait de cette version car le jeu a les mêmes niveaux que la version originale, la même résolution des niveaux et les performances du jeu sont identiques aux versions originales, voire un peu plus élevées … sauf pour la génération de l’écran.

Les petites détails de la version ORIC
Comme toujours pour la programmation dans l’ORIC, les graphismes ont dû être repensés car au lieu de la matrice habituelle de 8×8 pixels, nous passons à une matrice de 8×6. Comme les graphiques sont formés avec deux blocs de 1×2 caractères ou 2×2 caractères de 8×8 pixels, nous avons des blocs de 8×16 pixels ou 16×16 pixels.

La solution choisie par Dan consiste à utiliser des blocs de 1 x 3 ou 2 x 3 caractères, de sorte que les blocs aient une largeur de 18 pixels et non de 16 pixels. Comme il ne pouvait pas utiliser de couleurs pour délimiter les blocs, l’auteur a laissé une bande de pixels vide au début. et à la fin de certains graphiques pour les rendre moins déroutants.
Contrairement à la version d’origine, la porte et les clés ont toutes deux un masque pour mieux s’intégrer à l’arrière-plan.

Lorsque sont placés les graphiques à l’écran, ils prennent presque toute la largeur de l’écran. Dan a donc supprimé certains marqueurs, le reste étant placé en haut, car l’ORIC comporte plus de lignes.

Un autre problème a été le problème de la couleur, en raison de la façon dont il gère les attributs, Dan a dû produire un jeu en monochrome, en donnant toutefois un peu de couleur dans la présentation et dans les marqueurs. Dommage, mais très ORIC !

L’écran du 1er niveau, en monochrome
Le truc du mag, le fantôme ne peut monter que 2 marches à la fois … pensez y !

A ce stade, nous arrivons à la création de l’écran. Chaque écran est constitué d’une matrice de 20 lignes et de 10 colonnes. Dans chacune des colonnes, il y a un graphique ou une partie de celui-ci, comme avec les portes et les clés. En codant de manière brute, une matrice de 13 (écrans) x 20 (lignes) x 10 (colonnes) aurait pu être créée. Au total, 260 lignes de code, avec la quantité de mémoire correspondante, de 600 octets par niveau. Au lieu de cela, l’auteur a choisi de coder les niveaux, chaque niveau étant compris entre 50 et 100 octets. La présentation du niveau prend environ 6 secondes et le codage est effectué comme suit, l’écran étant bleu:

  • Une lettre entre “A” et “Z” a une valeur comprise entre 1 et 26 et correspond aux blocs de briques de l’arrière-plan à afficher.
  • Une lettre entre “a” et “z” a une valeur comprise entre 1 et 26 et correspond aux blocs de pierre à afficher.
  • Un nombre compris entre 1 et 8 correspond à un bloc prédéfini stocké dans la matrice B $, en mettant ce qui entre dans la ligne correspondante.
L’encodage des niveaux sur Oric

Avec ce nouveau logiciel, Dan a découvert de nouvelles difficultés. Ainsi, c’est la première fois qu’en BASIC, il fait bouger le protagoniste sur le fond sans le supprimer. Pour ce faire, un deuxième processus doit être effectué, ce qui prend environ 10 secondes. Au cours d’une boucle double, Dan lit la mémoire d’écran et conserve les caractères à l’écran dans la matrice “S”. Pendant le processus de lecture de la mémoire vidéo, l’auteur crée un effet d’aveuglement qui change la couleur de la ligne en jaune final. Ce n’est pas du plus bel effet, mais c’est nécessaire pour déplacer le personnage rapidement.

Le jeu original utilise des blocs cachés à plusieurs niveaux. Dan a découvert ce détail en regardant une vidéo alors que son adaptation du jeu était presque terminée et a choisi de les ignorer. Cela l’a obligé à faire quelques changements mineurs dans ces niveaux, car dans cette version, les blocs sont visibles. Cependant, ils n’affectent pas la résolution des niveaux.

Pour contrôler le curseur, le clavier est lu à l’aide d’un «PEEK 520» ($208 pour les intimes), ce qui évite les problèmes de lettres majuscules / minuscules et vous garantit de toujours lire la dernière touche enfoncée, en accédant à la mémoire tampon du clavier.

Et pour le son, une fois encore, Dan a utilisé les effets prédéfinis de l’ORIC, démontrant ainsi sa faiblesse dans ce domaine …

Pour terminer, ayant respecté les niveaux d’origine, Dan trouve que la difficulté n’est pas linéaire et que les niveaux les plus simples se situent au début et à la fin de la partie. Mais comme le jeu original était comme ça, l’auteur l’ai laissé ainsi.

Dan vous invite à l’essayer et espère que ce jeu vous plaira …

Quelques informations à propos du programme

Le programme est divisé en 10 blocs:

  • Déclaration de la matrice et début du jeu.
  • Boucle principale de développement.
  • Passer le niveau ou perdre une vie.
  • Mouvement fantôme.
  • Présentation et début du jeu.
  • Routine pour afficher le niveau.
  • Écran de victoire finale.
  • Préparez et montrez l’aire de jeu.
  • Charger UDG.
  • DATA avec les UDG du jeu et les valeurs de la matrice.

L’ensemble du programme occupe 137 lignes.

  • 10 – Nous définissons les matrices du jeu.
  • 20 – Passez au sous-programme qui redéfinit les caractères et définit les variables globales.
  • 30 – Afficher l’écran de présentation.
  • 40 – Afficher le niveau.
  • 100 – Début de la boucle principale.
  • 105 – Prenez la touche appuyée. Si vous appuyez sur “Echap”, quittez la boucle et perdez une vie.
  • 110 – Mouvement fantôme selon la touche enfoncée.
  • 122 – Actualiser le repère temporel.
  • 125 – Voyez ce qu’il y a sous le fantôme, agissez en conséquence.
  • 135 – Mise à jour du temps, laissant la boucle si elle se termine.
  • 140 – Retournez à REPEAT si la variable U = 0.
  • 150 – Lorsque vous quittez la boucle, regardez la valeur de U. U = 1 pour passer le niveau ou U = 2 pour perdre une vie.
  • 155 – La routine de la mort
  • 200 – Déplace le fantôme vers la droite.
  • 250 – Déplace le fantôme vers la gauche.
  • 300 – Contrôle la chute du fantôme, surveillant s’il passe au-dessus d’une clé ou d’une porte.
  • 400 – Montre le fantôme. Avec D = 1, regardez à droite et D = -1, à gauche.
  • 420 – Routine de collecte de clés. Il met U = 1 si tous ont été collectés.
  • 450 – Actualiser le marqueur de temps.
  • 460 – Actualiser le marqueur de point.
  • 500 – Lancer un bloc de briques. Calculez la position du fantôme pour dire quel bloc devrait tomber.
  • 2000 – Écran de présentation.
  • 2100 – Routine qui montre le niveau. Les données sont encodées dans la matrice M $.
  • 2130 – Double boucle qui enregistre les caractères de chaque position sur l’écran dans la matrice D.
  • 2200 – Écran de fin de jeu à la fin du niveau 13.
  • 3000 – Sélection des couleurs, effacement de l’écran, masquage du curseur et masquage des «CAPS» supérieurs.
  • 3005 – Lecture de données UDG.
  • 3010 – Assemblez des matrices avec des bandes de caractères et des positions du fantôme.
  • 9000 – DATA avec graphes, positions, blocs de graphes et codage de niveau UDG.

Le jeu

Averno est un jeu publié pour plusieurs systèmes en 1989. C’est un jeu de réflexion dans lequel nous contrôlons un fantôme qui doit collecter toutes les clés du niveau pour ouvrir la porte. Vous devez ouvrir les 13 portes pour échapper aux dégâts. Nous devons éviter de manquer de temps ou de rester coincés.

Le fantôme a la capacité de déposer des blocs de briques pour accéder à certaines parties du niveau ou de s’y placer, car il ne peut pas escalader les murs de plus de deux blocs de briques. Vous pouvez seulement déposer des blocs qui n’ont rien en dessous.

Cette version suit exactement la même mécanique et les 13 écrans sont identiques au jeu original, sauf que les blocs invisibles ont été supprimés, ce qui n’affecte pas la résolution des niveaux.

Contrôles :

  • Déplacez le fantôme vers la droite ou la gauche avec “Z” et “X”.
  • Appuyez sur “Entrée” pour déposer un bloc de briques, selon que vous êtes dessus ou partiellement dessus.
  • Appuyez sur “Echap” si vous êtes verrouillé. Vous allez perdre l’une de vos 5 vies.

Une version française modifiée

Dom, dont vous trouverez le post sur https://forums.oric.org/t694-enfer#8970 a amélioré le logiciel de Dancresp.

  • Utilisation de video inverse sur les tableaux
  • Ajout de l’enregistrement des High Scores
  • Ajout d’une ‘P’ Pause et d’une ‘S’ Sauvegarde (associées aux touches ‘1’ et ‘2’ de l’écran principal)
  • Transformation du .tap en .dsk
  • Corrections de bugs
L’écran du 1er niveau, avec les graphismes en vidéo inversée
L’écran de fin de jeu … qu’est ce que cela a été long d’attendre la fin des timers

Comments

3 responses to “Averno”

  1. JiBe Avatar
    JiBe

    Article très intéressant et bien détaillé. Cela m’a donné envie d’essayer le jeu. Malheureusement, le lien en fin d’article ne fonctionne pas :-(. Mais en tout cas merci pour ce bel article

  2. Dany Avatar
    Dany

    Bonjour,
    je pense que c’est ce lien lien dont tu parles:
    http://oric.forumactif.org/t694-enfer#8970

  3. didier_v Avatar
    didier_v

    Hello, j’ai modifié le lien dans l’article. Merci à vous

Leave a Reply

Your email address will not be published. Required fields are marked *