Mega tutorial o level designie i tworzeniu świata
Jako, że ostatnio mam sporo do czynienia z pracami niedoświadczonych level designerów i udało mi się zaobserwować masę różnych błędów jakie popełniają początkujący, toteż chciałbym zwrócić tutaj na nie uwagę, a jako że i tak mam już przygotowaną masę materiałów pochodzących z Innych Sfer postanowiłem napisać ten wyczerpujący tutorial pełen elementarnych zasad dotyczących level designu. Nie liczę, że ktoś do niego zajrzy z własnej woli skoro ludzie nawet nie oglądają zenów z oryginału, ale zawsze bardziej doświadczeni będą mogli odsyłać do tego tuta. Chciałbym aby każdy wziął sobie na prawdę poważnie do serduszka rzeczy, które są tu napisane bo widzę, że opisane błędy pojawiają się na prawdę często.
___________________________________________________________
Oryginał Przede wszystkim nie rozumiem jak można zabierać się za robienie nowego własnego świata bez dokładnej analizy tego przedstawionego w oryginale gry. Nie ważne czy chodzi o modelowanie świata czy lvl design, zawsze najpierw oglądamy matkę naszej modyfikacji - importujemy kerraxem zen i śledzimy sposób w jaki zostały stworzone poszczególne obiekty, oglądamy siatkę - to pierwsza rzecz jaką powinniśmy zrobić i która dużo nas nauczy. W spacerze oglądamy jak zostały porozmieszczane przedmioty i doszukujemy się prawidłowości, sprawdzamy jakie właściwości zostały im przydzielone. Warto to zrobić na prawdę dokładnie, bo np nie od razu każdy zauważy, że wewnątrz wielu budynków są belki, które można normalnie wykorzystywać.
___________________________________________________________
Low Poly i FPSy Ponieważ - co mnie zdruzgotało - wielu z was zupełnie nie wie, że w przypadku wszystkich gier, a już zwłaszcza takich skamielin jak gothic, FPSy to pierwsza rzecz, o którą powinniśmy się martwić, a nie ostatnia dlatego wszystko co tworzymy dla tej gry o postaciach z kwadratowymi pięściami powinno być jak najbardziej pozbawione trójkątów!!! Poniższy screen pokazuje na przykładzie prostych modeli dla tych co są całkowicie zieloni o co chodzi. (oczywiście zielony model jest zrobiony poprawnie, czerwony - źle).

Z doświadczenia wiem, że zenGin w niezwykle dziwny sposób radzi sobie z wyświetlaniem dużej liczby szczegółów. Powyżej 50 000 trójkątów zaczynają się robić pierwsze skoki (np przy gwałtownym obracaniu), a powyżej 70 000 gra nie chodzi już płynnie, mimo że gra bez crasha na granicy 7 klatek spokojnie może działać nawet przy 150 000 widocznych na raz trójkątach (Dane podane na podstawie jedynie mojego, bardzo dobrego sprzętu). Dlatego ci co tworzą światy powinni jednak o tym pamiętać by nie robić terenów gdzie widoczne jest więcej niż te 50k + powiedzmy 10k pochodzące z vobów, Npców, bohatera. itp.

___________________________________________________________
Mesh a ZenZen jest najistotniejszym elementem bo w nim zapisane są wszystkie informacje o świecie - voby oraz ich lokacje. Mesh jest traktowany niemal wyłącznie jako kolejny z vobów. Kiedy więc chcemy podmienić jakiś kawałek świata w naszym zenie nie wystarczy zrobić tego w katalogu /meshes/world bo nasz świat jest już skompilowany i zapisany w zenie. Aby zobaczyć zmianę trzeba najpierw podmienić, a potem po prostu skompilować świat.
Jeżeli nasz Zen ma się składać z większej ilości mniejszych zenów to można je bez problemu połączyć za pomocą macro.
___________________________________________________________
Concept artyAby stworzyć spójny i ciekawy świat zaczynamy zawsze od conceptów. Trzeba więc wytężyć całą swoją wyobraźnię przestrzenną i zastanowić się jak rozlokować budynki by uzyskać jaki efekt i jak to w rzeczywistości będzie wyglądało z różnych stron z perspektywy gracza. Polecam ułatwić sobie zadanie bloczkami wielkości budynków odpowiednio je układając w interesujący nas kształt. Ilość conceptów wybieramy w zależności od dostępnego czasu jaki chcemy poświęcić na tworzenie modyfikacji. Pamiętamy jednak, że realizacja w rzeczywistości zawsze trwa o wiele dłużej niż się pierwotnie zakładało, dlatego też radzę zamknąć listę pomysłów na początku prac i już niczego do niej potem nie dodawać.
___________________________________________________________
NazwaKilka oczywistości co do nadawania nazwy, bo jak widzę ludzie z Hollywoodu za mocno się odcisnęli na umysłach co niektórych i powstają różne takie nazwy które niby to mają wzbudzać jakąś trwogę, a budzą jedynie politowanie.
- Nie twórzcie nazw nacechowanych emocjami obcymi dla odbiorcy
- W języku angielskim jeśli nie wydajemy moda w tym samym języku
- Zdradzających sekrety rozgrywki
- Będącymi imitacjami już istniejących nazw
- Z użyciem takich slow jak: krwawy; apokalipsa; śmierć; ciemność; mściciel; itp. na miarę filmów z Seagalem.
Proponuję wymyślić jednak jakąś nazwę, która mogłaby w jakiś sposób zmusić do refleksji, mającą w sobie metaforę. Oczywiście to moje subiektywne zdanie.
___________________________________________________________
RefkiWiadomo fantazy itp itd etc. Ale jeśli fantazja wyniosła nas tak daleko, że miecz który wymyśliliśmy jest jedyny i niepowtarzalny i nikt takiego nie ma to warto jednak się zastanowić dlaczego nikt takiego nie wymyślił. Najczęściej okazuje się, że konstrukcja po prostu łamie prawa fizyki lub jest tak niedorzeczna, że żaden zdrowo myślący człowiek nie ośmielił się tego pokazać. (tu przytoczyć mogę przykład pewnego miecza który jako, że miał dwa ostrza miał zadawać dwa razy większe obrażenia). Dlatego nie bójcie się korzystać z zdjęć referencyjnych, profesjonalnych conceptów znalezionych w sieci. Podobnie jeśli nie jesteśmy czegoś pewni, np jak wygląda dzika paproć gotująca się na zimę. Tutaj sam nie miałem pewności. Czy paproć żółknie? Otóż liście paproci przed zimą usychają na brązowo poczynając od końcówek, zachowując resztę liścia zieloną, a potem chowają się do kłączy. Nie ma więc żółtego przejścia, a widok jak na zdjęciu poniżej wprowadzi gracza w osłupienie.

___________________________________________________________
MappingTe domyślne 2,3 w spacerze niezbyt nadaje się na podłoże tam dajemy raczej 1 bo mapa nie może być za rzadka w najbardziej widocznych miejscach, ani też oczywiście za gęsta bo widać by było powtarzalność. Pytanie więc co zrobić z wysokimi skałami widocznymi z daleka, bo albo się popatrzy z dużej odległości i będzie się powtarzała tekstura tworząc brzydki wzorek albo się podejdzie i na teksturze będą widoczne piksele wielkości kostki chodnikowej. Cóż ja polecam górę skał pokryć dużą mapą, a dół widoczny z bliska małą. Wystarczy potem posadzić kilka drzew i nie widać granicy mapowań. Ci natomiast którzy mają opanowanego unwrapa mogą zrobić płynne przejście między gęstościami mapy w programie graficznym.

___________________________________________________________
Co to jest Gothicowy level designJak mówiłem świat tworzymy możliwie jak najbardziej LP. Głównym celem level designu powinno być takie wzbogacenie świata aby zakryć ubogość i niedociągnięcia siatki świata!!! <- to bardzo istotne. Np na szczycie wzniesienia powrzucajmy kamienie aby nie było widać prostych krawędzi, jeżeli jedna tekstura przechodzi zbyt ostro w następną również można to dyskretnie przykryć roślinnością. Podobnie z krawędziami między ścianami (czy to skalnymi czy domostw) a podłożem - tam zawsze są proste linie, które w pierwszej kolejności level designer powinien zakryć.





___________________________________________________________
DetaleCzasami jednak warto dodać trochę detalu do ubogiej siatki. Róbmy to tak i w takich miejscach by wysiłek był jak najlepiej zauważalny, np. jeśli postanowiliśmy wymodelować dodatkową krawędź czy stopień, pokryjmy go odróżniającą teksturą by nie był to zbędny wydatek poly. można również zrobić koleiny w ścieżce, które widoczne będą na wzniesieniu. Jeżeli mamy koncepcję na teren z dużą ilością detali to warto jednak postarać się o wykluczenie z widoku przestrzeni wokół np. miasto portowe otoczone wzniesieniami.

___________________________________________________________
NoisePowiedzmy, że mamy mieć jakiś płaski kawałek terenu np. chodnik, albo że tworzymy budynek, więc jak wiadomo wszystkie ściany powinny być równe i równoległe do kierunku siły g bo żaden budynek, zwłaszcza w średniowieczu, nigdy nie był krzywy i nierówny, prawda? Ano nieprawda - budynki są krzywe dlatego jak już wymodelujemy jakąś ze wspomnianych rzeczy bez ogródek zaznaczamy wierzchołki i traktujemy je delikatną funkcją noise, bo wszelkie zbyt geometryczne kształty oko człowieka zaraz wychwyci i zdefiniuje jako nienaturalne.
___________________________________________________________
WiatrKażdy chwiejący się na wietrze krzaczek to dodatkowe obliczenia dla naszego procka. Oszczędźmy więc biednemu i nie ustawiajmy wszystkim rośliną tej opcji bo jak nam się tak cały świat rozkołysze to będzie lipa.
___________________________________________________________
Gdzie vobować?Jak mówiłem ustawiamy voby środowiska tak aby jak najbardziej zakryć brzydkie krawędzie. Jednak miejscami, które również potrzebują dużej liczby roślinności są te nieuczęszczane przez gracza oraz innych npców bo tak by to wyglądało w realnym świecie (taki paradoks, że im mniej czasu gracz w danym miejscu będzie przebywał tym więcej czasu vober musi spędzić nad lokacją). Już pomijam kwestie jakiej puszczy ale np tak jak na tym screenie między murem a urwiskiem. Wiadomo, że nikt nie ma celu włazić w te miejsce więc można się spodziewać, że więcej nieudeptanych krzaków będzie właśnie tam rosło. Ponadto vobuje się nie tylko ziemię - ze skał również mogą zwisać wszelkie roślinki.
No i pomimo, że używamy powtarzalnych vobów, to wydają się one o wiele mniej powtarzalne kiedy się je na różne sposoby poobraca.


___________________________________________________________
Światła statyczne / dynamiczneI jeszcze ostania bardzo istotna rzecz. Przeraziło mnie kiedy zauważyłem, że większość osób bez większego namysłu ładuje wszędzie gdzie się da światła dynamiczne. Te są z kolei tylko nie potrzebnym obciążeniem dla naszych komputerów w lokacjach indoorowych, a najczęściej jeszcze gorzej wyglądają niż ich krewne - wspaniałe światła statyczne, których używanie gorąco propsuję. Jakie są różnice? Przede wszystkim światła statyczne są niejako (nie wiem jakiego słowa powinienem użyć) wypiekane na siatce świata, dzięki czemu komputer nie musi ich liczyć na bieżąco (a pamiętajmy, że światła to nie są tradycyjne voby - efekt ich świecenia będzie zauważalny tak długo jak zauważalna będzie tekstura pod nim, czyli z bardzo daleka, a nadmiar doprowadzi do spadku FPSów). Ponadto światła statyczne w odróżnieniu do dynamicznych mogą rzucać cienie i nie wychodzą poza obręb budynku - nie przenikają przez ściany, a jedyne co należy zrobić aby w grze widoczny był efekt ustawienia w danym miejscu świateł statycznych jest skompilowanie od nowa oświetlenia co może zająć w porywach do minuty na bardzo wolnym sprzęcie (tradycyjnie jest to ok 2 - 5 sec). Niestety jednak światła statyczne mają tą dość poważną wadę, że świecą jedynie w światach indoor oraz pomieszczeniach zamkniętych portalami.
Światła dynamiczne natomiast przydają się kiedy potrzebujemy światła o zmiennym zabarwieniu (np pochodnia), albo kiedy obiekt znajduje się w ruchu (np... pochodnia), no i w outdoorach. Pamiętajmy też na jakiej zasadzie działają światła dynamiczne - otóż rozświetlają one trójkąty oparte na vertexach znajdującym się w najbliżej przestrzeni z intensywnością zależną od odległości tych vertexów od źródła światła i z najintensywniejszym punktem świecenia w miejscu tych vertexów. Kto rozumie to zdanie ten wie, że względem światła statycznego jest to żenująca jakość.

___________________________________________________________
PortaleKażdy kto empirycznie zetknął się z problemem portali ten z pewnością na sam dźwięk tego słowa klnie, wali głową o stół, wciska palca w klawiaturę, z gniewem krzyczy na monitor. Owszem, portale to najtragiczniejsza rzecz z jaką zetkniecie się przy budowaniu swojego świata, jednak jak się okazuje trzeba tylko przestrzegać kilku prostych zasad a wszystko będzie dobrze. Nie będę opisywał samego procesu tworzenia bo na to jest już odpowiedni tutorial jednak powiem czego trzeba się wystrzegać by naszych portali szlak jasny nie trafił.
Przede wszystkim kiedy już zrobimy swoje ścianki to radzę stworzyć i nałożyć odpowiednią teksturę już w spacerze, a nie programie graficznym. W gothic 2 nazywamy je odpowiednio p:_nazwa (a nie pi:) dla wchodzący i p:nazwa_ dla wychodzących z pomieszczenia. Należy stworzyć własny oddzielny materialfilter wyłącznie dla portali i zadbać o takie ustawienia jak kolor (np 44 44 44 255 - WAŻNE by na końcu było 255) i funkcja alphy ustawiona na none. Tak przygotowany materialfilter zapisujemy. I teraz pewna przykrość gdyż nie można edytować świata z portalami z poziomu zena bo wtedy zmieniają się ustawienia tekstur portali i dodawany jest do nich blend jako func. alphy. Trzeba zawsze taki świat edytować poprzez wczytanie mesha i bacznie zwracać uwagę, by nie zapisać materialfiltera ze zmianami w miejscu funkcji alphy.
___________________________________________________________
Mega istotne dopowiedzenie Caesum! KZW approved XD1. Po dodaniu voba
sprawdzaj czy jest on w odpowiednim miejscu. Nie wnikam nawet ile razy trafiłem na wiszące w powietrzu obiekty, ponieważ ktoś nie przyjrzał się vobowi z każdej strony.
2.
Uważaj na vobtree. O ile vobtree może być świetnym sposobem na szybkie wstawienie kilku vobów na raz(ja akurat używam go głównie do wstawiania świec i ognisk), to może być również wielkim wrzodem na dupie. Dlatego też zanim dodasz voba, na wszelki wypadek kliknij w jakieś puste miejsce w okienku z widokiem na świat aby odznaczyć poprzedniego. Tym sposobem będziesz miał pewność, że przesuwając jeden vob nie przesuniesz przy okazji całej masy innych.
3. Pamiętaj, by ujednolicić nazwy w visual jak tylko się da. Tak więc jeżeli masz np. obiekty
NW_NATURE_SIDEPLANT_01.3DS_VORN oraz
NW_NATURE_SIDEPLANT_01.3DS, to wiedz, że jest to jeden i ten sam obiekt, a więc spokojnie możesz usunąć końcówkę
_VORN. Infact, wszystko, co jest po .3ds, .asc, .pfx i tak dalej jest olewane przez Gothica. Zapewne zapytacie, że skoro jest olewane, to po co to zmieniać? Zobaczycie za chwilę.
4. Jeżeli przypadkiem dodaliście dużą ilość vobów z błędem(kuchenka jako zcvob zamiast ocmobinter, nie włączone kolizje itd.)
nie usuwajcie ich. One wszystkie są takie same, a więc najlepiej je
przekonwertować za pomocą opcji
Local VobEdit Propertypage. Może napiszę o tym tutorial.
5.
StaticVob to twój przyjaciel. Odpowiada on za wypalanie cieni obiektów w pomieszczeniach.
6. Store/Restore vobstates to twój wróg. Nie wiem jak w G1, ale w G2 jest on najczęstszym powodem przesuniętych vobów.
To tyle. W dużej mierze są to banały ale kto to przeczytał ten ma większą szansę, że świat mu się nie posypie i nie będzie musiał poprawiać.
Pozdrawiam i dziękuję, wasz KZW we współpracy z Caesum.