La nostalgia dei giochi retrò è qualcosa che non passa mai, ma oggi possiamo reinterpretare quei classici con un tocco moderno e, perché no, anche un pizzico di intelligenza artificiale. È con questo spirito che ho creato AI SNAKE, una versione evoluta del leggendario Snake, arricchita da nuove modalità di gioco, una UI moderna con estetica rétro, leaderboard in tempo reale e persino una modalità VS AI.
In questo post ti racconto com’è nato questo progetto, quali strumenti ho utilizzato, e perché ho deciso di integrare un LLM come Claude Sonnet 3.7 nel processo di sviluppo.
L’idea
Volevo realizzare un gioco utilizzando semplicemente quella modalita’ di sviluppo chiamata “vibe coding” cercando di ri-creare una versione del gioco semplice ma coinvolgente, qualcosa che potesse essere lanciato in un browser senza troppi fronzoli ma capace di offrire esperienze diverse rispetto al solito Snake.
Così è nata l’idea di creare:
- una modalità Classica, per i puristi;
- una Time Attack, per chi ama le sfide a tempo;
- una modalità Sopravvivenza, con ostacoli casuali;
- e soprattutto una VS AI, dove si compete contro un serpente controllato da un algoritmo AI.
Gli strumenti
🎯 Cursor
Cursor è stato il mio editor principale durante lo sviluppo. Oltre alla sua interfaccia pulita, ho potuto sfruttare l’integrazione nativa con modelli AI per velocizzare la scrittura e il refactoring del codice. Un vero boost alla produttività.
🔄 Trae
Ho usato Trae per iniziare il progetto (un edito AI simile a Cursor creato da ByteDance) che fornisce un accesso gratuito a modelli di AI tipo Claude Sonnet ma con delle limitazioni che mi hannno poi giocoforza richiesto di usare Cursor per completare il progetto.
🧠 Claude Sonnet 3.7 (Anthropic)
Qui arriva il tocco di magia. Ho utilizzato Claude principalmente per tre cose:
- Generazione del codice;
- Ottimizzazione della logica del gioco, evitando bug e suggerendo miglioramenti;
- Scrittura assistita del README e della documentazione, inclusa parte della UI testuale.
Il modello ha dimostrato un’eccellente comprensione del contesto e ha fornito snippet intelligenti e modulari, che ho potuto integrare quasi “as-is”.
Architettura del progetto
Il progetto è scritto interamente in JavaScript (client + server) ed è basato su Node.js.
La struttura è semplice ma ben organizzata:
bashCopyEditsnake-game/
├── src/ # Logica di gioco, AI, interfaccia, DB
├── assets/ # Audio e immagini
├── data/ # Database SQLite
├── index.html # Entry point
├── server.js # Backend Express
Caratteristiche principali
- 🌌 Sfondo parallax animato
- 🎮 Controlli reattivi e intuitivi
- 🔊 Musica ed effetti sonori
- 💾 Leaderboard persistente con SQLite
- ⚡ Power-up e ostacoli dinamici
- 🤖 Modalità VS AI con logica autonoma
- 📱 Interfaccia moderna, stile rétro
Modalità VS AI: il cuore del progetto
Il vero cuore del progetto è la modalità VS AI, in cui un secondo serpente controllato da una logica automatica compete contro il giocatore per sopravvivere e raccogliere più punti.
Ho usato Claude Sonnet per progettare un sistema semplice di pathfinding, bilanciato tra prestazioni e imprevedibilità, ispirato ad approcci di greedy AI.
È bastato chiedere:
“Scrivimi una logica per far muovere un serpente AI verso il cibo evitando ostacoli e il serpente del player.”
Risultato: un file ai.js
modulare, facilmente espandibile, che dà un vero senso di competizione alla modalità AI.
Perché usare un LLM nello sviluppo di giochi?
Integrare un LLM nello sviluppo non significa far fare tutto all’AI, ma usarla come sparring partner creativo e tecnico. Claude Sonnet 3.7 è stato prezioso per:
- prevenire errori comuni,
- suggerire logiche alternative,
- migliorare la leggibilità del codice,
- velocizzare il debugging.
Conclusioni
AI SNAKE è più di un semplice gioco: è un piccolo laboratorio dove ho potuto sperimentare nuove tecnologie, collaborare con un’intelligenza artificiale e divertirmi nel far rivivere un classico con stile e innovazione.
🕹️ Vuoi provarlo? Basta clonare il repo:
bashCopyEditgit clone https://github.com/Netkomm/ai-snake
cd ai-snake
npm install
node server.js
oppure testa l’installazione sul mio server
Se hai domande tecniche o vuoi contribuire, trovi tutto nella repo GitHub.
Fammi sapere cosa ne pensi… o se la tua AI riesce a batterti 😎