Spirit of TNT

Spirit of TNT

Dessine tes propres pièces, règle chaque paramètre dans un simple fichier texte, et rejoue dix jeux de blocs, de l'Electronika 60 de 1984 aux duels en ligne d'aujourd'hui.

Gratuit et libre (licence MIT). En français, en anglais et en russe. Fait avec Godot 4, sans installation : un seul fichier à lancer.

Un duel en style Néon : à gauche un T-spin triple efface trois lignes sous des faisceaux et des étoiles, une comète d'attaque file vers le terrain de la machine, rempli presque jusqu'en haut
Un T-spin triple en back-to-back : huit lignes partent en comète chez la machine, déjà dans le rouge.

Crafter un jeu

Spirit of TNT est né en 2021 d'une question simple : que devient un jeu de blocs si l'on change ses pièces, ou ses règles ? Sur l'accueil, on choisit un jeu, puis Crafter ce jeu (ou F5 en pleine partie) ouvre une fenêtre où tout se change. À droite, la machine joue en direct avec les règles en cours : on voit tout de suite ce que fait chaque réglage.

La fenêtre Crafter un jeu, onglet Guide, avec la partie en direct à droite

Le guide. Les réglages qui changent le plus le jeu, expliqués en clair : la vitesse de chute, le glissement sur les côtés quand on garde une flèche enfoncée, le délai avant que la pièce se pose. Une petite animation suit les valeurs choisies.

Les pièces. Chaque pièce se dessine dans ses quatre rotations. Il suffit de dessiner la première : les trois autres sont proposées en transparence, selon le système de rotation choisi, et un clic les valide. Jusqu'à seize pièces, de une à soixante-quatre cases chacune.

Les blocs. L'aspect des blocs est une petite image de 10 cases sur 3, à dessiner au crayon dans le jeu, ou dans Paint, GIMP ou Aseprite puis à réimporter. Un dessin en gris prend la couleur de chaque pièce : un seul motif suffit pour tout le jeu.

Tout le reste. Un onglet par famille de règles (terrain, rotation, hasard, temps, niveaux, score, attaque, duel, affichage, fin de partie, automate) et le texte complet de la fiche. Enregistrer range le jeu avec les autres.

L'onglet Dessin des pièces L'onglet Blocs, pour dessiner l'aspect des blocs

Dix jeux dans la boîte

Chaque jeu est une fiche : un fichier texte qui décrit ses règles, et une image pour ses blocs. Les valeurs viennent des fiches techniques des passionnés (tetris.wiki, Hard Drop), les couleurs et les blocs de l'aspect réel de chaque jeu, et chaque fiche dit ce qui est vérifié, approché ou inconnu.

JeuOrigineCe qui le distingue
Electronika 601984, l'originalÉcran vert monochrome, pièce posée dès qu'elle touche, des points à chaque pièce et pas aux lignes
Style Sega1988, salles d'arcadeNi réserve ni chute instantanée, longues pauses entre les pièces, un niveau toutes les 4 lignes
Style NES1989, consoleLa version des championnats du monde, sans délai de pose, vitesses jusqu'au niveau 29
Style Game Boy1989, portableÉcran vert, terrain de 18 lignes, duel en 4 manches gagnantes
Style Guillaume1996, Turbo PascalLe jeu de 1996 avec son écran VGA d'origine (voir plus bas)
Style Grand Master1998, arcadeNiveaux de 0 à 999, gravité qui monte jusqu'à la chute instantanée
Style Guidelinerègles modernesRéserve, fantôme, 5 pièces suivantes, T-spins, back-to-back
Style 992019, à 99 joueursGravité liée au temps, attaques et badges
Style TETR.IO2020, compétition en ligneDemi-tour, spins de toutes les pièces, aucun délai entre les pièces
Spirit of TNT2021, le prototypeLes réglages de la première version, écrits en millisecondes

On peut aussi ajouter ses propres jeux : Ajouter une fiche sur l'accueil, ou glisser un fichier .sts sur la fenêtre. Les fiches et leurs blocs sont rangés dans le dossier fiches, à côté du programme : un jeu se partage en envoyant deux petits fichiers.

Un jeu, c'est un fichier .sts

Tout ce qui fait un jeu de blocs tient dans un fichier texte qu'on ouvre avec n'importe quel éditeur : la taille du terrain, les rotations et leurs décalages (les « kicks »), le tirage des pièces, les délais, les vitesses de chaque niveau, le score, les attaques en duel, l'affichage, et enfin les pièces elles-mêmes, dessinées avec des #. Plus de cent paramètres, chacun commenté dans le fichier.

Voici un extrait de la fiche du jeu de 1996. Passe sur une ligne (ou sélectionne-la au clavier) pour lire ce qu'elle règle.

[sheet]name = Style Guillaume (1996, Turbo Pascal)[field]width = 10height = 18hidden_rows = 4[rotation]kicks = nonespin_detection = none[random]generator = memoryless[timing]fps = 70das = 8arr = 2lock_delay = 0soft_drop = 0.5Ghard_drop = none[levels]columns = gravity   0 = 30  10 = 9  19 = 1[score]lines = 40,100,300,1200[versus]rounds_to_win = 4[display]next = 1hold = falseskin = dos1996[grid]----------------
----#-------#---
-##-##---##-##--
##---#--##---#--

Pas besoin d'ouvrir le fichier pour autant : la fenêtre Crafter un jeu (F5) donne une case, un menu ou un champ à chaque paramètre, avec sa description, et son dernier onglet montre la fiche en texte. Le format complet est décrit dans FORMAT_STS.md et chaque clé dans la référence des paramètres.

Seul, à deux, ou contre la machine

L'accueil a deux pages. La première présente les jeux, chacun dessiné avec ses propres blocs, avec son année, sa machine, son histoire et ses règles. La deuxième demande quoi faire de ce jeu : le crafter, ou y jouer. En jeu local, cinq façons de jouer : un joueur, la machine seule, humain contre humain sur le même clavier, humain contre machine, machine contre machine. En duel, les lignes effacées partent chez l'adversaire et remontent sous ses pieds. Le jeu en réseau viendra plus tard.

La machine a quatre niveaux, de Facile, lente et maladroite, à Expert, rapide et sans erreur. Elle s'inspire des travaux de Pierre Dellacherie et de Yiyuan Lee : à chaque pièce, elle essaie tous les placements et juge le terrain obtenu. Aux deux niveaux les plus forts, elle explore aussi les rotations au fond et les glissements sous un surplomb, prépare des fentes et réussit des T-spins.

L'accueil, page 1 : le choix du jeu L'accueil, page 2 : crafter, jeu local, jeu en réseau
Un duel contre la machine

Deux styles d'effets

Le style Néon, choisi par défaut, trace des faisceaux sur les lignes, fait rougir le terrain quand la pile monte trop, et lance les attaques en comète vers l'adversaire. Le style Classique fait voler des particules aux couleurs des cases effacées, avec des sons 8 bits. Les sons sont fabriqués par le programme au lancement : il n'y a aucun fichier audio.

Un T-spin triple en style Néon

Le jeu de 1996

Fin 1995, jeu de blocs en Turbo Pascal

Spirit of TNT en reprend les règles exactes, lues dans le code d'origine (vitesses, points, attaques, manches), et son écran. Les sources de 1996 sont conservées dans le dépôt, octet pour octet.

Le jeu de 1996 recréé L'écran deux joueurs du jeu de 1996

Les touches

Les lettres sont lues par position, comme dans les jeux officiels : voici celles d'un clavier AZERTY. Dans le jeu, F1 rappelle tout et indique ce qui existe ou non dans le jeu choisi.

Le petit terrain de cette section se joue dans la page : la machine y joue seule. Clique dessus (ou Tab) pour prendre la main et essayer les touches.

La machine joue. Clique sur le terrain (ou Tab) pour prendre la main au clavier.
Seul
← →déplacer (garder appuyé : la pièce file)
↓chute rapide
Espacechute instantanée
↑ ou Xrotation dans le sens des aiguilles d'une montre
W ou Ctrlrotation dans l'autre sens
Qdemi-tour, si le jeu l'autorise
C ou Majréserve
P R Échappause, rejouer, retour à l'accueil
Les modes et réglages
F1aide
F2la machine joue à ta place
F3contre la machine
F4à deux sur le même clavier
F5crafter ce jeu : pièces, blocs et tous les paramètres
F6 F7effets visuels, sons
F8style des effets : Classique ou Néon
À deux
Joueur 1Joueur 2
déplacerQ D← →
chute rapideS↓
rotationZ, A↑, Ctrl
réserveEMaj
chute instantanéeEspaceEntrée

Télécharger

Rien à installer : on décompresse et on lance. À côté du programme, le dossier fiches contient les jeux et leurs blocs ; on peut y déposer d'autres fiches.

Windows. Le programme n'est pas signé : au premier lancement, Windows peut afficher « Windows a protégé votre ordinateur ». Clique sur Informations complémentaires, puis Exécuter quand même.

Linux. Après décompression : chmod +x SpiritOfTNT.x86_64, puis lance le fichier.

Le code. Il suffit d'ouvrir le dossier godot dans Godot 4.4 ou plus récent, puis F5. Le dépôt contient aussi le prototype Unity de 2021 et les sources Turbo Pascal de 1996.