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 !
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.
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.
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.
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 |
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.
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:
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.
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 !
Pour tout renseignement, suggestions, critiques il est possible de
me joindre par mail à :