Premiera "Amaurote+" by Jakub Husak 2012-04-06 20:39:39

Jakub Husak napisał:

Amaurote to była jedna z gier, które śniły mi się po nocach. Uważałem ją za majstersztyk programistyczno-graficzny. Jednak w wyniku zbytniego spowolnienia, w przypadku dużej ilości owadów goniących Arachnusa, zniechęciłem się do niej zbyt (być może) szybko. Czas minął, rany dzieciństwa się zabliźniły, wspomnienia przyszarzały. Odżyły dopiero w wyniku dyskusji i tezy at0mica, że na Atari nie da się przyspieszyć tej gry!

Ta. No jasne!
Nie da się!
No ale no jak to?
Ja nie zrobię?


Wziąłem w dłonie stare, dobre "dis6502" i zacząłem analizować grę. Od razu rzucił mi się w oczy ogrom kodu, jaki w tej grze jest upchnięty. W trakcie analiz okazało się, że autorom szybciej było kod skopiować, niż napisać go w sposób uniwersalny. Dało to przyczynek do Wielkiego Skracania Kodu.



Kuriozum to procedury czyszczenia ekranu i swapowania (przepisywania) offscreenu na ekran główny. Zajmowały kilka kilobajtów i były to serie lda adr,x, sta adr2,x. I tak 32 razy w pętli, i tak 8 razy, aby przypadkiem nie spowolnił tego, chociaż troszkę, niepotrzebny skok. Te zoptymalizowane, długie kawałki kodu wykonywane były:
Powiem tyle: zastąpienie ich normalnymi pętlami nie spowolniło ani na jotę wizualnie gry, a uzyskałem tym ruchem kilka kB wolnego. W wyniku tych i jeszcze innych skracań udało mi się zmniejszyć kod i dane o około 8 kB, które następnie wypełniłem nowym kodem i nowymi danymi.

Zostało wolne jakieś 300 bajtów. Pamięć na początku (poniżej $1000) jest wykorzystywana na bufory sprajtów (a dokładnie tego, co pod nimi), a na końcu na mapę miasta (4 kB pod $C000). Gra w ogóle przewiduje mnóstwo miejsca na bufory. Około 2 kB na początku pamięci na sprajty, a właściwie ich tło, 4 kB na miasto, 4 kB na offscreen, 6 kb na pamięć ekranu. Pamięć ekranu i offscreen są umiejętnie wykorzystane i efektownie przepisywane (efekt mozaiki). Ten efekt jednak na Atari jest znacznie wolniejszy niż na ZX Spectrum, z którego gra pierwotnie pochodzi. Mimo chęci nie za bardzo udało mi się przyspieszyć tej części, ale udało mi się ją skrócić o jakiś kilobajt. Na moje szczęście nie jest ona dla gry kluczowa.



W wyniku wprowadzenia poniższych poprawek gra przyspieszyła od 50% (gdy sam Arachnus chodzi po ekranie) do ponad dwukrotnie albo i lepiej - w przypadku nawału pszczółek. Teraz, gdy jest ich 5-6 na ekranie, spokojnie można grać, poprzednio gra stawała. Z ciekawostek należy jeszcze wspomnieć, że gra zajmuje całą dostępną pamięć i wyłącza system operacyjny.

Rzeczy, które zostały zmienione (wielkie i małe):



Po tych optymalizacjach niestety sporo wrosły wymagania pamięciowe. Niemniej optymalizacje w kodzie zwolniły trochę miejsca oraz umożliwiły:

Plik "Amautore+" można sobie ściągnąć tutaj. Owocnego debugowania!



Kaz napisał:

Ode mnie tylko kilka słów komentarza: obrazek tytułowy to przetworzona grafika z gry na ZX Spectrum, w klimatach czarno-białych, moim zdaniem bardziej pasujących do gry. Prace nad wersją plus można było śledzić w tym wątku i tym na forum. Jak ktos nie wie, jak grać, tutaj jest mój opis wersji oryginalnej na Atari. Wersja Kuby dla gracza różni się tym, że:

Dodam jeszcze, że czas premiery jest podwójnie nieprzypadkowy. Po pierwsze wszyscy będą mogli pobawić się przyspieszonym Arachnusem w czasie Świąt, a do tego jest to niespodzianka urodzinowa - dzisiaj urodziny Kuby Husaka! Sto lat, sto lat... :)
Xuio 2012-04-06 20:45:24

Sto lat w dobrym zdrowiu!

the fender 2012-04-06 20:59:36

...niech koduje i poprawia nam :)

adv 2012-04-06 21:08:07

100 lat kodowania i 100 muzykowania !

firestorm 2012-04-06 21:09:43

Happy birthday :) I wielkie dzieki za ta gre!

ooz 2012-04-06 21:17:39

Jakub Wszystkiego Naj!!
Efekt w intrze jest nieprawdopodobnie fajnie zrobiony :)
o czymś taki myślałem również w C-Drug (ale nie było na to czasu),
ogólnie po demie TBL "startruck" , efekt zrywania synchronizacji
jest na topie.
Co do obrazka - to niestety Kaz powinien bardziej się postarać - ale to oczywiście moje zdanie.

a co do gry - to może w końcu uda się więcej w to pograć :)

vlk 2012-04-06 21:20:25

Sto lat! Dzięki za gierkę! Przydałoby się jeszcze jakieś unlimited energy ;-)

jhusak 2012-04-06 21:36:51

A myślałem, że byłem pierwszy z tym efektem :)
Dziękuję za życzenia - będę kodował dalej :)

Ramos 2012-04-06 21:42:51

STO LAT !!!! Wielkie dzięki za fajną grą na święta.

Bluki 2012-04-06 21:58:35

STO LAT!
No, no... Te podkolorowania z jednej strony troszeczkę psują/łamią efekt (gra jest monochromatyczna), z drugiej rzeczywiście poprawiają czytelność. No cóż, coś za coś :)

emkay 2012-04-06 21:58:57

Congratualtions for both: Birthday, and the big effort with the game :)

Lhuven 2012-04-06 22:07:02

Dołączam się do życzeń:)

Ależ ta gierka teraz zap..ala - będzie większa motywacja żeby skumać o ssoo w niej chodzi...:-D intro - super

xxl 2012-04-06 22:15:59

teraz to sie gra :-)

larek 2012-04-06 22:29:40

Sto lat! I dzięki za odświeżoną grę.

kade 2012-04-06 22:30:41

Sto lat !

innuendo 2012-04-06 22:34:15

Kubo, wszystkiego naj! Rośnij duży :) Amaurote to jedna z fajniejszych gier.

at0mic 2012-04-06 22:49:16

Sto lat Jakubie! Jak to miło się mylić w niektórych sprawach -tzn. że się nie da! Dobra robota!

jhusak 2012-04-06 22:53:36

to Ty @at0mic byłeś głównym ignitorem (odpalaczem, podżegaczem) - dzięki za podpuchę :)

Yosh 2012-04-06 23:06:06

I kiedy już myślę... ok był Space Harrier... to już koniec.... Już nic nie będzie.... to się pojawia Rick... a teraz To

@jhusak: Czapka z głowy... kurka też mam swoją ulubioną grę i też wiem, że da się ją poprawić.... ale mi wstyd, że jeszcze nie usiadłem do niej :/ Może... na gwiazdkę :) ? :P:P

ooz 2012-04-06 23:15:15

@jakub
pewnie że jesteś pierwszy z tym efektem :)
tak jak napisałem to wygląda doskonale i super pasuje do klimatu
gry - gapiłem się w to godzinę i będę dalej :)
a propos szumu sygnału telewizyjnego na Atari to nawet
powstał fajny "symulator" zakodowany przez JAC'a
http://pouet.net/prod.php?which=56294

gonzo 2012-04-06 23:18:51

nie za bardzo kumam o co kaman w tej gierce, ale chodzi pięknie :)
qba - jak tu są rozwiązane kolizje?

jhusak 2012-04-06 23:30:21

No - rzeczywiście coś w tym jest. Ja też lubię się w to gapić.

jhusak 2012-04-06 23:31:30

odległość mniejsza niż 1...

jhusak 2012-04-06 23:34:55

W tej gierce kaman żeby:
stłuc pełzające, zbić latające, zawołać supabomb, zdrmężyć kingę.
Albo.
Zawołać supabomb, zdrmężyć kingę, zbić latające i stłuc pełzające.
Drugi sposób jest zupełnie inny, bo trudniej trafić gada, tj owada.
I tak wszystkie miasta.
Option i Select twój przyjaciel.

Faust 2012-04-06 23:35:35

@jakub: Najlepszego z okazji urodzin i po chwili grania warto było czekać na "+":).

BTW Widzę, że to RC1... może uda mi się dorzucić "odświeżone" trzy grosze do tego tytułu od siebie.

jhusak 2012-04-06 23:36:56

@ooz, rzeczywiście, mój efekt jest "analogowy", a tamte w demku to zdecydowanie "zakłócenia cyfrowe".

mono 2012-04-06 23:39:07

Kuba! Wielkie dzięki za poprawioną grę! To jedna z moich ulubionych :) Poza tym $100 lat, rośnij duży, piątek i szóstek w szkole.

jhusak 2012-04-06 23:39:22

RC1 jest dlatego, że może jakieś bugi wyjdą... bokiem. Przy tylu poprawkach to jest wielce możliwe. Sam się dziwię, jak można było opanować taaaaki kod. Ale - jak widać - można, byle się nie bać.

at0mic 2012-04-06 23:41:13

to intro jest genialne! bardzo mi się podoba!
Gra jest bardzo dobra, perfekcyjnie wygląda i nareszcie nie zniechęca prędkością!

Jest to jedna z gier dla których warto mieć prawdziwe Atari, a zielony neptun w zupełności wystarcza do oddania niepowtarzalnego jej klimatu!

jhusak 2012-04-06 23:46:42

Jakby co i uprzedzając pytania:
- będzie wersja 128k.
- gdzieś za pół roku - rok.
Graficy - łączcie się. Kaz może nie nastarczyć.
@ooz, machniesz coś b&w 224x128?

Kaz 2012-04-06 23:56:34

Wlasnie, niech ooz machnie. Czuje sie zwolniony z pracy :)

jhusak 2012-04-06 23:58:35

@Kaz - więcej grafików - lepszy efekt :) Ty musisz zrobić co najmniej dwa. Nie zrobisz - nie będzie pierwszego w czołówce :P

jhusak 2012-04-07 00:00:38

Wysłałem też pytanie do Vallejo. I do Matejki. Ale ten nie odpowiedział na emaila.

Kaz 2012-04-07 00:02:01

Mistrzem Atari w grafice b&w jest Ripek, do niego trzeba pisac. Matejko i Vallejo to cieniasy od kolorowych obrazkow :P

jhusak 2012-04-07 00:06:37

Inaczej. Byłbym zaszczycony, gdyby po 2 obrazki wykonali:
- kaz
- ooz
- piesiu
- ripek
- vallejo
- wszyscy chętni, ale tutaj zastrzegam sobie możliwość odrzucenia pracy...
(kolejność alfabetyczna)
Po 2 bo "animacja" składa się często z dwóch podobnych obrazków.

jhusak 2012-04-07 00:08:51

A szkice węglem? Matejko daje radę.
A, i Kobyliński.

ooz 2012-04-07 00:10:23

@kaz, @jhusak - nie w tym rzecz żebym coś na pixlował, po prostu szkoda że Kaz nie ...poprawił (anatomii) tej pani , ale rozumiem chciał
utrzymać klimat i koncepcje oryginału ...
ja z hiresem to raczej mam (ciągle) małe doświadczenie a najbardziej w tej roli to widziałbym raczej Ripka - który potrafi świetnie "cieniować" w wyższej rozdzielczości.

greblus 2012-04-07 00:11:30

Dźwięki intro genialne, myślałem że mi telewizor przy utracie synchronizacji popiskuje ;). Szkoda tylko, że ta gra jest taka trudna... No po prostu nie radzę sobie z muchami no... ;) Ciężko sobie wyobrazić, że tą grę można ukończyć.

jhusak 2012-04-07 00:25:14

Piesiu też daje radę - patrzcie demko-intro by SHADOW/NOICE na A2600 na SV2k12

Kaz 2012-04-07 00:28:28

Greblus - Kuba opisal wyzej zartobliwie dwie strategie, a w moim opisie gry tez masz te porady:
a) albo wolasz o superbombe, zdobywasz ja, rozwalasz krolowa much - i wtedy muchy juz za toba nie biegaja, latwo je rozwalac,
b) albo czaisz sie "po krzakach", tepisz muchy (w razie gdyby cie otoczyly - uzyj RESCUE), i po wytepieniu much wolasz o superbombe i zalatwiasz krolowa.

Trick z muchami polega tak naprawde na opanowaniu lotu bomby. Wyczuj jej lot, a muchy nie beda ci straszne.

jhusak 2012-04-07 00:28:36

Gra nie jest trudna, wymaga strategii i... refleksu przy uciekaniu (teleport)

jhusak 2012-04-07 00:31:06

Luke, luke, _uk_, _.._.
Use the Force! Fill the Bullet!

bartcom 2012-04-07 01:17:09

Sto lat, sto lat Jakub!

cpt. Misumaru Tenchi 2012-04-07 01:22:11

Najlepszego Jakubie, przede wszystkim zdrowia bo ono jest najważniejsze. Teraz to zapiernicza aż miło patrzeć, ale prostsza się przez to bynajmniej nie stała. :)

tdc 2012-04-07 01:35:52

Sto lat !!!
Niech nam Kuba żyje dłużej niż Atari !;)

jhusak 2012-04-07 01:36:53

Dzięki wszystkim za życzenia i miłe słowa. To bardzo buduje, jak praca jest doceniona.

greblus 2012-04-07 08:44:20

@Kaz, @jhusak: dzięki za wskazówki, no i przede wszystkim dzięki za poprawioną wersję. Ta gra ma w sobie to coś, specyficzny klimat i odkąd o niej tu przeczytałem jakiś czas temu, regularnie próbuję pogrywać.

Kaczor 2012-04-07 09:04:19

Wszystkiego najlepszego, sto lat i wesołych świąt z jajami oraz mokrego dyngusu. Majstersztyk jednym słowem, miło się czyta jak ktoś poświęca czas i wkłada dużo wysiłku aby powstawały nowe gry i programy lub zostały poprawione fachowo i profesjonalnie.

Rastan 2012-04-07 10:16:02

Świetna sprawa. Szacunek, że chciało Ci się analizować i optymalizować kod tej gry. Efekt na planszy tytułowej również jest przedniej jakości.

miker 2012-04-07 11:02:57

A, to i ja się dopiszę.
Najlepszego, Kuba! Dobra robota, pograłem tylko chwilkę, ale i tak różnica jest _wyraźnie_ zauważalna. Dużo Zdrówka i Szczęścia, nie tylko w dniu urodzin. :)

tebe 2012-04-07 11:34:37

powiem to, wiem że to będzie dla Was trudne, ale ...

link nie działa z Mozilla Firefox :P

Dracon 2012-04-07 11:37:20

Racja, link nie dziala z Firefoxem, trzeba "recznie" wejsc do katalogu gier - na szczescie udalo sie zgrac...
A poza tym:
BRAWO!!!
JHusak na Prezydenta !!!!
:)

mgr_inz_rafal 2012-04-07 13:07:47

Kurcze, jhusak, Ty to chyba dobrze rozumiesz działanie LDA :)

PS. Wszystkiego naj!

the fender 2012-04-07 13:17:42

@Dracon says: "JHusak na Prezydenta !!!!
:)"

..byle startował jako niezależny.

Adam 2012-04-07 13:53:48

W końcu oprócz podziwiania klimatu gry można będzie w nią normalnie zagrać ;) Dzięki, Kubo - żyj nam długo! :)

pirx 2012-04-07 14:23:59

Hip hip hurra!!!!! Bajeczna bajka!!!! Naj naj naj-lepszego!!! Wreszcie daje się grać!

MaW 2012-04-07 14:25:16

Coś link w nowince nie tegez. Za to ten http://atarionline.pl/v01/index.php?ct=katalog&sub=A&tg=Amaurote%2B#Amaurote+ tegez :D Kuba, dziękujemy Ci za tą niesamowitą spodziewankę na Święta, której niektórzy wyczekiwali jak Gwiazdki na Boże Narodzenie :D STO LAT i tysiąca udanych optymalizacji innych wersji/gier/itp. :-)

jhusak 2012-04-07 15:49:01

Hm, u mnie teges. Kieruje na otwarty folderek. Safari.

jhusak 2012-04-07 15:53:53

FF na OsX też teges. Ale pewnie chodzi o plusik :) Poprawię.

pin 2012-04-07 18:46:34

... pod spartadosx gra po ekranie tytułowym, czyli po naciśnięciu /fire/ wychodzi do dosa. Jest tego jakaś potencjalnie znana przyczyna? :) -

pin 2012-04-07 18:52:12

... hehh, łatwe to to nie jest :) - gram średnio do 60 sekund i następuje anihilacja głównego bohatera. Może jaki TRAJNER, lub większa "odporność" na przeciwników? :)-

xeen 2012-04-07 19:54:40

przyznam, że w starstruck'u nie podobał mi się ten efekt, ale tutaj wyszedł znakomicie - super buduje klimat! nigdy nie grałem dłużej w Amaroute, ale teraz jest okazja :)

Wszystkiego najlepszego i wielkie dzięki za produkcję.

pan_henryk 2012-04-07 20:04:24

Respekt! Amaurote zawsze robił na mnie wrażenie oprawą graficzną i muzyczną, teraz jeszcze jest grywalny:). BTW - czy jest jakaś szansa na wydanie fizycznej kopii?

jhusak 2012-04-07 20:20:52

Chyba prawnie to jest niezbyt jednolite. W końcu ja to tylko ulepszyłem, nie roszczę sobie praw do bycia twórcą tej gry. Generalnie jeśli jest jakiś serwis, który robi cartridże do Atari, to na własne potrzeby każdy może sobie taką kopię wykonać.

JedenTakiAtarowy 2012-04-07 20:53:14

A trainera nie zapodacie?!
Ja też tę grę niestety smutno kończę w minutę, dwie... ;(

axe/ssg 2012-04-07 21:17:22

swietna robota! zdrowie kuby!
musze sobie to wszystko przypomniec, bo kiedys jadlem muchy na sniadanie, a teraz muchy-axe 6:0 :/
normalnie lapie pteronarcophobie :)

pirx 2012-04-07 21:48:02

to są pszczoły :]

Kaz 2012-04-07 22:28:35

Panowie, nie przeginajcie z tym lenistwem :). W gre da sie dluzej pograc, ale trzeba wlozyc chociaz minimum wysilku w poznanie zasad. Po pierwsze: obserwowac wskaznik uszkodzen naszego pojazdu. Po drugie: po nacisnieciu klawisza OPTION dostajemy menu, w ktorym miedzy innymi jest opcja REPAIR - naprawienie uszkodzen naszego pojazdu oraz opcja RESCUE - przeniesienie nas w inne miejsce planety.

axe/ssg 2012-04-07 23:57:47

@pirx, touché!
bezmyslnie cofnalem sie te 15-20 lat wstecz, kiedy kolega mawial "te je*ane muchy" :)
@kaz, skoro dalo sie grac nascie lat temu, to da sie i dzisiaj, tyle ze troche zardzewialismy z wiekiem :)

kilof 2012-04-11 10:25:22

Gra się świetnie. Mam dwie sprawy, które powodują, że nie da się ukończyć gry: 1. Latające owady czasem wylatują poza obszar dystryktu tak, że ich nie widać i nie chcą wracać. 2. Na ekranie wyboru dystryktu w pewnym momencie Arachnus przestał chodzić w dół, przez co nie dało się wybrać dystryktów znajdujących się w dół od miejsca startowego.

jhusak 2012-04-12 02:07:08

Poproszę zrzut a8s jeśli to możliwe.

jhusak 2012-04-13 00:54:58

Aby zlikwidować bug, w monitorze proszę wpisać:
c 22c7 78
Niebawem w archiwum pojawi się wersja RC2 z wyleczonym bugiem.

jhusak 2012-04-13 00:56:00

A jeśli chodzi o latające owady - trudno trzeba poczekać, ale przede wszystkim trzeba odejść w głąb planszy, bo inaczej nie wrócą.

jhusak 2012-04-13 01:03:04

Dzięki kilof! Jesteś pierwszą osobą, która spróbowała czegoś więcej niż ocalić jedno czy dwa miasta! I masz swój wkład w zmniejszenie ilości błędów w A+ :)

jhusak 2012-04-13 09:26:11

Już jest w katalogu.

Rozyk 2012-04-16 10:38:25

Hej.

Jest zrobiona przez kogoś mapa do "starego" Amaurote? Nie mogę odnaleźć...
Jeśli nie ma, może mógłbym spróbować. Wolę jednak zapytać, coby się nie narobić niepotrzebnie :-)

Adam 2012-04-18 21:22:11

W sieci można znaleźć wersję mapy dla ZX Spectrum, ale z tego co widzę niestety mapy poszczególnych dystryktów różnią się od wersji Atari.