Po raz pierwszy o próbie stworzenia czegoś, co do tej pory wydawało się niemożliwe na zwyczajnej Amidze 500 usłyszałem podczas zeszłorocznej edycji party Xenium, które odbyło się w Katowicach. KK/Altair (Krzysztof Kluczek) pracuje nad własnym klonem Dooma od końca 2018 roku. Jak na razie możemy obserwować kolejne postępy w pracach na jego kanale na YouTube.

Pixelpost: Dlaczego zabrałeś się za stworzenie portu Dooma na oryginalną Amigę 500 (1000), pozbawioną jakichkolwiek akceleratorów? Dziś ta konfiguracja wypada pewnie pod względem wydajności na poziomie Arduino?

Krzysztof Kluczek: Zabrałem się za klon Dooma (bo nie jest to port!) właśnie dlatego, że takiej gry zawsze na tej platformie brakowało. Była Cytadela grywalna po ograniczeniu ekranu do wielkości znaczka pocztowego, Za Żelazną Bramą pozbawione tekstur, czy Death Mask z przesuwającymi się widokami ograniczonymi do 90 stopni, ale nic naprawdę porównywalnego.

Pixelpost: Co trzeba zrobić, żeby Doom zaczął działać na A500? Z jak wielu elementów wizualnych gry trzeba zrezygnować? Nie ma muzyki, dźwięków, niektórych sprite’ów?

Krzysztof Kluczek: Przede wszystkim rozdzielczość mniejsza o połowę – 160×100 pikseli. Muzyka i dźwięki będą musiały być dość oszczędne, ale spokojnie – zmieszczą się. Ilość spritów to już większy problem, dlatego zrezygnowałem z ich obrotów w różnych kierunkach (przeciwnicy zawsze są zwróceni frontem), ale udało się zmieścić 3 różnych wrogów, których przecież będzie można zmieniać w kolejnych mapach – nie wszystko musi być jednocześnie wczytane.

Pixelpost: 1 MB pamięci i 7-megahercowa Motorola 68000 plus wypuszczone na rynek układy graficzne, wyprzedzające Dooma o 7 lat, czy to aby nie za duże wyzwanie?

Krzysztof Kluczek: Nawet nie miałem świadomości, że jest tu aż taka różnica. Tworząc demo Wildcat chciałem spróbować napisania silnika podobnego do Wolfenstein 3D. Skoro okazało się to możliwe, można było spróbować czegoś więcej.

Pixelpost: Czy da się uruchomić Dooma na A500 z dyskietek?

Krzysztof Kluczek: Dooma nie, ale mój klon – owszem. Pierwsze Amigi nie posiadały kontrolera dysku twardego, więc dyskietki to naturalny sposób uruchamiania tam czegokolwiek.

Pixelpost: Jak przekonać czytelników, że to Doom na A500 to nie projekt teoretyczny, ale całkowicie grywalna wersja, działająca na komputerze z 1985 roku?

Krzysztof Kluczek: Mam nadzieję, uda mi się wkrótce zrobić demo z mniejszym levelem, więc pytanie niebawem będzie nieadekwatne.

Pixelpost: Skoro udało się z Doomem, to może teraz Quake?

Krzysztof Kluczek: Quake na tej platformie w grywalnej postaci bym się nie spodziewał. Dodatkowo w porównaniu z Doomem brakuje mi jeszcze wielu rzeczy (przykładowo podłogi jeszcze nie mogą mieć różnych wysokości – tylko sufity), ale priorytetem było stworzenie gry, w którą dało by się zagrać, więc gameplay zajął miejsce w kolejce przed dokończeniem featurów samego silnika.

Pixelpost: Czy pliki WAD do Dooma dla A500 trzeba było zmodyfikować?

Krzysztof Kluczek: W ogóle nie używam żadnych oryginalnych materiałów z Dooma. Sprity i tekstury pochodzą z projektu FreeDoom, zaś mapy tworzę sam. Oryginalne mapy z Dooma były by tak czy inaczej problematyczne, ponieważ mają nieco zbyt wiele detali, jak na tę platformę. Tworząc mapy samemu można dostosować je do możliwości i ograniczeń platformy oraz silnika – chociażby jak wspomniany brak podłóg na różnych wysokościach na tę chwilę.

Pixelpost: Ile trwają prace nad Doomem dla A500 i co było najtrudniejsze podczas optymalizacji szybkości gry?

Krzysztof Kluczek: Prace zacząłem w grudniu 2018 roku, ale w spokojnym tempie, bo tworzenie tego silnika traktuję jako rozrywkę. O ile optymalizacja różnych fragmentów jest tu na porządku dziennym, to najtrudniejszy był, myślę, moment pierwszego testu algorytmu przygotowującego ściany do rysowania, który zakończył się wydajnościowo całkowitą porażką i uczuciem, że projekt może być jednak zbyt ambitny na tę platformę. Mogłem więc albo zarzucić projekt, albo zacząć upraszczać, tablicować wszystko i oszukiwać gdzie się da, co od tego momentu stało się swoistym mottem projektu, ale pozwoliło doprowadzić go do grywalnego stanu.

Pixelpost: To prawda, że oryginalny kod Dooma jest tak dobrze napisany, czy po Carmacku jest jeszcze co poprawiać?

Krzysztof Kluczek: Doom jest grą ponadczasową, ale to nie znaczy od razu, że ma piękny, czy optymalny kod. Od czasu powstania Dooma wiele technik i algorytmów zostało znacznie usprawnionych, stąd np. w moim silniku niektóre rozwiązania zostały wzięte np. z Duke Nukem 3D, albo zostały w inny sposób usprawnione, gdyż okazały sie bardziej wydajne.

Pixelpost: Co w przypadku A500 jest pięta achillesową tej maszyny? Pamięć, przepustowość szyny danych, CPU, układ graficzny?

Krzysztof Kluczek: Każdy amigowy koder zapewne się zgodzi, że bolączką chipsetu są bitplane’y i brak trybu chunky. Niezbyt wielka moc obliczeniowa CPU też nie pomaga, a w przypadku tego typu gry pamięci również przydało by się znacznie więcej. Można więc powiedzieć, że większość ograniczeń daje się we znaki.

Pixelpost: Jak działa Twój klon Dooma na A1200 z Fastem i szybszych Amigach z kartami graficznymi?

Krzysztof Kluczek: To nie jest port Dooma i nigdy nie miał takim być – to osobna gra. Nie miałem okazji sprawdzić na Amidze 1200, ale jeżeli przewidywania emulatora są dokładne (a takimi były dla Amigi 500), to na A1200 można się spodziewać 25 FPS z okazjonalnym zgubieniem klatki na sklepowej konfiguracji bez jakichkolwiek rozszerzeń.

Pixelpost: Przybliżona data premiery?

Krzysztof Kluczek: Data premiery – ciężko stwierdzić na tym etapie, bo traktuję to jako projekt hobbystyczny. Chciałbym coś pokazać, gdy mapa demo będzie gotowa, ale nie czekajcie na w 100% ukończony produkt. Planuję raczej skupić się na dopracowywaniu silnika i narzędzi, robiąc tylko przykładowe mapy i korzystając z gotowej grafiki tak, że jeżeli znajdą się chętni, mogli by łatwo pomóc w projekcie tworząc własne mapy i dodając grafikę czy muzykę. To najszybszy sposób, by wszyscy mogli się cieszyć tym silnikiem, bo sam po prostu nie miałbym czasu na stworzenie kompletnej gry w rozsądnym czasie.