Bienvenue sur le dépôt des projets du hackathon 24 heures pour coder (édition 2026), organisé par le BDE.
Tous les jeux livrés ici sont des cartouches TIC-80. Une galerie web statique (auto-générée à partir des dossiers de ce repo) les liste et les fait jouer directement dans le navigateur.
Trois étapes, sans toucher à aucun fichier de code côté web :
Crée un dossier avec le nom de ton choix (espaces, majuscules, ponctuation tolérés). Peu importe son organisation interne — tu décris au pipeline comment construire ta cartouche à l'étape 3.
Image PNG à la racine de ton dossier. Idéalement 240×136 (résolution native TIC-80) ou un multiple. Affichée avec image-rendering: pixelated.
Fichier à la racine de ton dossier. Template minimal :
{
"id": "mon-super-jeu",
"title": "Mon Super Jeu",
"team": "Nom d'équipe",
"authors": ["Prénom Nom"],
"description": "Pitch en une ou deux phrases.",
"genre": "Arcade",
"language": "Fennel",
"controls": [
{ "key": "←/→", "action": "Se déplacer" },
{ "key": "X", "action": "Sauter" }
],
"sourceDir": "Mon Super Jeu",
"coverPath": "cover.png",
"build": ["load assets/game.tic"]
}id: slug kebab-case unique ([a-z0-9-]). Sert d'URL.sourceDir: nom exact de ton dossier.language:"Fennel" | "Lua" | "JS" | "Moon" | "Wren" | "Squirrel".build: voir ci-dessous.
Liste de commandes TIC-80 (celles de la console) qui amènent l'éditeur à un état jouable. Le pipeline ajoute export html et exit à la fin. N'écris ni run, ni exit, ni export html.
a) Cartouche .tic complète (cas le plus simple)
"build": ["load assets/game.tic"]b) Sprites en cartouche + code séparé
"build": ["load assets/sprites.tic", "import code src/main.fnl"]c) Code seul
"build": ["new fennel", "import code src/main.fnl"]d) Assets multiples
"build": [
"new lua",
"import tiles assets/tiles.gif",
"import sprites assets/sprites.gif",
"import map assets/map.txt",
"import code src/main.lua"
]Référence des commandes TIC-80 : https://github.com/nesbox/TIC-80/wiki/Console.
La CI :
- détecte ton
game.json, - exécute ta séquence
builddans TIC-80 headless, - génère l'export HTML,
- régénère la galerie.
Si ton jeu n'apparaît pas, regarde les logs CI : champ manquant, fichier introuvable, commande TIC-80 en échec — chaque erreur est loggée explicitement.
cd web
npm install
npm run build:tic # exécute TIC-80 sur chaque jeu
npm run dev # http://localhost:5173Sur macOS, le script cherche TIC-80 dans /Applications/tic80.app. Sur Linux, tic80 doit être dans le PATH (la CI le télécharge automatiquement). Sinon, définir TIC80_BIN=/chemin/vers/tic80.
- SPECS.md — spécifications complètes.
- STATE.md — état d'avancement.
- CLAUDE.md — guide pour les agents IA qui reprennent le projet.
Hackathon 24h pour coder 2026 — organisé par le BDE.