jules@halfnil:~$ cat ~/blog/un-reseau-de-telephones-dans-minecraft.md

J'ai construit un réseau de téléphones dans Minecraft.

PIL OS — serveur central, téléphones, bornes ATM et console admin en Lua sur ComputerCraft. Mon premier vrai système client-serveur, dans un jeu.

8 juillet 2026 · 2 min ·

ComputerCraft (le mod CC:Tweaked) ajoute à Minecraft des ordinateurs programmables en Lua. La plupart des joueurs s'en servent pour automatiser une ferme. Moi, j'y ai construit un réseau de téléphones.

## Le projet

os_phone, c'est un kit complet :

  • un serveur central qui fait autorité ;
  • des téléphones qui embarquent leur propre OS (PIL OS) ;
  • des bornes ATM ;
  • une console d'administration.

Les machines communiquent par modem sans fil (l'Ender Modem du mod), et un installeur unique — install-all.lua — télécharge et configure chaque ordinateur selon son rôle. Poser un nouveau téléphone dans le monde prend une commande.

## Ce qu'on apprend quand il n'y a rien

L'environnement CC:Tweaked est minuscule : pas de framework, pas de npm, pas de base de données. Un interpréteur Lua, un système de fichiers, une API de modem qui envoie des messages. C'est tout.

Et c'est précisément ce qui rend l'exercice formateur. Chaque problème qu'un framework résout d'habitude à ma place, j'ai dû le poser à plat :

  • Qui fait autorité ? Si chaque téléphone garde son propre état, deux machines finissent par se contredire. Un seul serveur détient la vérité ; les clients demandent.
  • Que se passe-t-il quand une machine décroche ? Un chunk se décharge, un joueur casse un bloc — le réseau doit survivre à des participants qui disparaissent sans prévenir.
  • Comment parler le même langage ? Sans protocole défini, deux versions d'un même programme cessent de se comprendre. Il faut décider d'un format de messages, et s'y tenir.

Ce sont exactement les questions des systèmes distribués réels — timeouts, source de vérité, compatibilité de protocole — mais dans un monde en cubes, où l'échec coûte zéro et se voit à l'écran.

## Ce que je retiens

On comprend une abstraction le jour où on a dû s'en passer. Après avoir écrit un protocole de messages à la main en Lua, une API REST n'est plus une recette qu'on suit : on sait pourquoi chaque morceau existe.

Et accessoirement : Minecraft est un simulateur de pannes réseau très convaincant.

## Pour aller plus loin