Debugowanie gier wygenerowanych przez AI
Updated 2026-09-05
Znajdź pierwszą granicę, która zawodzi, przekaż agentowi odtwarzalny objaw i ponownie przetestuj tę samą akcję gracza. Zacznij od silnika i kompilacji, których rzeczywiście używasz.
Sklasyfikuj awarię przed poproszeniem o poprawkę
Ustal najwcześniejszy zawodny etap: wykrycie projektu, import, parsowanie lub kompilacja, start sceny, wejście gracza, stan rozgrywki, eksport albo uruchomienie na celu. Późniejsze objawy mogą być skutkami tej pierwszej awarii. Razem przechowuj wersję silnika, rewizję projektu, cel i dokładną reprodukcję.
Na przykład scena, która nigdy nie startuje, nie może powiedzieć, czy działa jej przycisk restartu. Przeglądarka, która nie może pobrać pakietu gry, nie przetestuje kontrolera. Zanim zmienisz kod, skieruj błąd do właściwej granicy; dzięki temu pętla naprawcza nie będzie gromadzić niezwiązanych łatek, gdy pierwotny warunek nadal jest niespełniony.
| Objaw | Najpierw sprawdź | Wynik ponownego testu |
|---|---|---|
| Projekt nie otwiera się | Ścieżka, wersja, zależności | Oczekiwany projekt się ładuje |
| Pusta scena | Błędy startu, scena, kamera, widoczność | Pojawia się oczekiwana treść |
| Wejście nie działa | Fokus, mapowanie akcji, stan, handlery | Akcja zmienia stan gry |
| Eksport się nie udaje | Preset lub warunki wstępne celu | Artefakt zostaje utworzony |
| Kompilacja zawodzi tylko na celu | Zasoby pakietu i logi platformy | Cel przechodzi tę samą pętlę |
Zapisz pierwszy istotny błąd silnika
W Godot użyj panelu debuggera i odpowiednich danych wyjściowych uruchomienia. W Unity osobno sprawdź błędy kompilacji i czasu działania, a przed interpretacją wyników gry poczekaj na gotowość edytora. Zachowaj stos lub lokalizację wskazującą zawodny skrypt i operację, która go uruchomiła.
Przekaż agentowi skupiony fragment oraz kontekst odpowiedniej sceny lub obiektu. Unikaj ogromnego, niepodzielonego logu zasłaniającego pierwszy błąd, ale zachowaj pełny zapis lokalnie do późniejszej inspekcji. Zredaguj dane uwierzytelniające i dane osobowe. Użyteczny raport mówi, co zrobił gracz, co powinno się stać i co faktycznie zgłosił silnik.
Zmniejsz reprodukcję bez zmiany wymagania
Zacznij od stanu projektu, z którego można wrócić, i wyizoluj najmniejszą scenę lub akcję, która nadal pokazuje wadę. Zachowaj prawdziwy kontroler, regułę kolizji lub granicę zapisu zaangażowaną w problem. Całkowite usunięcie zawodnego systemu może dać czyste uruchomienie, ale utracić zachowanie, które trzeba było naprawić.
Poniższy brief jest autorskim szablonem diagnostycznym. Wypełnij go zaobserwowanymi szczegółami, zamiast prosić model o założenie przyczyny. Wymagaj jednego proponowanego wyjaśnienia i wąsko ograniczonej zmiany. Po zakończeniu testu wróć do pełnej podróży gracza, aby lokalna naprawa nie ukryła zepsutego przejścia sceny.
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.Badaj pusty ekran warstwami
Najpierw ustal, czy silnik wystartował i załadowała się zamierzona scena. Następnie sprawdź wybór kamery, wymiary viewportu, widoczność obiektów, pozycje i nakładkę zasłaniającą scenę. Użyj razem stanu silnika i rzeczywistego zrzutu: sam obraz może nie ujawnić, czy scena jest wstrzymana, poza kamerą czy pusta.
Zastosuj wejście i obserwuj, czy stan zmienia się, nawet gdy niczego nie widać. Jeśli pozycja się zmienia, a obraz nie, skup się na renderowaniu lub odwołaniach sceny. Jeśli nie zmienia się nic, przed regulacją grafiki zbadaj start i wejście. Każdą hipotezę powiąż z obserwacją, aby agent nie przepisywał niepotrzebnie obu systemów.
Prześledź wejście przez zmianę stanu rozgrywki
Śledź akcję od fokusu i mapowania do handlera, a następnie do stanu, który ma zmienić. Zanim obwinisz matematykę ruchu, sprawdź stan pauzy i przechwytywanie przez UI. Awaria restartu może wynikać z brakującego handlera, nieaktualnego odwołania do sceny albo stanu, który nigdy nie został zresetowany.
Po naprawie przetestuj akcję z więcej niż jednego istotnego stanu: przy pierwszym uruchomieniu, po wygranej i po przegranej, jeśli ma to zastosowanie. Sprawdź zduplikowane handlery lub nieaktualne obiekty pojawiające się dopiero po wielu rundach. Mały kompletny miniprzebieg może skuteczniej zlokalizować te wady cyklu życia niż wielokrotne testowanie samego przycisku.
Oddziel ładowanie w przeglądarce od logiki gry
W przypadku eksportu webowego Godot przed edycją kodu rozgrywki przejrzyj panele sieci i konsoli przeglądarki. Potwierdź, że eksportowane HTML, JavaScript, WebAssembly i pakiet gry ładują się z zamierzonej lokalizacji. Porównaj ustawienia hostingu z oficjalną dokumentacją eksportu webowego, w tym z wymaganiami wybranej konfiguracji wątków.
Zachowaj spójność nazw plików pomocniczych eksportu i testuj artefakt, a nie mieszaninę starych i nowych plików. Jeśli pojawia się niewłaściwy projekt, sprawdź cache service workera w przeglądarce testowej. Następnie wykonaj wejście i zweryfikuj ruchomą treść. Niepusty canvas jest początkową kontrolą renderowania, a nie dowodem działania pętli gry.
Sprawdź awarie specyficzne dla eksportu na celu
Gdy edytor działa, a rozproszona kompilacja zawodzi, porównaj wybór sceny startowej, dołączone zasoby, konfigurację i logi celu. Zachowaj dokładny hash artefaktu, aby ponowny eksport nie unieważnił rekordu reprodukcji. Testuj z czystym stanem początkowym, zanim oprzesz się na istniejących zapisach lub cache edytora.
Nie zmieniaj głównej mechaniki, aby rozwiązać brakujący spakowany plik. Napraw granicę pakowania i odtwórz tę samą ścieżkę akceptacji w kompilacji docelowej. Dla artefaktów desktopowych użyj rzeczywistego systemu operacyjnego, a dla przeglądarkowych zamierzonej przeglądarki i konfiguracji hostingu. Samo eksportowanie na różne cele nie dowodzi zachowania na celu.
Zamknij naprawę wynikiem przed i po
Zachowaj nieudaną reprodukcję, ograniczony diff i powtórzoną akcję, która teraz tworzy oczekiwany stan. Dodaj kontrolę regresji na granicy, która spowodowała wadę, a następnie odtwórz otaczającą pętlę gry. Zapisz ręczne poprawki oraz żądania zużyte przez nieudane naprawy.
Przykłady tutaj są procedurami diagnostycznymi, a nie opublikowanym przypadkiem awarii i poprawki. Wykorzystaj je do utworzenia konkretnego raportu z własnego projektu. Gdy ten sam objaw utrzymuje się po kolejnych propozycjach, zatrzymaj automatyczną pętlę i zbierz brakującą obserwację, zamiast eskalować do szerokiego przepisania bez nowych dowodów.
Częste pytania
Agent mówi, że gra jest naprawiona, ale ekran pozostaje pusty. Co dalej?
Odtwórz objaw i sprawdź błędy startu, aktywną scenę, kamerę oraz reakcję na wejście. Komunikat ukończenia nie jest obserwacją czasu działania.
Czy powinienem wygenerować cały projekt od nowa?
Najpierw wyizoluj najwcześniejszą zawodną granicę i zachowaj działający stan. Skupiona reprodukcja jest zwykle łatwiejsza do przejrzenia niż zamiennik zmieniający wiele systemów.
Dlaczego przeglądarka pokazuje starszą grę?
Sprawdź tożsamość artefaktu, serwowane pliki i cache service workera w przeglądarce testowej. Zweryfikuj, czy faktycznie ładuje się bieżący eksport.
Czy przechodzące kontrole skryptów dowodzą grywalności?
Obejmują wykonane kontrole. Okablowanie sceny, wejście, renderowanie, zmiany stanu i trwałość wymagają dowodów z czasu działania.
Co powinien zawierać użyteczny raport błędu?
Tożsamość projektu i silnika, cel, kroki, oczekiwane i zaobserwowane stany, pierwszy istotny błąd oraz najmniejszą scenę lub pliki potrzebne do reprodukcji.