Blocktrap

François PESSAUX - Nov 2004

Version 1.0.


Dispositions légales

    Blocktrap est un jeu développé pour la Gameboy Advance™. Il est destiné à être distribué librement et gratuitement. L'auteur fournit le logiciel en l'état et ne pourra être tenu responsable en aucun cas de tout dommage direct ou indirect engendré par l'utilisation du-dit logiciel. Le présent logiciel ne fait l'objet de licence auprès d'aucun organisme. L'auteur, bien que distribuant librement et gratuitement son logiciel en reste toutefois le propriétaire. Néanmoins, il accepte que des éléments constituant le logiciel puissent être librement ré-utilisés ou modifiés ou que le logiciel puisse être étendu tant que le but reste non-commercial.

Après tout ce blabla que personne ne lit, qui ennuie tout le monde, mais que tout le monde écrit pour être blindé... attaquons la partie intéressante !


Principe du jeu

    Blocktrap est un jeu de puzzle. Encore un de ces dérivés de l'irremplaçable Tetris en ce sens qu'il traite ... de blocs !


    L'espace de jeu est composé de quatre grilles de 4 x 4 blocs. La grille centrale est celle dans laquelle vous allez vous déplacer et oeuvrer. Les trois autres grilles (à gauche, au dessus et à droite de la grille centrale) sont celles qui vont vous donner du fil à retordre !

    Dans ces grilles, des blocs vont surgir aléatoirement en s'empilant, remplissant ainsi petit à petit les lignes ou les colonnes. L'empilement se fait de l'extérieur vers l'intérieur, c'est-à-dire en se rapprochant de la grille centrale du joueur. Pour les grilles de gauche et de droite, l'empilement se fait en lignes. Pour la grille supérieure, l'empilement se fait en colonnes.
   
    À chaque nouvel ajout de bloc, la grille et la ligne ou colonne dans laquelle va apparaître le bloc sont aléatoires. De même la couleur et le type du bloc inséré sont tirés au hasard (mais pas forcément sa couleur comme nous le verrons par la suite).

    Le but du jeu est d'empêcher qu'une ligne ou une colonne n'atteigne votre grille centrale. Pour combattre cette progression des blocs, vous disposez de toute la grille centrale dans laquelle vous allez déplacer (pavé croisé de direction) et orienter (touches L et R) votre propre bloc projectile afin, au moment choisi, de le tirer (bouton A) contre ceux d'une ligne ou d'une colonne.

    Généralement, les blocs ont une couleur. Pour faire disparaître un bloc d'une couleur dans une ligne ou une colonne, il vous suffit de tirer votre bloc projectile dessus s'il est de la même couleur. S'il est de couleur différente, alors il sera bien lancé, mais viendra s'empiler en plus de ceux déjà présents dans cette ligne ou colonne.

    Certains blocs sont sans couleur (c'est le cas de certains bonus et malus). Dans ce cas, ils seront détruits quelque soit la couleur du projectile qui les heurte.

Blocs normaux

    Tous les blocs que nous allons décrire ici sont déclinés dans les 4 couleurs du jeu (rouge, vert, jaune et bleu). Pour ne pas charger inutilement la documentation, les icônes affichés ne montreront que leur version "rouge".


Forme
Description

Bloc sans aucun attribut particulier et apparaissant sur le terrain de jeu (dans n'importe quelle grille sauf la grille centrale). C'est ce type de bloc qui est le plus couramment répandu et qu'il conviendra de détruire en tirant dessus !
       
Bloc projectile standard. Ce type de bloc représente votre projectile et sera donc affiché dans la grille centrale de jeu. Selon son orientation, on le trouvera vers la gauche, le haut ou la droite.
Ce type de bloc sert uniquement en fin de jeu pour vous montrer les blocs présents dans la ligne ou la colonne qui vous a fait perdre.

    Comme détaillé dans le chapitre "Blocs spéciaux", certains blocs possèdent des caractéristiques spéciales permettant de modifier la tactique du jeu.

Règles détaillées

    Le déplacement du joueur est donc restreint à la grille centrale dans laquelle les blocs n'apparaissent pas (à l'exception du bloc du joueur). Vous pouvez vous déplacer de haut en bas et de droite à gauche avec le pavé de direction. Vous pouvez également tourner l'orientation de votre bloc à droite avec le touche R ou à gauche avec la touche L. Le bouton A sert à tirer un bloc. Le bouton B sert à invoquer un bloc spécial préalablement stocké dans votre réserve (l'explication détaillée est donnée un peu plus loin). Le bouton START permet d'invoquer le menu de pause / sauvegarde / abandon.

    Lorsque vous tirez dans une ligne ou une colonne avec un bloc normal, alors ce bloc va détruire sur son passage tous les blocs consécutifs de la même couleur. Si toute la ligne ou la colonne devient vide, alors vous allez recevoir un nouveau bloc de couleur aléatoire. Par contre, si la ligne ou la colonne n'est pas vidée, c'est que le bloc lancé "a butté" sur un bloc d'une autre couleur. Les destructions de blocs s'arrêteront donc à ce bloc et il deviendra alors votre nouvelle couleur.

    Si toutefois le tir n'a détruit aucun bloc (c'est-à-dire que vous avez tiré un bloc d'une couleur différente de celle du premier bloc accessible dans la ligne ou la colonne), il y a pénalité : le bloc tiré vient se rajouter dans la ligne ou la colonne et vous vous verrez attribués la couleur du bloc sur lequel il a butté.

    Dans les grilles à combattre, apparaissent parfois des blocs spéciaux. Certains ont une couleur, d'autres non. Ceux en ayant une devront être détruits en tirant un bloc de la même couleur, les autres pouvant l'être quelque soit la couleur du bloc tiré.

    Quand un tel bloc est détruit, en fonction de son type :

    Il est à noter que les blocs spéciaux dénotant des malus sont toujours immédiatement activés (hé, hé !) alors que la plupart de ceux dénotant des bonus sont transférés en réserve.

    Cette réserve est visible en haut à droite de l'espace de jeu. Elle peut contenir jusqu'à 99 blocs bonus de chaque type. Le nombre de bonus disponible pour chaque catégorie est affiché en dessous de son icône. Certains bonus possèdent une couleur. Dans ce cas, le nombre disponible en fonction de la couleur est affiché (par couleur verticalement) avec des chiffres de cette couleur.

    Comment activer un bloc de cette réserve ? Simplement en pressant le bouton B. Le contrôle est transféré dans la réserve comme le montre un petit curseur en forme d'étoile. Ce curseur désigne le type de bonus que vous allez activer. Vous déplacez le curseur avec le pavé de direction. Une fois votre choix arrêté, pressez le bouton A pour activer le bonus. Si vous désirez ne plus activer de bonus, le bouton B vous fera retourner dans la zone de jeu sans invoquer aucun bonus. 

    Lorsqu'un bonus est activé :

    Au fur et à mesure que vous détruisez des blocs, vous progressez dans la difficulté. Le délai entre deux ajouts de blocs va petit à petit diminuer depuis 3 secondes jusqu'à se stabiliser à 1,5 seconde entre chaque bloc.

Modes de jeu




    Avant de débuter une partie, il va vous être demandé à quel mode de jeu vous désirez jouer. Blocktrap propose 2 modes de jeu:

Blocs spéciaux

    Voici la liste des blocs spéciaux et la description de leurs propriétés. Comme précédemment, lorsque des blocs peuvent être déclinés dans les 4 couleurs du jeu (rouge, vert, jaune et bleu), pour ne pas charger inutilement la documentation, les icônes affichés ne montreront que leur version "rouge". Dans la table suivante, la colonne "Projectile coloré" indique si lorsque le bloc se trouve en position de projectile (c'est-à-dire en zone centrale et dirigé par le joueur) il possède une couleur particulière qui pourra éventuellement coller avec des blocs à détruire dans les grilles. La colonne "À détruire coloré" indique que ce type de bloc dans une des 3 grilles de jeu doit être détruit par un projectile de la même couleur.

Forme(s)
Nom
Projectile coloré À détruire coloré Activation Durée Effet

Couleur aléatoire

Non

Non

Immédiate à la destruction

Bloc courrant

Ce type de bloc ne possède pas de couleur explicite avant d'être tiré par le joueur. Une fois lancé, sa couleur va être choisie au hasard.


Ligne /colonne éliminateur

Non

Oui

Sur invocation de la réserve

Bloc courrant

Ce bloc peut être déplacé et tourné et possède l'excellente propriété de supprimer tous les blocs de la ligne ou de la colonne dans laquelle il est tiré. Au passage, il récupère les bonus trouvés pour les transférer dans la réserve du joueur mais déclenche tous les malus trouvés sur son passage.

Mélangeur

Non applicable

Non

Immédiate à la destruction

Bloc courrant

Chamboule la couleur des blocs présents sur le terrain en leur attribuant chacun une nouvelle couleur choisie au hasard.

Ralentisseur

Non applicable

Oui

Immédiate à la destruction

10 secondes

Ralentit la vitesse de rajout de nouveaux blocs dans les grilles.

Accélérateur

Non applicable

Oui

Immédiate à la destruction

10 secondes

Augmente la vitesse de rajout de nouveaux blocs dans les grilles.

Videur de jeu

Non applicable

Non

Immédiate à la destruction

1 bloc

Supprime tous les blocs présents sur le terrain. Ne récupèrera pas les bonus et n'active pas les malus.

  

Inverseur de mouvement

Non applicable

Oui

Immédiate à la destruction

1 bloc

Fait réagir, pendant 1 tour votre projectile de façon inversée à vos ordre de déplacement et de rotation.

Direction aléatoire

Oui

Oui

Immédiate à la destruction

1 bloc

Ce bloc possède une couleur, mais pas de direction explicite avant d'être tiré par le joueur. Une fois lancé, sa direction va être choisie aléatoirement et il viendra s'empiler dans la colonne ou l'une des deux lignes se trouvant en regard de l'endroit où se trouve le bloc dans la grille centrale.

Perforateur

Oui

Oui

Sur invocation de la réserve

Bloc courrant

Un bloc Perforateur est une version allégée du bloc éliminateur. Au lieu de vider toute une ligne ou une colonne, il va traverser tous les blocs et ne détruire que ceux de sa couleur. Les blocs restants seront alors compactés, c'est-à-dire décalés vers l'extérieur (sans changer leur ordre) pour combler les espaces vides.

Effaceur de couleur

Non applicable

Oui

Immédiate à la destruction

Bloc courrant

Détruit tous les blocs de cette même couleur sur le terrain. Ainsi, il peut-être vu soit comme un bloc Videur spécialisé dans une couleur, soit comme un bloc Perforateur multidirectionnel.

Peintre

Oui

Oui

Sur invocation de la réserve

Bloc courrant

Colore tous les blocs d'une ligne ou d'une colonne de la couleur du bloc Peintre projectile.

Multidirection

Oui

Oui

Immédiate à la destruction

1 bloc

Tire un bloc normal de la couleur du bloc Multidirection projectile dans chacune des 3 directions en regard de la position du projectile au moment du tir.

Antidote

Non applicable

Oui

Sur invocation de la réserve

Non applicable

Supprime toutes les altérations d'état en cours. Entre autre, supprime également l'accélération de vitesse d'insertion, mais également le ralentissement !

Effaceur

Non

Oui

Sur invocation de la réserve

Bloc courrant

Supprime le bloc visé sans l'activer. Utile pour se débarrasser de malus gênants !

Cligno

Non applicable

Non

Immédiate à la destruction

10 secondes

Fait flasher aléatoirement l'écran, rendant la visibilité moins facile.

Furymove

Non applicable

Non

Immédiate à la destruction

10 secondes

Prend le contrôle du déplacement du projectile aléatoirement. Il vous est toujours possible de déplacer le projectile, mais des déplacements  intempestifs viendront polluer vos ordres.

Furyspin

Non applicable

Non

Immédiate à la destruction

10 secondes

Prend le contrôle l'orientation du projectile aléatoirement. Comme pour le bloc Furymove, il vous est toujours possible de faire tourner le projectile
   

Système de scores

    Le score apporté par chaque séquence de destruction tient compte du nombre de blocs que vous avez détruit lors du tir. Plus vous détruisez de blocs d'un coup dans la ligne ou la colonne, plus vous gagnez de points. Plus précisément lors du tir d'un bloc autre que les blocs Videur et Effaceur de couleur, les points sont calculés comme il suit :     Les blocs spéciaux Videur et Effaceur de couleur possèdent un comportement de score légèrement différent : ils ne rapportent que 5 fois le nombre de blocs détruits. Ben oui, ces blocs sont bien pratiques, mais on ne va quand même pas leur laisser "scorer" autant de boulot si facilement !!!

    Quant aux blocs n'entraînant aucune destruction (Mélangeur, Retardateur), ils n'apportent tout simplement aucun point. Tout ça pour dire qu'il vaut mieux nettoyer le terrain "à la réglo", avec des blocs sans effets spéciaux !!! Mais c'est plus dur...

Sauvegarde des scores

    Le jeu sauvegarde automatiquement les 5 meilleurs scores réalisés. Si en fin de partie vous avez battu un des 5 anciens meilleurs scores, alors on vous le fera savoir et votre score remplacera le plus faible des anciens. Le tableau des highscores est affiché en fin de partie.

Menu de pause / sauvegarde / abandon

    En cours de partie, il est à tout moment possible de presser le bouton START afin de mettre le jeu en pause et de faire apparaître le menu permettant:

  1. De reprendre le jeu courant mis en pause,
  2. De sauvegarder l'état courant du jeu afin de la reprendre ultérieurement,
  3. D'abandonner le jeu courant.

    Lorsqu'une partie est sauvegardée, vous pouvez quand même reprendre son cours immédiatement. La partie restera mémorisée et lorsque vous rallumerez votre console, il vous sera proposé de la reprendre. Si vous acceptez, alors celle-ci sera automatiquement supprimée de la sauvegarde et donc disparaîtra. Ainsi, il n'existe qu'une seule sauvegarde disponible et il n'est possible de la reprendre qu'une seule fois.

    Si au cours d'une partie, vous sauvez la partie plusieurs fois, chaque ancienne sauvegarde est détruite au profit de la nouvelle.

Résumé des touches

Making off et remerciements

    Blocktrap a été entièrement écrit en C, avec le génial DevKit Advance sous Linux et sous Microsoft Windows. Les graphismes ont été réalisés grâce à l'excellent Gimp. La conversion des images BMP au format binaire de la Gameboy a été réalisée grâce à un petit outil que j'ai développé sur mesure en Objective Caml. La conversion des échantillons sonores a été effectuée avec Wav2raw de Sylvain Rochette. Les tests et le débug ont été effectués à la fois sur console physique et sous le fabuleux émulateur VisualboyAdvance. Je tiens donc à remercier toute la communauté des logiciels libres grâce à qui ce petit jeu sans prétention a pu voir le jour. C'est aussi pour cette raison qu'il est librement distribuable.

    Je souhaite dire également un grand merci à ma petite femme qui a testé avec acharnement Blocktrap et y a trouvé un certain nombre de bugs, suggestions et améliorations.

    Les sources de ce jeu seront bientôt également librement distribuées. J'espère qu'elles donneront des idées et réponses à d'autres. Actuellement, je ne les mets pas encore à disposition car je souhaite encore effectuer des modifications sur Blocktrap. Mais patience, ça va venir !

 Contact

Pour tout renseignement, suggestions, critiques il est possible de me joindre par mail à :

francois_pessauxHATyahoo.fr

adresse dans laquelle, bien entendu vous remplacez texto "HAT" par le caractère "@" (c'est juste pour éviter que les scanners automatiques d'adresses mail viennent me logger une fois de plus; je reçois déjà assez de spam comme ça !)

Historique

25 Sept 2004 : Version Alpha 0.5
07 Oct 2004 : Version Alpha 0.6
Nov 2004 : Version 1.0