Automatyczne beta profile gry
More actions
Opcjonalne wykrywanie beta porównuje nową kompilację gry z zapisaną, obsługiwaną wersją. Pełny profil beta powstaje tylko wtedy, gdy dostępne są wymagane dowody. Pasujące zwykłe profile gry mają pierwszeństwo.
Przygotowanie przed aktualizacją gry
Moduł jest domyślnie włączony i można go wyłączyć. Jawnie zapisane wyłączenie pozostaje aktywne. Przełącznik znajduje się w Settings → General → Game profile, obok selektora profilu.
- Sprawdź, czy włączono Dynamic game profile creation (Beta). W razie potrzeby włącz tę opcję.
- Całkowicie uruchom ponownie grę lub serwer dedykowany, gdy odpowiedni zwykły profil jest nadal dostępny.
- ShroudForge dokładnie weryfikuje bieżący plik wykonywalny i zapisuje go w pamięci podręcznej jako podstawę porównania. Nie trzeba pobierać historycznej wersji pliku wykonywalnego.
- Po kolejnej aktualizacji gry nowy proces automatycznie rozpoczyna porównanie i używa zapisanej podstawy.
Klient i serwer dedykowany przechowują osobne podstawy. Klient nie może zastąpić podstawy serwera. Jeśli moduł zostanie włączony po raz pierwszy dopiero po aktualizacji, a pasująca podstawa nie została zapisana, nie można odtworzyć poprzedniej wersji.
Co dzieje się podczas uruchamiania gry
Analiza jest wykonywana podczas uruchamiania gry. Gra czeka na wynik przed kontynuowaniem startu. W tym kroku świat nie musi być załadowany.
ShroudForge najpierw szuka zwykłego profilu pasującego do dokładnego uruchomionego pliku wykonywalnego. Jeśli taki profil istnieje, użyje go wybór automatyczny. Przy włączonym wykrywaniu obsługiwany plik wykonywalny jest też zapisywany w pamięci podręcznej na potrzeby przyszłych aktualizacji.
Jeśli nie ma pasującego zwykłego profilu, moduł sprawdza najnowszą odpowiednią zwykłą podstawę dla tego samego procesu docelowego i formatu KFC. Wcześniej zapisany plik wykonywalny musi dokładnie odpowiadać tej podstawie. Porównuje kod, odwołania, zarejestrowane typy i wymagane kontrakty strukturalne na podstawie obrazów porównawczych. Adresy docelowe trzeba ustalić na podstawie nowego obrazu.
Wynik zachowuje cały kontrakt poprzedniego profilu, łącznie z jego flagami funkcji. Nierozstrzygnięte lub sprzeczne dowody uniemożliwiają opublikowanie całego profilu beta. Diagnostyka podaje przyczynę. Dłuższe oczekiwanie ani wejście do świata nie rozwiązuje braku statycznych dowodów.
Przechowywanie i wybór
Zwykłe i wygenerowane profile korzystają ze skonfigurowanego katalogu profili. Domyślne ścieżki to:
| Zawartość | Lokalizacja |
|---|---|
| Profile klienta | shroudforge/runtime/profiles/enshrouded/client/
|
| Profile serwera | shroudforge/runtime/profiles/enshrouded/server/
|
| Zapisane obrazy porównawcze i dowody | shroudforge/cache/game-profile-discovery/
|
Wygenerowane profile zaczynają się od beta_. Wybór Automatic może użyć w pełni zweryfikowanego pasującego profilu beta, jeśli nie ma dostępnego pasującego zwykłego profilu. Selektor wyświetla dostępne profile. Później dodany pasujący zwykły profil ma pierwszeństwo.
Zmiana przełącznika lub wyboru profilu wymaga pełnego ponownego uruchomienia gry albo serwera, którego dotyczy zmiana. Ponowne otwarcie okna Modloadera nie uruchamia ponownie runtime'u.
Różnica między wykrywaniem, profilami i działającym światem
Niebieski komunikat Dynamic profile search in progress oznacza, że trwa wyszukiwanie profilu. Workflow and help otwiera ten poradnik. Jeśli wyszukiwanie zakończy się bez pasującego profilu, problem pojawi się na czerwono. Pomarańczowy komunikat Experimental game profile active wskazuje rzeczywiście wybrany profil beta. Rzeczywiste błędy runtime'u są nadal wyświetlane jako błędy.
Kontrole strukturalne pliku wykonywalnego nie wymagają załadowanego świata. Operacje zależne od świata wymagają również odpowiednich aktywnych kontekstów, rejestracji i kontroli bezpieczeństwa runtime'u. Wygenerowany profil nie dowodzi, że wykonano polecenia gry ani że przyniosły widoczny efekt. Testy funkcjonalne muszą też osobno sprawdzać klienta i serwer.
Jeśli profil nie zostanie wygenerowany, przeczytaj zgłoszoną przyczynę i szczegóły techniczne. Brak zapisanej podstawy, nieodpowiedni profil źródłowy oraz nierozstrzygnięte dowody dotyczące kodu i układu wymagają właściwych danych wejściowych lub dalszej analizy. Pasujący zwykły profil albo odpowiednia aktualizacja ShroudForge mogą zapewnić obsługę.
Szczegółowe logowanie
Debug Console pokazuje komunikaty wykrywania z głównego dziennika pod źródłem game-profile-discovery. Aby zobaczyć wszystkie porównania i pola rebasingu, ustaw Settings → General → Logging → Minimum level na Diagnostic. Advanced wyświetla dodatkowe podsumowania.
Czerwony baner runtime'u i wpis dziennika [compatibility-check] check=runtime pochodzą z tego samego sprawdzenia runtime'u. Istniejące odświeżanie interfejsu zapisuje zmianę stanu przed wysłaniem tego samego statusu do Modloadera. Debug Console stosuje istniejące ustawienie wyskakujących okien do ostrzeżeń i błędów z tego głównego dziennika.
Po niepowodzeniu główny dziennik podaje ścieżkę do bieżącego raportu .v2.unresolved.json lub .v2.error.json. Po powodzeniu zawiera ścieżkę do dowodów .v2.proof.json i pełną ścieżkę zapisu wygenerowanego profilu beta_.json. Raporty są przechowywane w pamięci podręcznej wykrywania.
Linux i Proton
Wykrywanie działa wewnątrz natywnego modułu runtime'u i nie wymaga zewnętrznych programów PowerShell ani Python. Ten przepływ pracy nie został jeszcze przetestowany na żywo w Protonie.
Informacje o runtime, API modów i parserze znajdziesz na stronie Silnik.