2 points par GN⁺ 2024-01-11 | 1 commentaires | Partager sur WhatsApp
  • Turing Complete est un jeu axé sur l’expérience consistant à résoudre soi-même des problèmes afin d’approfondir sa compréhension des concepts de l’informatique
  • L’apprentissage commence avec les portes logiques, en construisant d’autres portes uniquement à partir de portes nand
  • Ensuite, en combinant mémoire et composants, on étend de simples circuits vers une forme plus proche d’une véritable architecture informatique
  • L’ordinateur que construit le joueur vise à être Turing complete, c’est-à-dire une structure capable d’exécuter des algorithmes comme une Turing machine
  • Sur le matériel qu’il a lui-même conçu, le joueur compose des instructions en assembleur et résout des énigmes de programmation fondées sur du code binaire

Une façon d’apprendre l’informatique par le jeu

  • Turing Complete est un jeu consacré à l’informatique
  • Il s’adresse à celles et ceux qui aiment le plaisir de découvrir un problème et les moments où un concept que l’on pensait déjà comprendre révèle une profondeur nouvelle
  • Disponible sur Steam via Play Turing Complete

Un parcours d’apprentissage qui va des circuits à l’architecture informatique

  • Portes logiques

    • Les portes logiques sont les éléments de base du calcul
    • En construisant toutes les autres portes à partir d’une seule porte nand, on assimile les fondements des circuits
  • Composants et mémoire

    • En ajoutant de la mémoire aux portes logiques, on peut créer des composants plus complexes
    • En combinant ces éléments, on les étend jusqu’à former une véritable architecture informatique
  • Architecture

    • L’ordinateur assemblé par le joueur vise à être Turing complete
    • Cela désigne un ordinateur capable d’exécuter des algorithmes comme une Turing machine
  • Assembleur

    • L’ordinateur se programme en code binaire
    • On crée des instructions en assembleur pour simplifier ce processus, puis on résout des énigmes de programmation sur le matériel que l’on a soi-même construit

1 commentaires

 
GN⁺ 2024-01-11
Avis sur Hacker News
  • Je suis quelqu’un de simple : quand je vois Turing Complete sur HN, je laisse un commentaire positif :)
    Je l’ai acheté il y a quelques années et j’ai fait quelques niveaux, puis j’ai laissé mon fils, qui avait alors 14 ans, avancer dessus pendant les vacances d’été, en l’aidant de temps en temps. Au dernier niveau, il a écrit un programme dans le pseudo-langage assembleur enseigné par le jeu pour faire traverser un labyrinthe aléatoire, avec la règle de la main droite, à l’ordinateur qu’il avait construit lui-même à partir de portes logiques. Ce jeu est vraiment formidable.
    Mon seul reproche, c’est qu’il n’existait même pas de jeu comparable quand j’avais son âge.
    Je reste bloqué aux niveaux où la mémoire est introduite ; mon cerveau semble avoir du mal avec le concept de tick suivant/précédent. Cela dit, il y a beaucoup d’indices et de solutions complètes en ligne, donc si besoin on peut entrer la solution et passer au niveau suivant.
    Le jeu lui-même est quasiment terminé depuis plus d’un an, et le développeur est en train de tout réimplémenter pour améliorer les performances et permettre de construire des CPU plus complexes, entre autres. J’espère que rien ne cassera quand il publiera la mise à jour.
    Je le recommande vivement.

    • Rocky's Boots (1982) [0] était peut-être un jeu dans le même esprit.
      [0] https://en.wikipedia.org/wiki/Rocky%27s_Boots
    • Je me suis retrouvé bloqué exactement de la même façon en concevant la puce mémoire dans NAND to Tetris. Au final, j’ai dû regarder la réponse pour cette partie et, en fait, je n’en étais pas très loin, mais je ne comprenais pas la syntaxe qui fonctionnait.
      Ce que j’avais fait :
      Mux(a=out, b=in, sel=load, out=muxOut)
      DFF(in=muxOut, out=DFFOut)
      La dernière ligne aurait dû être :
      DFF(in=muxOut, out=DFFOut, out=out)
      Cela dit, Turing Complete ressemble au compagnon parfait de NAND to Tetris. Dommage qu’il semble n’être vendu que sur Steam ; j’aimerais pouvoir l’acheter indépendamment.
    • Ça me fait penser à TIS-100 et Shenzhen I/O de Zachtronics.
  • J’aime beaucoup ce genre de jeux, et ma collection Steam de titres du genre s’étoffe petit à petit. Il y en a aussi qui ne sont pas sur Steam, comme nandgame.
    Turing Complete fait partie des bons exemples du genre : la simulation paraît stable, et après la refonte du début de l’accès anticipé, les missions sont plutôt bien conçues.
    En revanche, l’UI n’est pas toujours fluide, et les explications manquent ; il convient donc mieux à des personnes ayant déjà suivi un parcours similaire dans d’autres simulateurs.
    Si vous cherchez un jeu similaire qui explique mieux les concepts, je recommande Silicon Zeroes. Dans l’ensemble, il paraît un peu moins peaufiné, mais il a une structure narrative mignonne, explique mieux ce que chaque niveau cherche à introduire et traite beaucoup mieux les problèmes liés à l’horloge.
    Si vous aimez davantage le pseudo-assembleur que les circuits électroniques, je recommande TIS-100 ou Shenzhen I/O.
    Si vous préférez des puzzles bien conçus, Human Resource Machine vous conviendra peut-être mieux.
    Cette actualité autour de Turing Complete vaut aussi le coup d’œil : https://steamcommunity.com/app/1444480/eventcomments/3806156...
    Après un an sans mise à jour, une annonce est parue en août 2023 disant « Désolé, une grosse nouvelle mise à jour arrive bientôt ! », puis le silence est retombé.
    Le développeur semble coincé dans une réécriture massive d’une ampleur énorme, qui prend beaucoup plus de temps que prévu.
    J’attends qu’il sorte de l’accès anticipé pour y rejouer, mais je crains de devoir attendre éternellement.

    • Je réfléchis à créer un jeu d’informatique analogique à la Zachtronics. Pour l’instant, je construis un simulateur de circuits, mais je ne sais pas si ce serait réellement amusant, ni si je trouverai une façon de le rendre amusant.
      L’informatique numérique a l’avantage de l’abstraction. Pas besoin de connaître la loi d’Ohm pour réfléchir à des portes logiques.
      Avec l’informatique analogique, il faut forcément trouver un moyen d’enseigner les maths. Les opérations ne sont plus booléennes, mais des combinaisons de plusieurs équations électriques. Même si les maths restent simples, l’esprit n’est pas celui d’un jeu de programmation classique.
      Je me demande tout de même si cela vous paraît intéressant, et si vous y joueriez.
    • Si vous avez déjà terminé TIS-100 mais voulez une expérience d’assembleur encore plus ennuyeuse, j’ai mis sur Steam un jeu gratuit à instruction unique (subleq), SIC-1.
      https://store.steampowered.com/app/2124440/SIC1/
    • Pour les fans de Zachtronics, je recommande aussi Opus Magnum et Exapunks. Dans Exapunks, il faut apprendre un nouveau langage proche de l’assembleur pour donner des ordres à des agents robotiques, et je me suis vraiment beaucoup amusé.
      Je me souviens n’avoir fait que les premiers défis de Human Resource Machine. Les puzzles me semblaient trop faciles et le processus de résolution pas très difficile, donc je ne suis pas allé jusqu’aux niveaux avancés.
    • Dans ce genre, MHRD est excellent aussi. Je l’ai refait plusieurs fois. Je suis content d’apprendre qu’il existe d’autres jeux similaires : https://store.steampowered.com/app/576030/MHRD/
    • Je me demande s’il existe des jeux du même type pour enseigner le machine learning ou le deep learning.
  • Justement, je viens de l’acheter pendant les soldes d’hiver Steam.
    Le concept est excellent, mais pour devenir un vrai jeu ou un outil pédagogique autonome, il doit être beaucoup plus peaufiné.
    Pour quelqu’un qui a déjà les connaissances connexes, ça va, mais pour un débutant, cela risque d’être assez frustrant : on lui jette des problèmes dessus avec très peu d’accompagnement, d’enseignement ou de préparation.
    J’aimerais aussi qu’il y ait des fonctions pour aider à la disposition des circuits. Quand on déplace ou fait pivoter des composants, ils se détachent des fils, et il faut redessiner chaque connexion à la main. Même après avoir trouvé la bonne logique, il y a pas mal de friction pour l’implémenter.

    • Dans l’un des premiers niveaux, une astuce explique qu’en double-cliquant sur un composant, on peut déplacer avec lui les fils connectés au composant. Le double-clic sélectionne automatiquement non seulement le composant, mais aussi les nœuds de câblage connectés. Cela dit, l’UI pourrait encore être améliorée.
  • J’ai vraiment pris beaucoup de plaisir avec ce jeu, et j’en prends encore. Il est à son meilleur quand on peut s’y plonger longtemps d’une traite
    Comme avec Factorio, quand on fait une longue pause puis qu’on revient, il est souvent plus amusant de recommencer que de reprendre là où l’on s’était arrêté. Sinon, on peut simplement rester dans le sandbox de fin de jeu
    L’UI pourrait être encore peaufinée, et une grosse refonte des performances est en cours depuis quelques années, mais n’a pas encore été déployée. Aujourd’hui, il y a aussi un export Verilog, mais je ne l’ai pas vraiment essayé
    Les composants supplémentaires débloqués en fin de partie rendent le sandbox vraiment amusant. Il y a aussi un système de score qui ajoute une dimension compétitive, mais il ne se débloque que bien après le premier ordinateur
    J’ai beaucoup joué à ce jeu avant de décider, à l’âge mûr, de préparer un diplôme en informatique, et grâce à lui les bases d’architecture m’ont paru très faciles. Je le recommande aussi vivement comme révision ludique
    Ici, par « plaisir », il faut entendre le plaisir de manipuler de la logique booléenne dans un environnement bienveillant ; si cette idée vous rebute, ce « jeu » ne vous conviendra probablement pas non plus

  • Nous l’utilisons aussi réellement en entreprise, et je le recommande fortement
    Il y a environ un an, je l’ai terminé avec un collègue pendant notre temps libre, et nous l’avons vraiment adoré. Nous avons pensé qu’il conviendrait parfaitement à des apprentis en électrotechnique, car leur formation aborde des notions de logique numérique comme les portes, les registres, les registres à décalage ou les compteurs, mais leur donne rarement l’occasion de les appliquer dans des projets concrets
    De plus, faute de temps, les sujets dérivés comme la programmation assembleur ne sont plus vraiment bien enseignés
    Avec un peu d’accompagnement externe supplémentaire, ce jeu aide vraiment à motiver les gens à comprendre le fonctionnement des composants de logique numérique et à jouer avec eux par eux-mêmes. Le fait de pouvoir aller jusqu’à écrire un petit langage assembleur simple et résoudre des puzzles avec est excellent, et c’est aussi très motivant pour les étudiants

  • Quand j’ai ouvert la page pour la première fois, ça ressemblait à une copie de Digital Logic Sim [1] de Sebastian Lague, mais après avoir regardé la vidéo, j’ai vu qu’en réalité le jeu allait beaucoup plus loin, ce qui m’a impressionné. Je l’ai donc acheté. J’espère avoir le temps d’y toucher prochainement
    1: https://sebastian.itch.io/digital-logic-sim

  • Ce jeu se compare facilement à un semestre de bases d’informatique, mais il m’a semblé encore plus amusant, notamment grâce au mini-jeu d’assembleur
    À l’université, nous avions séparément un devoir consistant à concevoir des instructions spécifiques pour un CPU fictif et un autre consistant à concevoir des circuits précis, mais il ne s’agissait pas de conceptions complètes ni fonctionnelles
    Turing Complete était amusant parce qu’il permet de construire un petit CPU complet tout en créant sa propre architecture de jeu d’instructions, et d’aller aussi loin qu’on le souhaite

  • Jeu similaire : https://nandgame.com/
    Cela dit, Turing Complete semble plus profond que nand game

  • J’ai acheté ce jeu, et je le considère comme une œuvre d’art
    Je ne suis pas diplômé en informatique, mais je travaille comme développeur depuis environ 15 ans. Beaucoup de choses présentes dans le jeu, je les connaissais abstraitement ou je les avais manipulées avec des cartes Arduino, de petits projets personnels, etc.
    Mais c’est exactement le cursus pratique dont rêvaient les gens qui aiment bricoler avec les ordinateurs

  • Exapunks(https://www.zachtronics.com/exapunks/) pourrait aussi vous intéresser. Il m’a mieux appris l’assembleur que les cours à l’université

    • TIS-100 était excellent aussi. C’est même plus difficile que le vrai assembleur
    • Je me demande si vous avez aussi essayé Shenzhen I/O