NPC w Hytale – przegląd techniczny

Twórcy Hytale ostatnio podzielili się technicznymi szczegółami, w jaki sposób tworzone są zachowania NPC. Ten post kierowany jest bardziej dla moderów lub osób interesujących się technikaliami.

Framework NPC obecnie wspiera szeroki zakres zachowań w wielu systemach, które można łatwo konfigurować używając zasobów opartych na czystych danych (data-driven). Oznacza to, że nie musimy znać się na programowaniu, wystarczy odpowiednio skonstruowany plik JSON, aby skonfigurować zachowania NPC.

Na stronie hytalemodding udostępniono już dokumentację i tutorial tworzenia własnego NPC. Również sami twórcy udostępnili własny tutorial w formie filmików:

Role NPC

Rdzeniem każdego NPC jest jego rola, która m.in. definiuje jego zachowanie. Gra oferuje kilka gotowych szablonów z możliwością edytowania ich wartości, które mogą zostać potem łatwo aplikowane do nowego NPC.

Z technicznego punktu widzenia, zachowanie to nic innego jak zestaw instrukcji do wykonania. Każda z tych instrukcji składa się z sensora – elementu sprawdzającego stan gry, aby zdecydować, czy dana instrukcja może zostać wykonana i jakie działania powinien podjąć NPC. Instrukcje można zagnieżdżać, co pozwala na tworzenie bardziej złożonych zachowań.

W grach komputerowych często zachowania NPC dyktowane są przez tzw. drzewo zachowań (z ang. behaviour tree). Hytale implementuje podobne rozwiązanie, gdzie drzewko wykorzystuje fallback selector node. Nie będziemy zagłębiać się w szczegóły techniczne, generalnie chodzi o to, że każda instrukcja jest wykonywana po kolei, jeśli spełnia odpowiedni warunek. Dopóki specjalna flaga nie zostanie zawarta w instrukcji, żadna kolejna nie zostanie wykonana. Dzięki temu przepływ logiki w NPC jest łatwy do śledzenia, niezależnie od tego, jak duże lub głębokie są drzewa.

Kiedy to wszystkie indywidualne elementy jak sensory, akcje, ruchy itp. są napisane w Java, listy instrukcji są skonstruowane w pełni jako JSON. Na ten moment gra posiada 150 różnych elementów, które można łączyć w celu tworzenia zachowań, oraz framework uławiającym moderom dodawanie kolejnych elementów za pomocą Java. Nie wszystkie z nich są w pełni gotowe, ale w przyszłości możemy spodziewać się udoskonaleń.

Framework NPC jest tworzony tak, aby każdy, niezależnie od poziomu doświadczenia, mógł powołać do życia swojego stworka. Jako przykład może posłużyć nam owca. Zmieniając linijkę „Reference” z „Template_Animal_Neutral” na „Template_Predator” w pliku JSON, możemy zmienić jej zachowanie, z neutralnie przysposobionej istoty w agresywnego łowcę.

Ewaluacja walki

Chociaż instrukcje wydają się niezwykle elastycznym narzędziem, to w przypadku tworzenia bardziej zaawansowanych NPC, które potrafią wykonywać więcej niż tylko podstawowe ataki, staję się uciążliwe. Odpowiedzią na te zawisłości jest system „The Combat Action Evaluator”. Dzięki niemu NPC, może podejmować inteligentne decyzje w każdej chwili dotyczące jego stanu, stanu otaczającego go świata oraz jego wrogów lub sojuszników. Każdemu możliwemu atakowi (lub innemu działaniu bojowemu) przypisany jest zestaw warunków, które określają najlepszy moment do jego użycia – gdy HP jest niskie; gdy wróg jest blisko; gdy gracz próbuje zakraść się od tyłu. Warunki te są następnie oceniane, a każda akcja jest porównywana z innymi w celu określenia kierunku działania, jaki NPC chce podjąć. Ten sposób wprowadza pewien poziom „niejasności” do NPC i prowadzi do bardziej interesujących spotkań bojowych przy mniej rozbudowanych konfiguracjach. NPC nie zawsze mogą zachowywać się tak, jak możemy tego oczekiwać. Przykładem może być Szkielet Pretorian, który może użyć swoje umiejętności z pewną dozą inteligencji.

Zderzenie z rzeczywistością

Wszystko to brzmi jakby było już gotowe. Niestety tak nie jest. Brakuje wiele usprawnień i narzędzi, w tym tych do debugowania. Samo edytowanie JSON, pomimo że działa, to jest toporne. Same NPC również mają problemy z różnymi rzeczami, jak znajdywanie ścieżek, czy pozycjonowanie. Jest jeszcze wiele do zrobienia w temacie wydajności.

Co przyniesie przyszłość?

Wysoko na liście priorytetów twórców Hytale jest zapewnienie narzędzi moderskich. Ponadto, przyjrzą się problemom z pathfindingiem i poruszaniem się. Dodanie nowych szablonów zachowań także jest na celowniku. Na końcu tej drogi, te poprawki mogą potencjalnie przyczynić się do powstawania lepszych bossów dla systemów PvE.

Źródło: hytale.com/news/2026/2/npc-technical-rundown