Finał Pyłu

W jednym z pytań w komentarzach pojawiło się pytanie czy Walkiria z ostatniego levelu to statek jakim na koniec odlatują Sope i Karla. Tak. To był właśnie mój pomysł na szybsze zamknięcie fabuły z racji nacisków wydawcy na zamknięcie projektu.

Przypomniało mi się mniej więcej jak miało wyglądać jedno z planowanych zakończeń więc piszę to tutaj bo w komentarzu mogło się stracić a to pewnie ciekawostka.

Sope i Jafo odnajdują okręt starożytnych obcych. Odkrywają jego tajemnicę, wychodzą bo nie mają jak jej zabrać, a tu jatka – siły gangów Areny walczą ze sobą i z nimi. Karla ich ratuje bo ma znajomości lokalne w jednym z gangów. I niby szczęśliwe zakończenie lecz kolejny zwrot akcji -lądują marines Imperium i zgarniają całość. W ostatniej scenie tajemnica okrętu obcych jest ładowana do transportowca Imperium a Sope, Jafo i Karla pakowani są również. Czy jakoś tak:)

Tajemnica okrętu obcych nie miała być podana wprost. Ale miało to być duże jajo w którym unosi się w hibernacji obcy. Imperium nie spotkało nigdy obcej rasy więc to była gratka dla Imperium i nie mogło pozwolić by to wpadło w czyjeś ręce.

Musze jednak podkreślić iż finał mi się gdzieś kojarzy taki lecz możliwe iż w głowach Adama i Michała było inaczej trochę lub bardziej. Ja byłem zbyt zajęty kodowaniem by to ogarnąć. Ostatnie testy puszczałem jak pakowaliśmy sprzęt do kartonów.

A co dalej? W Pyle 2? Kto tam wie 😉

Moja wizja jest aktualnie inna. Fabuła Pyłu z gry, rozbudowana to druga część trylogii. W pierwszej bohaterem prowadzącym jest Jafo – filozof wojny a Sope to tępy twardziel do strzelania. W czasie tłumienia buntów na jednej z planet Imperium coś w nim pęka jak musi zabijać cywilów. Jafo go prowadzi do umysłowej wolności.

W drugiej części – tej o której jest gra – Jafo na koniec ginie.

W trzeciej – jest to gra z punktu widzenia Karli która kończy edukacje Sope – daje mu wolność emocjonalną. Wplątani są w to obcy oraz Imperium.

Tak mniej więcej 😉

W czwartej Sope znika a Karli i jego dzieci odkrywają Moc i tworzą pierwsze świetlne miecze. Powstaje zakon Jedi 😉

Advertisements

W oczekiwaniu…

Zgodnie z zaleceniami komentujących przesiadłem się na Unity 5. Wszystko sprawnie się przeniosło i lada dzień to ruszę dalej bo mnie ciągnie.

Ale tak w oczekiwaniu kolega z Rosji podesłał mi fajny link:

http://www.old-games.ru/game/download/get.php?fileid=8300&modal=1

Naprawdę fajnie chodzi. Wyłączył parę efektów, niektóre trochę źle działają ale wersja na D3D działa sprawnie i szybko 🙂 Nawet na moim Surface Pro 4 da się grać!

 

 

Miło w uszach

Po latach pracy w ciszy nad różnymi etapami konwersji miło chodzić po levelach testując skrypty i słyszeć jak wszystko buczy i śpiewa. Tym razem film z Goleb’a. Nie wszak samą Anastazją wielokrotnie pokazywaną na moich filmach Pył stoi.

System dźwiękowy opracowany przez Tomka na chwilę obecną jest nie do odtworzenia w Unity, nawet jak się zejdzie na nieco niższy poziom dostępu do dźwięku, bliższy sprzętu. Musiałem więc nieco zhakować ten system edytując wiele sampli bo właśnie w specyficznej konstrukcji sampli, wykorzystującej atuty narzędzia Sound Forge leżało sporo sekretów dźwięku wyreżyserowanego przez Tomka. No ale nie wnikając w szczegóły mniej więcej to działa.

Miłego oglądania a ja do przodu 🙂

Pył w historii polskich FPS’ów

Pojawił się dziś zapowiadany artykuł Przemka Piotrka Bednarskiego o historii polskich FPS’ów:

http://forum.cdaction.pl/index.php?app=blog&module=display&section=blog&blogid=3845&showentry=45627

Artykuł bardzo polecam, nie tylko dlatego, że mowa w nim o Pyle czy też o mnie 🙂 ale dlatego, że to ciekawy i fajnie przedstawiony materiał o historii polskich gier typu FPS. Z niego się to dowiedziałem że nie byliśmy pierwsi z Pyłem choć byliśmy pierwsi z pełnym 3D 🙂

Co ja mogę dodać? Podwaliny pod technologię 3D dla Pyłu powstały około 3 roku moich studiów na Politechnice w Gliwicach. Na laborkę z C++ zrobiłem demo na technologii 2,5D czyli tego co było w Doom’ie. Potem dopiero wszedłem w pełne 3D aczkolwiek dopiero prace nad Pyłem zaowocowały w pełni okiełzaniem tego “potwora”. Będąc przy wątku Politechniki dodam iż Pyłem zaliczyłem pracę na koniec dwóch semestrów z grafiki komputerowej a na pracę magisterską stworzyłem system do animacji z wykorzystaniem inwersji kinematycznej. Ale takich zabawek we Pyle już nie było – miałem wtedy plan stworzenia oprogramowania do tworzenia trójwymiarowych filmów, coś dla ludzi, którzy chcą np. stworzyć swój własny odcinek przygód o Jedi a nie chcą sięgać do zaawansowanych rozwiązań. Wydaje mi się że to był całkiem fajny pomysł ale nigdy nie wszedł do fazy realizacji.

W artykule jest mowa o tym iż Mortyr wykorzystywał DirectX 6… myśmy się nad tym zastanawiali. Niestety wydawca doradził nam iż ta technologia – wg. ich researchu, jest bez szans (ha ha ha… ). My byliśmy tak zajęci tworzeniem Pyłu że przyjęliśmy ich głos bez dyskusji aczkolwiek mnie DX6 się nie podobał – nie z powodów technologicznych ale z powodu ograniczonych środków wyrazu. Gdy zaczęły się pojawiać gry na DX6 miałem wrażenie iż wszystkie wyglądają tak samo. Te same efekty graficzne, te same ograniczenia. Czy Pył odniósłby większy sukces na DX6? Nie mam pojęcia. Pewnie byłby bardziej dostępny dla graczy, w to nie wątpię ale chyba nie to stało za brakiem komercyjnego sukcesu tej gry. Została wydana w beznadziejnym momencie i z beznadziejną otoczką polskiego Quake bez multi (nonsensowne porównanie). Beznadziejność momentu wydania wynikała z faktu likwidacji wydawcy. Umowę podpisaliśmy z firmą Nexus, w czasie produkcji wykupił ją Opitmus widząc w niej konkurencje dla Optimus Pascal. Grę wydał więc Optmius – Nexus na gruzach starej firmy i po pierwszym wyjściu na rynek – jeszcze kontrolowanym przez producenta ze starej ekipy Nexus’a, potem losy gry były w nieznanych nam rękach.

Artykuł poruszał też kwestie brutalność. Och – sporo było dyskusji z wydawcą nt. krwii w grze 🙂

Co do palmy pierwszeństwa – byliśmy świadomi istnienia gry Target, produkcja Mortyra w czasie naszego finiszu nam jakoś umknęła chyba – nie pamiętam. Końcówka to był taki bieg do mety że nie wiele widzieliśmy poza wszechobecnym pyłem 🙂

No dobra. Dosyć  historii bo przyszłość się tworzy ale o tym w następnym wpisie.

Nieco uboższy dźwięk

Kolejny przyrost za mną – tym razem implementacja przerywników filmowych i dźwięku.

Jednocześnie jest to praktycznie koniec etapu konwersji danych bo nie ma już za bardzo czego konwertować – wszystko czego brak trzeba od nowa zaimplementować w edytorze Unity. Widać to zresztą na tym filmiku – particle są inne niż w grze, na razie w zasadzie działają na domyślnych ustawieniach Unity. Teraz trzeba z nich zrobić iskry – podobnie z każdym innym emiterem cząstek no i pary. Osobnej implementacji wymagają również inne elementy – krew, strzały, wybuchy.

Nie można też zapomnieć o kolejnych aktualizacjach skryptów zachowania obiektów – niestety jest to dosyć uciążliwy i powolny proces. W Pyle z 1998 napisałem to strasznie niechlujnie i przedzieranie się przez to trwa długo.

No ale w tytule jest o dźwięku. Dźwięk oprogramował, zmiksował i wyreżyserował Tomek, Tomek “Włodar” Włodarek. Tylko w nagrywaniu i miksowaniu odgłosów aktorów pomagał kolega z Optimus-Nexus.

Niestety nie wszystko z systemu audio Pyłu (nazwa: “Wrzask”) da się przenieść do Unity, a przynajmniej bez jakiegoś głębokiego bardzo wnikania w bebechy systemu audio Unity. Po pierwsze stożki dźwięku – Pył, nie wiem czy jakieś inne gry to mają 🙂 – obsługiwał stożki emiterów dźwięku tzn. można było określić zakres kątów pomiędzy uchem a nadawcą w jakich dźwięk był słyszalny i jak był wytłumiany. Takich cudów w Unity nie ma i chyba mało gdzie to się spotyka. Drugi problem to efekty środowiskowe – chodzenie po różnych podłożach, sale o różnej akustyce itp. Na chwilę obecną jest to w zawieszeniu – Tomek oprogramował to ręcznie, nie wiemy czy da się przenieść jego kod obróbki sampli w czasie rzeczywistym do Unity. Jeśli obrabiał całe sample to tak, jeśli tylko to co było w buforze do odtwarzania to raczej nie. Trzeba przeanalizować stary kod po prostu.

Kolejny etap wymagać będzie przejścia na Unity Professional – jest wiele elementów których brakuje w darmowej wersji – choćby animowane tekstury czy renderowanie światła z zasłanianiem. W tej chwili animowane tekstury implementuje prostym trickiem ale jest w nim słabość związana z rozdzielczością (widać na filmiku na iskrzącym fragmencie ściany). Tym samym za chwilę będzie trzeba poza czasem swoim zainwestować kasę. Na razie ruszę bez płacenia bo mam 3 miesiące darmowej licencji z okazji kupienia Oculusa i chyba jest jakiś trial miesięczny dla każdego. Ale na jesień trzeba będzie kupić. Nie chce nic obiecać ale chciałbym to skończyć w tym roku – mam inne plany do realizacji i tą konwersję muszę po prostu zrobić.

Przy okazji odkryłem błąd w Pyle – dziwne że kiedyś nie zwróciliśmy na to uwagi – w sekwencji otwierającej jak Sope skacze do korytarza to nie ma dźwięku zetknięcia się z podłogą. Jest w skrypcie animacji ale nie ma pliku wave. Może zatem jakiś konkurs? 🙂

Drobiazgowa robota

Ostatnio mało aktualizacji ale nie było czego – tzn. się działo i dzieje lecz nic co można było do tej pory pokazać. Pracuję obecnie nad przenoszeniem kodów poszczególnych typów obiektów w grze, systemem komunikatów poprzez który się porozumiewają – co definiuje niejako logikę gry i nad grafem poruszania się dla AI.

Rozgryzienie zachowania poszczególnych obiektów nie jest łatwe – jest to mieszanina właściwych algorytmów zachowań oraz kodu mającego na celu wyłącznie optymalizację pamięci i szybkości. Są też skróty myślowe – wtedy pisałem bardzo nieczytelnie, i często głowię się teraz czy to co widzę to błąd a jeśli tak to jak go powtórzyć by nie zmienić zachowania. Przykładowo kod przełączników wszelakich to oryginalnie 500 linii kodu a teraz 300 pod Unity. A odtwarzając samo zachowanie najpierw trzeba zrozumieć o co mi chodziło 16 lat temu a potem przepisać. Trochę męcząca i drobiazgowa robota.

Dziś uruchomiłem obiekty odpowiedzialne za efekty cząsteczkowe. Znów będzie dłubaniny sporo bo przecież kodu ręcznej generacji i życia każdej cząsteczki nie przeniosę – muszę to zmapować na zbiór parametrów opisujących zachowanie cząsteczek w wbudowanym systemie cząstek Unity. Ręczna robota by uzyskać zbliżone efekty. Na razie jest tak sobie ale to pierwsze przymiarki.

Aktualnie działają już inteligentnie lampy, drzwi, przełączniki, windy i cząsteczki. Pozostało drugie tyle a potem przeciwnicy i sam Sope. Windy rzecz jasna działają kolizyjnie – tzn. przewożą Sope’a, Chwała Unity za całą robotę jaką robi za mnie w temacie kolizji 🙂

 

Twardy grunt pod nogami

Trochę czasu minęło od ostatniego wpisu ale Sope w tym czasie nabrał kształtów i masy. Kolizje działają całkiem sprawnie, wspinaczki, kucanie itp.

Skoro to mamy to teraz czas na próbę uruchomienia pierwszych elementów gameplayu na tej mapie – na początek drzwi, windy i tym podobne. Potem przeciwnicy. Jak się to poskłada to pozostanie tylko dopracowywanie szczegółów i optymalizacja. Tak sobie myślę iż gdybym miał miesiąc wolnego to jest to w miesiąc do zrobienia.

Wybaczcie żółtaczkowy kolor filmiku ale taki mi się ambient ustawił 🙂

Oczywiście możliwości fizyczne Sope’a odnośnie przemieszczania się i skakania są w prezentacji nieco przesadzone, w grze taki szybki nie będzie i skoczność też nie ta 🙂 Nie ma to jak klasyczny gameplay budowany w oparciu o to iż gracz nie może przejść przez półmetrowy płotek 😉