Autor: podcat z forum paradoxplaza.
Tłumaczenie: Krakau z naszego forum.

Cześć wszystkim, w tym tygodnik Dziennik będzie mocno techniczny!Będziemy rozmawiać o modowaniu i ułatwieniach, które przygotowaliśmy w HoI4 dla moderów. Będzie całkiem długo. 🙂

Gdy zaczynaliśmy, zdecydowaliśmy, że chcemy, aby HoI4 było jeszcze bardziej modowalne niż wszystkie nasze wczesniejsze gry.Oznaczało to, że będziemy unikać hardkodowania (HoI3 miało dużo hardkodowanych mechanizmów, w tym dotyczących poszczególnych krajów).W HoI4 wszystkie te rzeczy są kodowane „miękko” lub są częścią plików scenariuszowych, czyniąc z gry znacznie lepszą platformę dla fajnych modów.Postanowiliśmy również załączyć narzędzia, których używamy (więcej niżej), co prawda nie są one perfekcyjnie dopracowane – są takie same jakie my używaliśmy i są bardzo przydatne.Gra jest również lepsza w powiadamianiu o tym gdzie popełniłeś błąd i o wszystkim, co nie wyszło dowiesz się z logów itd.

Narzędzia i Wprowadzenie
Pierwsze kroki w tworzeniu modów są teraz łatwiejsze niż kiedykolwiek wcześniej!
Korzystanie z narzędzia uruchamia modów pozwoli Ci utworzyć pusty mod do gry bez żadnych kłopotów, a nawet bez uruchamiania gry.

Następnie, jeśli uruchomisz grę z flagą „-debug” włączy ona „tryb moderski”, który dodaje kilka dodatkowych testów poprawności i udostępnia narzędzia przydatne do modyfikacji gry.
Na przykład mamy w grze narzędzie „Nudger” („Popychacz”), który zapewnia prosty interfejs do modyfikowania właściwości mapy.

Tutaj stworzyłem niesamowity stan Östergötland przez przekazanie niektórych prowincji ze Smalandii i manipulowanie pozycją poszczególnych budynków.
Narzędzie Nudger następnie potwierdza moje zmiany i zapisuje je do odpowiednich plików dla mnie i mojego moda, a to wszystko tylko w kilka kliknięć myszką.

Pliki te są oczywiście czytelne dla człowieka i mogą być łatwo edytowane przy pomocy twojego ulubionego edytora tekstu. W celu bardziej zaawansowanych skryptów lub dokonywania pomniejszych zmian, większość plików (takich jak historia stanu konfiguracji) będzie można otwierać w programie zewnętrznym za pomocą Nudger więc nawet nie trzeba znaleźć ich w systemie plików.

Kolejnym miłym narzędziem jest system natychmiastowej informacji zwrotnej znany również „Psia kość, masz błąd!” znajdujący się w prawym dolnym rogu ekranu, który daje natychmiastową informację zwrotną na temat błędów skryptów i dziwadełek w trakcie gry.Kliknięcie w niego będzie oczywiście otwierać tobie dziennik błędów, boleśnie przypominając ci o rzeczach, o których zapomniałeś lub oskryptowałeś błędnie.

Gdy będziesz zadowolony ze swojego moda i naprawiłeś wszystkie błędy, tylko jedno kliknięcie dzieli cię się od uszczęśliwienia reszty społeczności HoI4 przez przesłanie moda do Warsztatu Steam.

Inną rzeczą, w jaką włożyliśmy wiele wysiłku to przeładowalność.Można odświeżać interfejsy (gra będzie nawet atomatycznie sprawdzać, czy pliki zostały zmodyfikowane, a zmiany będą natychmiast widoczne w grze), a także kilka systemów growych.Na przykład drzewka celów będą się odświeżać wraz z twoimi zmianami, co uczyni pracę z nimi łatwą i nie będzie wymagało ciągłego ponownego uruchamiania gry.

Usprawnienia w skryptowaniu i języku
Jedną z małych funkcji pomocy umieszczonych w konsoli jest komenda „trigger_docs”.Będzie ona generować listę wszystkich wyzwalaczy (triggerów) i efektów, które są zawarte w grze, wraz z niewielkim opisem ich sposobu wykorzystania.Mamy nadzieję, że może to być użyteczne narzędzie dla nowych moderów, aby znaleźli to, czego szukali i starych moderów, aby odkryli ukryte możliwości.My oczywiście nadal mamy umiłowanego psa debugującego, który będzie szczekał na ciebie, gdy coś jest nie tak.

Ciągle dążymy do poprawy przyjazności dla użytkownika w naszym języku skryptowym.Dlatego staramy się wziąć dobre praktyki, które zostały zaimplementowane w innych naszych grach i umieścić je we wszystkich naszych tytułach.Jednym z ostatnich uzupełnień, jest tworzenie makr, co umożliwia używanie całych bloków efektów i wyzwalaczy.

Przykładem tego może być to, że mógłbyś chcieć pokazać jedną opcję w zdarzeniu dla sąsiadów Niemiec, którzy pozostają poza frakcjami a inną dla reszty świata.To może być występować często, na starych zasadach wymagałoby to, aby wszystkie opcje zdarzeń miały następującego wyzwalacza:

any_neighbor_country = {
tag = GER
}

NOT = { is_in_faction_with = GER }

Zamiast tego możemy stworzyć to – wyzwalacz skryptów, który zdefiniujemy w folderze scripted_triggers w plikach gry, o takiej treści:

is_neighbor_not_in_german_faction = {
any_neighbor_country = {
tag = GER
}

NOT = { is_in_faction_with = GER }
}

Który może być później używany w wielu wydarzeniach jako jedna linia (is_neighbor_not_in_german_faction = Yes) w miejsce wielu linii wymaganych uprzednio.

Gdy powszechnie stosowane kombinacje wyzwalaczy i efektów rosną coraz bardziej w złożoności, ta funkcja skryptu ma dwie duże funkcje.Po pierwsze, zmniejsza ilość kodu, który trzeba zduplikować.A po drugie, uczyni kod łatwiejszym do utrzymania w porzadku, ponieważ, gdy znajdziesz się w sytuacji, że trzeba coś zmienić w standardowym zestawie warunków dla wydarzeń, będziesz mógł zrobić zmianę tylko w jednym pliku, a nie żmudnie wyszukiwać wszystkich wymagających koniecznej zmiany.

Innym doskonałym dodatkiem do języka skryptowego jest funkcjonalność definiowania określonego zakresu jako celu zdarzenia wewnątrz łańcucha zdarzeń lub zdarzenia. Funkcja ta jest mocno używania w języku skryptowym w Crusader Kings II, który jest naładowany zakresami.

Cele zdarzeń sprawiają, że łatwiej odwoływać się do różnych prowincji i narodów w tekście zdarzenia i wywoływać efekty na prawidłowe celów, bez konieczności posiadania ogromnej ilości ukrytych zdarzeń, które by badały odpowiednie zakresy i śledziły poszczególne podmioty lub lokalizacje.A jeśli chcesz być naprawdę twórczy możesz spróbować połączyć te dwie funkcje skryptowe i zdefiniować cele zdarzeń, które potem użyjesz w blokach wyzwalaczyy i będą działać jak swoista subrutyna.

S.I.
Sztuczna Inteligencja w HoI3 była oparta o skrypty Lua, ale zdecydowaliśmy się je porzucić z kilku powodów w HoI4 (słaba znajomość lua w firmie i niska efektywność S.I. były kluczowe).S.I. nadal jest jednak bardzo modyfikowalne i ma wiele skryptów gotowych do zmian.Myślę, że najlepiej jednak poczekajmy z tym tematem i porozmawiajmy o tym w Dzienniku dedykowanym S.I., do którego napisania zmuszę SteelVolta jeszcze przed premierą 🙂

W przyszłym tygodniu Sideburnout będzie opowiadał o wszelakiej grafice 2D oraz interfejsie dla HOI4.Do zobaczenia!

P.S. Ktokolwiek stworzy moda Battletech będzie na zawsze w moim sercu.