W gamedevie coraz głośniej mówi się o przesiadkach na Unreal Engine 5.
Dragons Lake to najlepsze w swojej klasie studio wielogatunkowe, zajmujące się tworzeniem gier na PC i konsole. Jest ono częścią grupy Room 8 Group, jednej z największych firm outsourcingowych w branży tworzenia gier, współpracującej z siedmioma z dziesięciu światowych wydawców. Właśnie dzięki uprzejmości firmy, udało mi się porozmawiać z kimś, kto mocniej przygląda się możliwościom silnika. Wołodymir Ivanov jest dyrektorem technicznym do spraw technologii Unreal Engine w Dragons Lake. Miałem przyjemność z nim porozmawiać.
Wołodymir Ivanov z Dragons Lake o Unreal Engine 5
Adrian: Myślę, że warto porozmawiać o Unreal Engine w szerszej perspektywie. Czy ten silnik zdominuje sektor AA i AAA?
Wołodymir: Aktualnie UE5 ma mnóstwo różnego rodzaju narzędzi oraz niesie ze sobą sporo możliwości, z których twórcy mogą korzystać. Sam silnik ma modułową strukturę i twórcy mogą wybierać, których cech potrzebują. Poza tym Epic udostępnia kod źródłowy silnika.
Dzięki temu Unreal Engine jest w stanie pokryć potrzeby i wymagania różnych zespołów z różną specjalizacją. Silnik można rozszerzać tak, jak się chce, dostosować go do swojej gry, sprawić, że będzie tak samo wyjątkowy, jak produkt, nad którym dany zespół pracuje.
Czy Unreal Engine zdominuje rynek? Nie wiem. Ciężko odpowiedzieć na to pytanie. Epic Games wykonało mnóstwo pracy, aby ludzie mogli pracować i uczyć w Unreal Engine.
Z mojego doświadczenia i obserwacji wynika, że studia niezależne raczej skłaniają się ku Unity.
Myślę, że te silniki odpowiadają na różne potrzeby. Unity lepiej sprawdzi się w sektorze gier mobilnych. Natomiast Unreal Engine skupia się na zupełnie innym rodzaju gier. Powiedzmy, że są one bardziej high endowe. Dlatego też nie wspiera wielu platform, na przykład nie wspiera Facebooka. Unreal Engine koncentruje się na najpopularniejszych i najbardziej produktywnych platformach.
A co z silnikami własnościowymi? CD Projekt RED zrezygnowało z rozwoju własnej technologii i postawiło na Unreal Engine 5. Czy właśnie obserwujemy zmierzch tworzenia własnych, szytych na miarę silników?
Nie. Jest mnóstwo różnego rodzaju gier, które potrzebują konkretnego sinika. Unreal Engine nie całkowicie darmowy, trzeba się liczyć z tym, że po przekroczeniu określonego progu zarobków trzeba podzielić się z Epic Games. Jeśli studio uzna, że własny silnik będzie bardziej odpowiedni, to na pewno zdecydują się na takie rozwiązanie.
Weźmy na przykład „Minecrafta„. Jasne, możemy zrobić taką grę w Unreal Engine, ale tutaj będzie trzeba wprowadzić mnóstwo modyfikacji, aby móc tworzyć nieskończony świat.
Unreal Engine ma świetny edytor, porządne narzędzia do debugowania, pozwala na wykorzystanie takich technologii jak Nanites, World Partition oraz Lumen. Epic Games dba o utrzymanie tych elementów. Dzięki temu, że kod źródłowy silnika jest dostępny, to społeczność zgromadzona wokół niego sama jest w stanie proponować zmiany i poprawki.
Jeśli studio uzna, że wykorzystanie Unreal Engine do produkcji gry, będzie tańsze, niż budowanie własnego silnika z narzędziami, to pewnie będą nim pracować…
Szczerze mówiąc, również nie uważam, że tworzenie własnych silników to ginąca sztuka w gamedevie…
Wiesz, otwarty kod Unreal Engine pozwala na budowanie i włączanie własnych narzędzi w edytorze. Unreal Engine może występować jako podstawowy silnik, który będzie potem rozwijany. Dzięki temu studio może się skoncentrować na gameplay’u.
To trzeba dobrze policzyć. Utrzymanie własnego silnika jest drogie, ale czasem trzeba się zdecydować na tę drogę.
Unreal Engine 5 to ewolucja, czy rewolucja?
Z mojego punktu widzenia jest to ewolucja. W niektórych aspektach mnóstwo elementów było już rozwijanych wcześniej. Takie nowości, jak, powiedzmy, Nanites, są nowością w Unreal Engine, ale nie w samym gamedevie. Ta technologia ma swoją historię, była opisywana w pracach naukowych na uniwersytetach. Po prostu została zaimplementowana w wersji 5.0. Daje dużo możliwości, pozwala na renderowanie dużych przestrzeni. Pozwala też uprosić proces tworzenia assetów do gry, jest łatwiej wypiec normalki i przygotować LOD-y.
Lumen daje możliwość korzystania z dynamicznego oświetlenia. W określonych sytuacja pozwala na całkowitą rezygnację ze statycznego, wypieczonego, oświetlenia. Lumen pomaga także designerom. Już na etapie projektowania gry w edytorze osoba pracująca na określonym poziomem może sprawdzić, jak będzie wyglądało oświetlenie. Nie musi czekać na skompilowanie i przygotowanie działającej poza silnikiem wersji całej gry, i wypieczenie świateł.
World Partition ułatwia pracę nad poziomami w tym samym czasie, szczególnie w dużych zespołach. Nie trzeba tworzyć żadnych dodatkowych zasad. Kiedyś trzeba było podzielić poziom na warstwy i w nich pracować. Ktoś zajmował się gameplay’em, ktoś innym światłem, a jeszcze ktoś inny rozstawiał elementy środowiskowe. World Partition ułatwia ten proces, można po prostu pracować na danym poziomem.
Z mojej perspektywy, perspektywy producenta, jest to ewolucja z domieszką rewolucji. Warto wytłumaczyć ludziom jak mają poprawnie korzystać z tych wszystkich udogodnień.
Każde narzędzie musi być odpowiednio zaprezentowane, a zespół przeszkolony. W przeciwnym razie pojawią się różnego rodzaju problemy, często poważne.
Myślę, że warto też wspomnieć o tym, że Unreal Engine jest dość wymagający pod kątem hardware’owym. Oczywiście, patrząc z perspektywy klienta-gracza. A nie wszyscy mają w domach RTXy.
Tak, ale jak wspomniałem wcześniej — Unreal Engine 5 jest wyposażony w podsystemy, które były w wersji 4. Dzięki temu zachowuje odpowiednią skalowalności. Nowe elementy, takie jak Nanite lub Lumen, są wymagające. Szczególnie dla sprzętu poprzedniej generacji, GTXów.
Lumen będzie działał na starym, jak i na nowym sprzęcie. Odpalisz grę na karcie poprzedniej generacji, będzie miał gorzej wyglądające światło, ale dalej będzie dynamiczne. Włączysz grę na RTXie, to światło będzie lepsze.
Nanites to inna sprawa. Będą działać wyłącznie na nowoczesnym sprzęcie. Tutaj dużo zależy od twórcy. Poprawne używanie skalowalności oraz możliwości Unreal Engine pozwala na stworzenie gry, która będzie sobie radziła na różnych konfiguracjach.
Tak samo jak UE4, UE5 dobrze się skaluje. Robimy gry na PS4, XBox One i Switch w ten sam sposób, w jaki robiliśmy to z UE4. Więc nie ma tu żadnych zmian, wszystko zależy od twórców gry. Jasne, jeśli gra jest robiona tylko pod RTX to nie będzie działać bez odpowiedniego sprzętu, ale w większości przypadków dobieramy technologie patrząc na sprzęt docelowy.
To miło, że wspomniałem o Nintendo Switchu, lubię tę konsolę. Z tego, co się orientuję, to portowanie gier z UE 5 na Pstryka jest sporym wyzwaniem.
Tak. Czasem trzeba coś wyciąć z gry, mam tutaj na myśli zmniejszenie jakości assetów. To da się zrobić. Czasem sporo trzeba poświęcić, ale to jest wykonalne.
A co oferuje twórcom Unreal Engine twórcom, dla których szczególnie ważne jest AI?
Unreal Engine skupia się na behavioir tree. Pozwala na budowanie zachowanie w formie drzewa, gdzie pojawiają się różnego rodzaju parametry. Dzięki nim definiuje się, które zachowanie ma zostać uruchomione.
Innym, bardzo pomocnym narzędzie, jest Enviroment Query System (EQS). Daje możliwość puszczania zapytań po elementach środowiskowych. Pozwala to na zalezienie wszystkich jabłek na poziomie i wybrać to będące najbliżej. Tak samo można podjeść do różnego rodzaju osłon będących na poziomie.
Te elementy można rozszerzyć o różnego rodzaju Blueprinty. Unreal Engine pozwala też na wykorzystanie zmysłów botów, takich jak wzrok oraz słuch.. Poruszanie po poziomach też jest stosunkowo proste. Dzięki wbudowanemu systemowi nawigacji wystarczy określić, gdzie bot ma się znaleźć i silnik dostarczy mu wszystkich potrzebnych informacji.
Wszystkie te rozwiązania są już w silniku!
Co z rozwiązaniami oznaczonymi jako eksperymentalne? Mam na myśli Mass Entity System i Smart Objects.
Mass Entity System ma już całkiem dobrze rozbudowaną dokumentację. To jest świetny dodatek do Unreal Engine! Reprezentuje podejście zorientowane na dane, pozwala na zminimalizowanie braków w pamięci podręcznej procesora. Dzięki temu można zarządzać większą liczbą bytów, przy wykorzystaniu mniejszych zasobów.
Mass Entity System nie jest obecnie jakoś silnie wykorzystywane w Unreal Engine. Wiem, że inne silniki z tego korzystają, widziałem wykłady z GDC, które pokazują, że to podejście daje zadowalające rezultaty. Może wspomnę, że Mass Entity System może zostać wykorzystane do każdego elementu, który wymaga zarządzania dużą liczbą obiektów.
Smart Objects to również dobre rozszerzenie podsystemu związanego z AI. Przydaje się, szczególnie gdy potrzebne jest bardziej modułowe podejście do sztucznej inteligencji. Posłużę się przykładem z dokumentacji Unreal Engine. Po stworzeniu ławki z trzema miejscami bot automatycznie sam wybiera miejsce, które jest wolne. Smart Objects koncentruje się na interakcjach z obiektami w przestrzeni gry.
A co z grami wieloosobowymi? Czy Unreal Engine pomaga w tworzeniu takich produkcji?
W formie podstawowej Unreal Engine pozwala na tworzenie wieloosobowych gier. 8 na 8 graczy, czyli maksymalnie 16. Ten silnik posiada bardzo bogaty zestaw narzędzi do tworzenia pierwszoosobowych shooterów. Z mojego doświadczenia wynika, że często trzeba opracować własne rozwiązanie pozwalające na replikację danych pomiędzy klientami.
Twórcy mogą też skorzystać z Epic Online Subystem.
To rozwiązanie pozwala przede wszystkim na dzielenie danych. Ułatwia implementację takich elementów jak znajomi lub matchmaking. To taki zestaw ułatwiający budowanie sieciowej obecności gracza, ale nie jest powiązany z kodem sieciowym Unreal Engine.
Z mojego doświadczenia wynika, że Epic Online Subsytem nie jest rozwiązaniem doskonałym. Wiesz, gry sieciowe potrzebują sporych baz danych, muszą też zarządzać interakcjami pomiędzy graczami, poziomem i samą grą.
Od jakiegoś czasu toczy się dyskusja na temat wydajności Xbox Series S. Masz jakieś przemyślenia na ten temat?
Taka sama sytuacja była w poprzedniej generacji konsol Microsoftu. Na pewno dla twórców gier wspieranie Series X i Series S przyczynia się do bólu głowy. Wydajność tych obu urządzeń jest znacząco różna, wymaga to dwukrotnie większych nakładów pracy, aby wspierać oba te urządzenia.
Dziękuję za rozmowę! Myślę, że udało nam się poruszyć kilka ciekawych tematów.
Również dziękuję!