Co słychać?

W tak zwanym międzyczasie przepisuje algorytmy sterujące przeciwnikami w grze Pył. Nie jest to proste bo te algorytmy to misz-masz AI/kolizji/zdarzeń/grafiki a postępów nie ma jak pokazywać. Do tego trudno bo kodu jest dużo więc ciężko go fragmentami testować. Muszę więc uważnie analizować stare kody i tworzyć nowe uwzględniając np. że kolizje teraz wykrywa Unity i robi to trochę inaczej. Nie bez wpływu na trudność w konwersji jest też mieszanie wskaźnikami C++ oraz optymalizacja zarządzania pamięcią przez prealokowane tablice, listy, stosy danych czy obiektów C++. To wszystko trochę komplikuje proste przeniesienie AI. A tu są zaszyte takie smaczki jak wykrywanie czy słychać Sope’a czy też go widać – np. jak gracz stoi w cieniu to to też inaczej a to wymaga już testowania ruchomych świateł czy oświetlają czy nie akurat postać. Bo przecież linia wzroku stojącego NPC się przemieszcza w zależności gdzie akurat patrzy.

No ale by nie tylko słowa były poniżej link do nowej wersji Pyłu 1998 od kolegów z Rosji. Właśnie WERTA mi podesłał akturalizację. W nowej wersji można odpalać z różnymi bibliotekami Glide oraz w wysokich rozdzielczościach:

http://www.4shared.com/rar/sRmuVieHba/Pyl_fullRIP_POL_ENG.html

I grafika z tej wersji od WERTY:

dosboxSVN 2016-08-12 18-09-38-40 dosboxSVN_ngld 2016-08-10 14-31-22-09 dosboxSVN_2 2016-08-10 15-49-24-64 dosboxSVN 2016-08-12 18-12-39-12

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ć!

 

 

Wielki Dzień

Uff. Poważny kamień milowy osiągnięty – wszystkie dane z Pyłu z 1998 zassane do Unity. Wszystkie mapy wczytane do Unity i mniej więcej działają. Teraz czas na przesiadkę na edytor Unity i ręczne poprawienie oraz uzupełnienie tego czego nie dało się zrobić skryptami konwersji. Wymagane jest  jeszcze dopracowanie skryptów gry – brakuje AI oraz obsługi dynamicznych zdarzeń (rakiety, granaty, cząsteczki itp). No i oczywiście obsługi głównego bohatera ale to na koniec. Potem spiąć wszystko w całość i gotowe.

Przesiadam się przy tej okazji na Unity Pro gdyż pewne mechanizmy niezbędne do poprawnego działania gry po konwersji są tylko w wersji Pro.

Dziś fragment jednego z poziomów Platformy. Smacznego 🙂

ps. jeśli kogoś intrygują szare sześciany na mapach to nie ma powodów do obaw – to obiekty pomocnicze używane w starym silniku, w nowym czeka je usunięcie

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.

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 🙂