![Gothic VR – gra w Gothica w wirtualnej rzeczywistości 1 Gothic VR](https://gothic.org.pl/wp-content/uploads/2024/05/GothicVR_logo.png)
Gothic VR to projekt społeczności mający umożliwić grę w Gothic I i Gothic II w wirtualnej rzeczywistości. Czy nadal pamiętasz Bloodwyna, który zmuszał cię do płacenia za ochronę? Doświadczysz tego ponownie. I zapłacisz… Ale tym razem na poważnie.1
Mechaniki VR umożliwiają nowe sposoby na zanurzenie się w świecie Gothica. A co powiesz na stworzenie ostrza za pomocą uderzenia młotem, wyciągnięcie broni dwuręcznej z lewego ramienia lub rzucenie zaklęcia za pomocą gestów dłoni?2
To właśnie chce dostarczyć graczom zespół Gothic VR. Ten artykuł jest wynikiem rozmowy z koordynatorem projektu – Romeeey. Opowiedział mi o historii i przyszłości projektu oraz o zespole, który zebrał się, aby urzeczywistnić tę wizję.
Początek
R: Jestem wielkim fanem Gothic 1, więc zawsze chciałem zrobić coś z tą grą, modding, prequel, cokolwiek. Jestem również wielkim fanem AR3 i VR4, dlatego w pewnym momencie postanowiłem połączyć te dwa pomysły i spróbować przenieść Gothic 1 do wirtualnej rzeczywistości.
Jak zobaczycie, cały projekt zaczął się od małych eksperymentów jednego gościa, ale dziś jest czymś znacznie więcej. Jestem bardzo dumny z tego, jak ten pomysł się rozwinął, jak wielu ludzi przyciągnął i jak profesjonalny jest dzisiaj. Być może zacząłem to sam, ale nie byłoby to tym, czym jest dzisiaj, bez niesamowitych programistów z zespołu Gothic VR oraz ich wysiłków i pasji.
Ale pozwól, że opowiem Ci, jak to się zaczęło i jak do tego doszliśmy.
3 lata temu robiłem coś, co w Austrii nazywa się „Bildungskarenz”, co w przybliżeniu oznacza „urlop edukacyjny”. Jest to sponsorowany przez państwo program szkoleniowy mający na celu zdobycie nowych umiejętności. Jedną z części mojego szkolenia było poznanie tworzenia gier w Unity i wybrałem pracę nad Gothic 1 w VR jako mój projekt szkoleniowy.
Mała uwaga na marginesie. W tamtym czasie miałem na uwadze trzy gry, z którymi chciałem poeksperymentować. Gothic 1, American McGees Alice i Zanzarah. Zdecydowałem się na Gothic 1 ze względu na szerokie możliwości modowania i niesamowitą społeczność fanów. Jest to również moja ulubiona gra wszechczasów. Był to więc naturalny wybór.
Jeśli chodzi o wykształcenie, nie jestem programistą. Moje wykształcenie to inżynieria i górnictwo. Później pracowałem w obszarze cyfryzacji i rozszerzonej rzeczywistości (ang. „Augmented Reality„, w skrócie „AR” – przyp. red.) w przemyśle jako kierownik projektu i administrator serwerów. Wideo pokazuje, nad czym pracowałem w tamtym czasie, więc widać, że byłem już w obszarze rozszerzonej rzeczywistości (AR i VR).
Moim pierwszym wyzwaniem było wyciągnięcie oryginalnych modeli i zasobów z gry.
Nie miałem doświadczenia z tworzeniem gier i również w ogóle z Unity (silnik, na którym oparty jest projekt – przyp. red.). Moje pierwsze kroki polegały na korzystaniu z samouczków o tym, jak korzystać z Unity oraz na zapoznaniu się z narzędziami modderskimi. Moje pierwsze postępy polegały na ręcznym wyodrębnianiu zasobów, takich jak modele 3D i tekstury z oryginalnej gry za pomocą narzędzi do modowania, umieszczaniu ich w Unity i sprawianiu, by działały.
Zacząłem dokumentować swoje postępy na Youtube (kanał Gothic VR na YouTube), pokazując mój pierwszy sukces, jakim było przemieszczanie się w Starym Obozie i okolicach za pomocą podstawowego kontrolera VR. Początkowo korzystałem z wbudowanej wtyczki Oculus, ponieważ używałem wtedy Meta Quest 2 (bardzo popularne okulary VR – przyp. red.). W ciągu następnych kilku tygodni i miesięcy wypróbowałem różne rzeczy, takie jak importowanie modeli 3D elementów otoczenia, takich jak drzewa i ogrodzenia itp.
Później dodałem również zwykłe przedmioty, które można było chwycić w VR i bawić się nimi. Wielkim wyzwaniem było wstawienie do gry NPC-ów, ponieważ są one całkiem złożone, jeśli chodzi o ich modele (np. ludzkie NPC-e mają osobne głowy, różne ciała i modele zbroi). Również wyzwaniem była poprawna obsługa starych formatów animacji z Gothica.
Wszystkie te rzeczy były wykonane ręcznie i bardzo eksperymentalne. Moim celem nigdy nie było stworzenie pełnej gry. Chciałem po prostu wypróbować różne rzeczy i nauczyć się tworzenia gier w Unity.
Niespodziewane wsparcie
R: Na końcu mojego urlopu edukacyjnego, planowałem zatrzymać projekt i zostawić go w spokoju. Chciałem wstawić mój kod na GitHub do użycia dla innych i iść dalej. Ale ktoś poinformował Jorgensona, sławnego niemieckiego YouTubera z community Gothica, który chciał przeprowadzić ze mną wywiad. Zgodziłem się i razem zrobiliśmy całkiem niezłe Q&A na temat projektu i mojej wizji.
Wtedy zdałem sobie sprawę, że jest wielu ludzi, którzy naprawdę kochają pomysł posiadania pełnoprawnej gry Gothic VR i że możliwe jest zrealizowanie takiego projektu ze wspaniałymi ludźmi, którzy podzielają tę wizję.
Wspólne nagranie z Jorgensonem i moje eksperymenty wideo na YouTube przyciągnęły tak wielu zwolenników, że postanowiliśmy zorganizować kickoff meeting (spotkanie inauguracyjne – przyp. red.) dla bardziej ogólnego projektu Gothic VR. Tak narodził się obecny projekt Gothic VR, jaki znamy dzisiaj.
Lubię myśleć o poprzednich filmach i eksperymentach, kiedy wciąż pracowałem sam, jako o „proof of concept” (dowodzie koncepcji – przyp. red.) dla dzisiejszego Gothic VR. Obecny projekt, który naprawdę ma na celu całą grę (Gothic 1 i Gothic 2) z zespołem deweloperskim i odpowiednim podejściem technicznym, nazywa się dziś po prostu „Gothic VR”.
Ideowo wciąż opiera się na wczesnych eksperymentach i doświadczeniach z etapu „proof of concept”. Technicznie rzecz biorąc, większość mojego eksperymentalnego kodu została wyrzucona i przekształcona w wysokiej jakości kod przez nasz zespół programistów. Projekt przeszedł 3 główne etapy:
- Dowód koncepcji, gdzie wciąż pracowałem sam.
- Utworzenie zespołu Gothic VR i profesjonalizacja bazy kodu.
- Nowe podejście techniczne do ładowania oryginalnych plików gry podczas uruchamiania.
Jedną z ostatnich rzeczy, które zmieniłem pod koniec fazy PoC („Proof of Concept” – przyp. red.), była zmiana z wbudowanego pluginu Oculus na OpenXR (standard VR i AR dla wielu platform i urządzeń – przyp. red.).
Była to dobra decyzja, ponieważ teraz możliwe było nie tylko wspieranie urządzeń Oculus, ale także szerszej gamy okularów VR. Teraz technicznie możliwe było uruchomienie gry na wszystkich popularnych okularach.
Projekt się rozrastał
R: Na pierwszych spotkaniach inauguracyjnych było około 10-12 zainteresowanych osób, które chciały dołączyć do zespołu programistów. Na bardzo wczesnym etapie jeden z nich o imieniu Vince wykonał wiele fundamentalnej pracy, szczególnie w zakresie siatek krajobrazu i ogólnych ulepszeń projektu.
W kolejnych tygodniach i miesiącach zespół 5-8 osób okazał się głównym / podstawowym zespołem programistów, w tym także kilka osób, które wspierają projekt, pomagając przy filmach na YouTube i wykonując zadania projektowe lub pomoc organizacyjną. Jeden z członków tego podstawowego zespołu, Tyroonis, zapewnił nam profesjonalną infrastrukturę i know-how / wiedzę na temat Continuous Integration (CI – ciągłej integracji – przyp. red.). Otrzymaliśmy zautomatyzowany sposób tworzenia oprogramowania z Unity i Github.
Kod Gothic VR jest nadal publicznie dostępny na GitHub.
Gamechanger
R: Dużym gamechangerem był inny bardzo zmotywowany programista i jego wizjonerskie pomysły – JaXt0r, który postanowił zrobić mały projekt poboczny. Zawsze myśleliśmy o pobieraniu danych bezpośrednio z oryginalnych plików gry, ponieważ korzystanie z narzędzi do modowania oznaczało dużo ręcznej pracy. To nowe podejście oznaczałoby, że wszystko byłoby dostępne od razu po prawidłowej implementacji.
Eksperymentował z innym projektem, który w tamtym czasie nosił nazwę Phoenix, a obecnie znany jest jako ZenKit. Projekt ZenKit ma na celu ponowną implementację formatów plików używanych przez ZenGin (zastrzeżony silnik Gothic). ZenKit zawiera parsery i podstawowe struktury danych dla większości formatów plików używanych przez ZenGin (silnik Gothic – przyp. red.), a także maszynę wirtualną dla skryptów Daedalus (język skryptowy Gothica) i infrastrukturę pomocniczą.
Ten niesamowity projekt autorstwa jednego dewelopera o imieniu Luis, który później coraz bardziej integrował się z naszym zespołem i ściśle z nami współpracował, teoretycznie umożliwił załadowanie większości oryginalnych plików gry i używanie ich bezpośrednio w Gothicu. Kolejnym ważnym aspektem było uruchomienie rdzenia gry Gothic w naszym projekcie. Musieliśmy tylko wymyślić, jak poradzić sobie z tym w Unity. JaXt0r to zrobił i stał się architektem naszego nowego podejścia do Gothic VR.
Pomimo całego sceptycyzmu pod względem wykonalności i wydajności, JaXt0r faktycznie zdołał załadować dane w czasie wykonywania z oryginalnych plików gry Gothic do Unity. I to już z całkiem niezłą wydajnością. Może dla wyjaśnienia: nasza aplikacja pobiera dowolną oryginalną wersję Gothic, wyodrębnia zasoby i buduje z niej doświadczenie VR. A wszystko to po uruchomieniu gry, w czasie rzeczywistym.
Omówiliśmy to nowe podejście w naszym zespole, ale bardzo szybko stało się jasne, że jest to droga, którą należy podążać, jeśli chcemy zrobić pełną grę w VR. To spotkanie było technicznymi narodzinami obecnego projektu Gothic VR. Musieliśmy zacząć od zera, ale oczywiście mogliśmy w dużym stopniu wykorzystać wszystkie rzeczy z PoC („Proof of Concept” – przyp. red.) i wczesnego projektu VR. Bardzo szybko mieliśmy ponownie krajobrazy z Gothic 1, elementy otoczenia, ruch VR i chwytanie przedmiotów.
W tym czasie dołączył do nas nowy programista o imieniu Frank i natychmiast zaimplementował bardzo fajne nowe funkcje, takie jak muzyka i dźwięki, a także bardzo ważną funkcję, jaką było ładowanie świata.
Tam, gdzie w moim eksperymentalnym PoC były duże dziury w świecie, ponieważ nie zależało mi na ręcznym wstawianiu rzeczy, teraz mamy wszystko dostępne. Musisz wiedzieć, że w Gothic 1 istnieje gigantyczna siatka świata zwana „surface” (pl. powierzchnią – przyp. red.), z bardziej szczegółowymi siatkami, takimi jak Stary Obóz lub inne obszary, które są wstawiane. Jest też więcej ukrytych obszarów, takich jak Stara Kopalnia czy Świątynia Orków, gdzie opuszczasz powierzchnię i wchodzisz do tych podziemi.
W moim starym PoC brakowało wielu obszarów, takich jak Obóz na Bagnie, ponieważ skupiałem się tylko na Starym Obozie i obszarze początkowym, a wejście do innych obszarów nie było w ogóle możliwe. Dzięki implementacji Franka otrzymaliśmy odpowiednie ekrany ładowania i możliwości zmiany między lokacjami. Oczywiście od razu musieliśmy odwiedzić Starą Kopalnię, aby sprawdzić tę kultową lokację. Szybko okazało się, że nie można sobie poradzić tam bez drabiny, więc Frank zaimplementował wspinaczkę po drabinie w VR i teleportowanie drabiny dla komfortu gry wkrótce potem.
Po nowym podejściu technicznym – nazwaliśmy je wtedy unZENity, ze względu na oryginalną nazwę silnika Gothic ZenGin i odrobinę szaleństwa (engl. insanity – przyp. red.) – JaXt0r przeszedł do ładowania i implementacji NPC-ów. Już wtedy, gdy wszystko robiliśmy ręcznie, NPC-e i animacje były ogromnym wyzwaniem, a także bardzo czasochłonną funkcją.
Najważniejsze funkcje
R: Z dużą pomocą Luisa, twórcy ZenKit, JaXt0r dokonał kilku znaczących przełomów i dobrych implementacji w ciągu ostatnich miesięcy. Jesteśmy teraz bardzo blisko możliwości załadowania wszystkich NPC-ów do naszej gry i umożliwienia im wykonywania animacji, gdy są bezczynni, a także części ich rutynowych czynności. Jak już wspomniano, funkcja ta jest dość złożona, samo wyświetlanie NPC-a jest wystarczająco trudne, ponieważ ciało i głowa są oddzielne, są o różnej wadze, są różne zbroje, siatki głowy, tekstury ust i zębów, przedmioty, które noszą, ich prawidłowa tekstura twarzy oraz ich prawidłowa pozycja w świecie.
Wykonywanie przez nich akcji poprzez odtwarzanie animacji jest jeszcze trudniejsze, gdy te bardzo stare formaty animacji z Gothica są używane w najnowocześniejszym oprogramowaniu. Do tego dochodzą podstawowe wyzwania, takie jak odczytywanie wszystkich rutyn postaci i interpretowanie ich, aby działały dokładnie tak, jak w oryginalnej grze.
I powiem wam jedno. Nawet jeśli wszystko nam się uda, wciąż napotkamy błędy i śmieszne zachowania, które czają się w oryginalnej grze. To naprawdę zabawne zobaczyć, jak oryginalni twórcy z Piranha Bytes zaimplementowali funkcje, kiedy napotykasz komentarze takie jak: „Nie wiem, dlaczego to działa, ale zostawiam to tak, jak jest”. Bardzo fajnie jest zagłębić się i zobaczyć, co pierwotnie robili i myśleli twórcy gry.
Bardzo ważną kwestią rozwojową, która również miała miejsce za kulisami, była optymalizacja wydajności i implementacja cullingu. Samodzielne okulary VR, takie jak Meta Quest 2 lub Pico 4, są dość słabe pod względem sprzętowym. Można by sobie wyobrazić, że ponad 20-letnia gra z łatwością działałaby na współczesnym sprzęcie, ale świat Gothic 1 zawsze był ogromny i nadal jest bardzo dynamiczny, jeśli umieści się go w nowym silniku.
Żywym dowodem na to były problemy z wydajnością Gothica na Nintendo Switch. Aby uruchomić wielki, stary świat Gothic 1, musieliśmy zaimplementować pewne funkcje wydajności, takie jak culling, aby osiągnąć wystarczająco wysoką liczbę klatek na sekundę, która jest zalecana i niezbędna w grach VR, aby uniknąć choroby lokomocyjnej i oczywiście zapewnić płynną rozgrywkę. Jesteśmy dumni, że nasze aplikacje działają z dobrą liczbą klatek na sekundę na mobilnych okularach VR.
Kolejnym ważnym dla nas tematem było poprawienie atmosfery naszej aplikacji poprzez dodanie magicznej Bariery ze wszystkimi oryginalnymi regułami jej działania: kiedy i jak się pojawia, pogodą, chmurami, deszczem, niebem i zmianami dnia / nocy, w większości zaimplementowanymi przez Franka. Całkiem niedawno do naszych szeregów dołączył nowy programista o imieniu Thomas, który zaczął nam doradzać dzięki swojemu imponującemu doświadczeniu w tworzeniu gier.
Bardzo szybko został wciągnięty w nasze dyskusje i zaczął pomagać Frankowi w implementacji oświetlenia i w pojedynkę przeniósł światło i oświetlenie, które są bardzo złożonym tematem, na wyższy poziom. Ośmielę się powiedzieć, że wiele z tych funkcji jest już na poziomie, na którym konkurujemy z profesjonalnymi i komercyjnymi studiami gier pod względem jakości.
Demokratyczny projekt
R: Projekt jest teraz w rękach zespołu odpowiedzialnego za Gothic VR. Decyzje są podejmowane demokratycznie przez zespół. Nadal jestem członkiem zespołu, zajmuję się mniejszymi implementacjami i oczywiście naszymi filmami na YouTube i pracą w społeczności. Ciężka praca jest obecnie wykonywana przez naszych bardziej doświadczonych programistów i ekspertów. JaXt0r, który zbudował techniczne podstawy nowego projektu Gothic VR i który jest naszym największym współpracownikiem, działa jako nasz główny programista i koordynuje nasz kod i wkład.
Są Frank i Tyroonis, którzy również wnieśli duży wkład w kod i są odpowiedzialni za niesamowite funkcje. Thomas (oświetlenie), Adam (wyszukiwanie ścieżek NPC), Kevin, Noxy i ja również piszemy kod i wdrażamy funkcje, gdy tylko mamy czas. Luis, twórca ZenKit, zawsze nam pomaga, jeśli chodzi o interfejsy i implementacje ZenKit, a ostatnio dostarczył nam ulepszone możliwości muzyczne, które wkrótce zaprezentujemy światu. Otrzymujemy duże wsparcie w zakresie filmów i społeczności od noxy, ikumy i mihai. Poprzedni i obecnie nieaktywni członkowie to vince, thogs, dizzy, coldblood i rared.
Jesteśmy projektem społecznościowym, więc ludzie dołączają i odchodzą. Mamy okresy, w których wiele się dzieje. Mamy okresy, kiedy ludzie potrzebują przerw lub wakacji. Ale ogólnie mamy całkiem zdrowy i stabilny zespół oraz dużo motywacji, know-how i miłości do starych gier i naszej wspólnej wizji.
Modyfikacje
R: Ponieważ pracujemy z oryginalnymi plikami gry, jesteśmy w stanie obsługiwać wiele podstawowych modyfikacji po wyjęciu z pudełka. Np. zwykłe użycie tekstur w wysokiej rozdzielczości lub zmodyfikowanych plików skryptów (Daedalus) będzie działać wraz z premierą naszego projektu, w zależności od tego, jakie pliki zasilą naszą aplikację.
Jeśli chodzi o ulepszenia graficzne i zmiany w oryginalnej grze, wiele jest możliwych. Używamy Unity, więc możliwe jest zaimplementowanie najnowocześniejszej grafiki i zintegrowanie dowolnej funkcji. Naszą wizją jest, pozostanie jak najbliżej oryginalnej gry, co oznacza, że będziemy używać oryginalnej grafiki i oryginalnych funkcji.
Ale ponieważ wiele osób chce ulepszeń, najprawdopodobniej zapewnimy dodatkowe funkcje za pośrednictwem opcji i ustawień. Ogólnie rzecz biorąc, nasi deweloperzy mają swobodę w implementowaniu tego, co chcą. Dużo dyskutujemy i oczywiście mamy też nieporozumienia. Ale w takim przypadku deweloperzy nadal mogą zaimplementować swoją funkcję jako opcjonalną, aby inni mogli doświadczyć Gothic VR dokładnie tak, jak chcą.
Walka mieczem i rzucanie czarów
R: Nie zaimplementowaliśmy jeszcze dwóch podstawowych funkcji: walki mieczem i rzucania zaklęć. Ale jest wiele pomysłów i koncepcji, jak je wdrożyć. Oczywiście VR jest idealny do odgrywania walki lub rzucania zaklęć. Np. w przypadku magii podnoszenie rąk podczas rzucania czarów teleportacyjnych. To samo dotyczy walki mieczem. Wiele osób w naszej społeczności jest bardzo ciekawych, jak to zaimplementujemy. Zwłaszcza w przypadku umiejętności jedno- i dwuręcznych.
Nie uruchomiliśmy jeszcze tej funkcji, ale dużo o niej dyskutowaliśmy i już planujemy pierwsze kroki w celu jej wdrożenia. Jedną z możliwości byłoby np. wykonywanie kombo mieczem w celu zadania większych obrażeń. Innym pomysłem jest zaimplementowanie mechanizmu rytmicznego cięcia. W każdym razie kluczowe jest, aby walka mieczem i rzucanie zaklęć były przyjemne i naturalne w VR. Będzie to jeden z podstawowych elementów doświadczenia VR i musi być tak realistyczny i brudny, jak w oryginalnych grach.
Są rzeczy, które są łatwiejsze do zaimplementowania, ale pokazują nam drogę, jak zaprojektować te funkcje. Na przykład otwieranie skrzyń i drzwi lub używanie młota do kucia lub patelni nad ogniem. Wszystkie te działania i ruchy muszą być odgrywane w VR. Naprawdę chwytasz patelnię i trzymasz ją nad ogniem, aż mięso zacznie skwierczeć. Uderzasz młotem w gorące żelazo i chwytasz drzwi, aby je otworzyć tak, jak w rzeczywistości. Te funkcje są obecnie wdrażane. Ale pokazują nam, dlaczego Gothic jest idealną grą dla wirtualnej rzeczywistości.
Przyszłość
Można zapytać: czego można się spodziewać w przyszłości?
Mamy obecnie 3 główne tematy, nad którymi pracujemy:
- NPC, rutyny i animacje
- Światło i atmosfera
- Mechanika VR
Jak już wspomniano, mamy gotową podstawową implementację NPC-ów. Wkrótce pokażemy nasze postępy w nowych filmach na Youtube. To dla nas duży kamień milowy, aby wszyscy NPC-e byli obecni w grze i wykonywali swoje podstawowe czynności. Niemniej jednak nadal brakuje wielu animacji w rutynach lub są one zepsute albo są problemy z wydajnością. Tak więc głównym tematem w tym obszarze będzie optymalizacja, optymalizacja i optymalizacja.
Poczyniliśmy duże postępy w obszarze oświetlenia. Jest to kwestia, nad którą powoli pracujemy w tle, aby poprawić ogólną atmosferę gry.
W najbliższej przyszłości skupimy się na wydaniu funkcji VR, takich jak gotowanie, kowalstwo, a może nawet walka. Niedawno dołączyli do nas nowi programiści, aby bardziej skupić się na VR.
Naszym ostatecznym celem jest oczywiście uczynienie Gothic 1 i 2 w pełni grywalnymi w wirtualnej rzeczywistości. Kiedy osiągniemy ten cel, na horyzoncie pojawią się również wizje wdrożenia lub współpracy z innymi projektami w zakresie gry multiplayer i modyfikacji dla naszej ukochanej gry. Ale realistycznie rzecz biorąc, obecnie celujemy w MVP (minimalny wykonalny wyrób) z dostępnym światem i postaciami niezależnymi, w którym można dotrzeć do końca gry. Ta wersja może nie mieć mechanizmu walki, a opcje dialogowe mogą wyglądać na podstawowe. Ale rdzeń gry będzie dostępny. Z taką wersją możemy powoli pracować nad kompletną grą.
Współpraca i kontakt
Jesteśmy również bardzo otwarci na nowych deweloperów dołączających do naszego projektu. Jeśli masz doświadczenie z Unity i C#, możesz dołączyć do naszego zespołu backendowego, aby ożywić oryginalną grę w Unity. Jeśli uwielbiasz eksperymentować z mechaniką VR, idealnie pasowałbyś do naszej grupy frontendowej i VR. Czekamy na Twoje pomysły i doświadczenie. Dla wszystkich fanów przygotowaliśmy wiele nowych rzeczy. Możesz śledzić nas na naszym serwerze Discord lub oglądać nasze filmy z postępów na naszym kanale Gothic VR na YouTube.
Do wszystkich wspierających i fanów:
Witamy w kolonii… w wirtualnej rzeczywistości!
- Opis projektu na GitHub [Dostęp: 18-05-2024] ↩︎
- Ibid. ↩︎
- Augmented reality (rzeczywistość rozszerzona) ↩︎
- Virtual reality (rzeczywistość wirtualna) ↩︎