Debug dei giochi generati dall'AI
Updated 2026-09-05
Trova il primo confine che fallisce, fornisci all'agente un sintomo riproducibile e ritesta la stessa azione del giocatore. Parti dall'engine e dalla build che esegui davvero.
Classifica l'errore prima di chiedere una correzione
Identifica il primo passaggio che fallisce: scoperta del progetto, import, parsing o compilazione, avvio della scena, input del giocatore, stato del gameplay, export o avvio sul target. I sintomi successivi possono essere conseguenze del primo guasto. Conserva insieme versione dell'engine, revisione del progetto, target e riproduzione esatta.
Per esempio, una scena che non parte non può dirti se funziona il pulsante di riavvio. Un browser che non riesce a recuperare il pacchetto di gioco non può testare il controller. Indirizza l'errore al confine corretto prima di cambiare codice, così il ciclo di riparazione non accumula patch non correlate mentre il prerequisito originale resta rotto.
| Sintomo | Ispeziona prima | Esito del retest |
|---|---|---|
| Il progetto non si apre | Percorso, versione, dipendenze | Il progetto si carica come previsto |
| Scena vuota | Errori d'avvio, scena, camera, visibilità | Compare il contenuto previsto |
| L'input non ha effetto | Focus, mapping dell'azione, stato, handler | L'azione cambia lo stato del gioco |
| L'export fallisce | Preset o prerequisiti del target | L'artefatto viene creato |
| La build fallisce solo sul target | Risorse pacchettizzate e log della piattaforma | Il target completa lo stesso loop |
Cattura il primo errore significativo dell'engine
In Godot, usa il pannello debugger e l'output runtime pertinente. In Unity, ispeziona separatamente errori di compilazione e runtime e aspetta che l'editor sia pronto prima di interpretare i risultati di Play. Conserva stack o posizione che identifica lo script fallito e l'operazione che l'ha attivato.
Invia all'agente un estratto focalizzato più il contesto della scena o dell'oggetto. Evita un log enorme e indistinto che nasconda il primo errore, ma conserva localmente il record completo per l'ispezione successiva. Redigi credenziali e dati personali. Un report utile dice cosa ha fatto il giocatore, cosa doveva succedere e cosa l'engine ha effettivamente segnalato.
Riduci la riproduzione senza cambiare il requisito
Parti da uno stato di progetto recuperabile e isola la scena o l'azione più piccola che mostra ancora il difetto. Mantieni coinvolti il controller reale, la regola di collisione o il confine di salvataggio responsabile del problema. Rimuovere completamente il sistema fallito può produrre un run pulito perdendo però il comportamento da riparare.
Il brief seguente è un template diagnostico originale. Compilalo con dettagli osservati invece di chiedere al modello di presumere la causa. Richiedi una spiegazione proposta e una modifica circoscritta. Quando il test è concluso, ricongiungi il percorso completo del giocatore, così la riparazione locale non nasconde una transizione di scena rotta.
Project revision: <record actual revision>
Engine and target: <record actual environment>
Steps: launch -> start round -> perform the failing action
Expected state: <specific result>
Observed state: <specific result>
First engine error: <relevant error and location>
Inspect the referenced scene and script before editing.
Propose one cause, make a scoped fix, then repeat these steps.
Preserve the required behavior and report any remaining failure.Indaga una schermata vuota a strati
Determina prima se l'engine è partito e se la scena prevista è stata caricata. Poi ispeziona selezione della camera, dimensioni del viewport, visibilità e posizioni degli oggetti e ogni overlay che copra la scena. Usa stato dell'engine e cattura reale insieme: un'immagine da sola può non rivelare se la scena è in pausa, fuori camera o vuota.
Applica input e osserva se lo stato cambia anche quando non appare nulla. Se la posizione cambia ma l'immagine no, concentrati su rendering o riferimenti della scena. Se non cambia nulla, indaga avvio e input prima di modificare l'artwork. Collega ogni ipotesi a un'osservazione, così l'agente non riscrive inutilmente entrambi i sistemi.
Traccia l'input attraverso la transizione di gameplay
Segui l'azione dal focus e dal mapping all'handler e poi allo stato che dovrebbe cambiare. Controlla stato di pausa e intercettazione UI prima di incolpare la matematica del movimento. Un errore di riavvio può dipendere da handler mancante, riferimento di scena obsoleto o stato mai resettato.
Dopo la riparazione, testa l'azione da più stati rilevanti: primo avvio, dopo una vittoria e dopo una sconfitta quando applicabile. Controlla handler duplicati o oggetti obsoleti che compaiono solo dopo round ripetuti. Un piccolo miniflow completo può localizzare questi difetti del ciclo di vita meglio di testare il pulsante isolatamente più volte.
Separa caricamento browser dalla logica di gioco
Per un export web Godot, ispeziona prima pannelli network e console del browser prima di modificare codice gameplay. Conferma che HTML esportato, JavaScript, WebAssembly e pacchetto di gioco siano caricati dalla posizione prevista. Confronta le impostazioni di hosting con la documentazione ufficiale dell'export web, inclusi requisiti della configurazione thread scelta.
Mantieni coerenti i nomi dei file companion esportati e testa l'artefatto, non una combinazione di file vecchi e nuovi. Se compare il progetto sbagliato, ispeziona la cache del service worker nel browser di test. Poi esercita input e verifica contenuto in movimento. Un canvas non vuoto è un controllo iniziale di rendering, non la prova che il loop di gioco funzioni.
Controlla sul target gli errori specifici dell'export
Quando l'editor funziona ma la build distribuita fallisce, confronta scena d'avvio, risorse incluse, configurazione e log del target. Conserva l'hash esatto dell'artefatto, così un re-export successivo non invalida il record di riproduzione. Testa da uno stato iniziale pulito prima di affidarti a salvataggi esistenti o cache dell'editor.
Non cambiare la meccanica centrale per risolvere un file pacchettizzato mancante. Correggi il confine di packaging e ripeti lo stesso percorso di accettazione nella build target. Per artefatti desktop usa il sistema operativo reale; per artefatti browser usa browser e hosting previsti. Il solo cross-export non dimostra il comportamento sul target.
Chiudi una riparazione con un risultato prima/dopo
Conserva la riproduzione fallita, il diff circoscritto e l'azione ripetuta che ora produce lo stato atteso. Aggiungi un controllo di regressione al confine che ha causato il difetto e poi ripeti il loop di gioco circostante. Registra correzioni manuali e richieste consumate dalle riparazioni fallite.
Gli esempi qui sono procedure diagnostiche, non un caso pubblicato di errore e correzione. Usali per creare un report concreto del tuo progetto. Quando lo stesso sintomo persiste dopo proposte ripetute, ferma il loop automatico e raccogli l'osservazione mancante invece di passare a una riscrittura ampia senza prove nuove.
Domande frequenti
L'agente dice che il gioco è riparato, ma lo schermo è vuoto. Cosa faccio?
Riproduci il sintomo e ispeziona errori d'avvio, scena attiva, camera e risposta all'input. Il messaggio di completamento non è un'osservazione runtime.
Devo rigenerare l'intero progetto?
Isola prima il confine iniziale che fallisce e conserva lo stato funzionante. Una riproduzione focalizzata è di solito più facile da revisionare di una sostituzione che modifica molti sistemi.
Perché il browser mostra un gioco più vecchio?
Controlla identità dell'artefatto, file serviti e cache del service worker nel browser di test. Verifica che venga caricato davvero l'export corrente.
Controlli script superati dimostrano la giocabilità?
Coprono i controlli eseguiti. Wiring delle scene, input, rendering, transizioni di stato e persistenza richiedono prove runtime.
Cosa deve contenere un bug report utile?
Identità di progetto ed engine, target, passaggi, stati atteso e osservato, primo errore rilevante e scena o file minimi necessari per riprodurlo.