2.3 KiB
2.3 KiB
Lezioni Apprese e Prossimi Passi
Errori commessi
- Sovrainingegneria: Ho creato troppe varianti di server e codice senza consolidare
- Mancanza di test incrementali: Ogni riscrittura completa impediva di isolare i bug
- Assunzioni non verificate: Ho assunto che frecce standard funzionassero, che Canvas rispondesse, che il loop JS non lanciasse eccezioni
- Debug "alla cieca": Senza console del browser accessibile, non potevo vedere gli errori reali
- Nessuna architettura chiara: Mescolare logica di rendering, input e stato in un unico file monolitico ha creato accoppiamento
Cosa farebbe funzionare
Approccio consigliato per il prossimo tentativo
-
Iniziare con un prototipo HTML puro
- Menu come elementi HTML (non Canvas)
- Nessun JavaScript per il menu
- Solo click su pulsanti
-
Separare rendering e logica
- Canvas SOLO per il gioco
- HTML per menu e UI
-
Testare ogni meccanica isolatamente
- Prima: solo movimento giocatore
- Poi: solo disco che si muove
- Poi: interazione disco-giocatore
- Infine: IA e punteggio
-
Aggiungere try-catch con visibilizzazione errori
try { /* codice */ } catch(e) { X.fillStyle='red'; X.fillText('ERR:'+e.message,10,20); } -
Gestire tastiera in modo difensivo
var up = ['ArrowUp','KeyW','KeyI']; var dn = ['ArrowDown','KeyS','KeyK']; // Testare effettivamente quali codici arrivano
Suggerimento alternativo
Considerare l'uso di pygame (Python) invece di JavaScript/Canvas:
- Più semplice da debuggare
- Game loop più robusto
- Input gestito via eventi pygame
- Sarebbe necessario un server che serva un canvas via WebSocket o un'applicazione desktop
Riferimenti utili
- Windjammers Wiki
- Fandom Wiki (regole dettagliate)
- Gitea MCP — server MCP per integrazione Gitea
- opencode-review-gitea — skill per review PR su Gitea
- Kitbitz MCP — endpoint MCP per asset grafici CC0
Stato del repository Gitea
La repository truetype/giteo è stata creata su http://192.168.0.183:8085 ma contiene il codice non funzionante.