Gry w Mad-Pascalu by Adam Wachowski 2017-06-20 22:48:54

Tomasz „Tebe” Biela od 2015 roku rozwija Mad-Pascala, stworzony przez siebie 32-bitowy kompilator Turbo Pascala na małe Atari. Coraz bogatsze możliwości tego języka i niezła szybkość skompilowanego kodu przyciągają kolejnych programistów. Stopniowo powiększa się więc zbiór powstałych gier, z których jak na razie najbardziej ambitną pozycją wydaje się Vox Regis Wojtka „Bocianu” Bociańskiego z ostatniego WAP-niaka.



Przedstawię tutaj kilka gier, o których jeszcze nie pisaliśmy. Większość z nich jest bardzo prosta i ma służyć nauce kodowania w Mad-Pascalu. Zwykle gry te udostępniane są w jednym z kilku powiązanych z tematem wątków na AtariAge, a następnie dołączane do oficjalnej dystrybucji języka (podkatalog /example/games).

Tebe sam przenosi do Mad-Pascala gry z lat 80. napisane oryginalnie w języku Action dla magazynu ANALOG:

- R.O.T.O. z bohaterem przypominającym postać z H.E.R.O. Plik pobieramy stąd.


- Sneak Attack – fajna, dynamiczna strzelanka, w której możemy naraz sterować kierunkiem lotu wszystkich widocznych na ekranie pocisków. Tak jak w Rain of Terror musimy zapobiegać lądowaniu spadochroniarzy. Wersja oryginalna jest w naszej bazie gier:



Tebe przepisuje też niektóre tytuły znane z konkursu na 10-linijkowiec w Basicu:

- Duck Hunt autorstwa magistra inż. Rafała,

- Invaders autorstwa Victora „Vitoco” Parady,

- Jump Xuela,

- NUTS Jeffa Piepmeiera. Tak wyglądała oryginalna wersja:




Pojawiają się też oczywiście gierki, których wcześniej nie widzieliśmy na 8-bitowym Atari:


Pasjans, którego autorem jest Daniel „dmsc” Serpell.

Plik z grą można znaleźć tutaj, a źródła pobieramy stąd.




W wątkach Mad-Pascalowych aktywny jest też m.in. Bostjan „Gury” Gorisek – o jego pierwszych próbach pisaliśmy rok temu. Gury kontynuuje swoją naukę kodowania i nadal przenosi co jakiś czas na małe Atari kolejne proste gry z klasycznej jugosłowiańskiej książki „Mirko Tipka Na Radirko” (oryginalne programy były napisane w Sinclair BASIC-u na ZX Spectrum).


Skoki spadochronowe. Naciskamy FIRE dwa razy: pierwsze naciśnięcie powoduje wyskoczenie z samolotu, drugie otwarcie czaszy spadochronu. Kiedy czasza jest otwarta, możemy sterować położeniem skoczka (lewo-prawo) – musimy trafić dokładnie w centralne miejsce wysepki oznaczonej trzema iksami, inaczej tracimy życie.

Po każdej serii 5 skoków samolot obniża swoją wysokość.



Autor oryginału: Bostjan Jerko
Adaptacja na Atari: Bostjan „Gury” Gorisek

Ciekawostka językowa: w oryginale na ZX Spectrum gra nazywała się... Padalec, co po słoweńsku oznacza skoczka spadochronowego (od „padalo” = spadochron).

Plik z grą pobieramy stąd, a źródła z tego miejsca.



Gra bardzo podobna do niedawno publikowanej Kaverns of Kfest, tyle że od niej słabsza. Niezbyt zrozumiałe jest dla mnie, czemu nasz pojazd wygląda dokładnie tak samo jak przeszkody (nawet jeśli zamysł był taki, że na torze wszystkie pojazdy wyglądają podobnie, to można było nasz jakoś wyróżnić).


Autor oryginału: Branislav Milosavljević
Adaptacja na Atari: Gury

Plik z grą pobieramy stąd, a źródła znajdziecie tutaj.



Gra opublikowana kilka dni temu. Pomysł prosty, ale w miarę ciekawy: naszym celem jest zestrzelenie wszystkich gwiazdek u góry ekranu w jak najmniejszej liczbie tur. Nie strzelamy jednak bezpośrednio, tylko poprzez uruchomienie prawego i lewego statku u dołu ekranu (aktywacja: dżojstik prawo / dżojstik lewo). Strzał następuje w momencie spotkania się tych dwóch obiektów. Trzeba więc mieć dobry timing, aby nie marnować pocisków.


Oryginalny tytuł: Zvezdostrel (Gwiazdostrzał?)
Autor oryginału: Stanislav Ogrinc
Adaptacja na Atari: Gury

Plik z grą pobieramy stąd, a źródła można pobrać stąd.
tebe 2017-06-21 06:24:48

;) nie taki Turbo Pascal straszny jak go malują

bocianu 2017-06-21 09:15:30

To prawda. Nawet powiem więcej: doskonałe narzędzie do testowania pomysłów i jak widać - nawet do ich realizacji. Jak wszystko dobrze pójdzie to niebawem będzie więcej produkcji ;) Pracuję równolegle nad dwoma pomysłami, obydwa właśnie w MadPascalu.

Rastan 2017-06-21 10:24:16

A jakie jest porównanie do Action! ? W 2015 roku na Głuchołazach tebe wspominał, że kod jest ok. 3 razy wolniejszy niż kod wygenerowany przez Action. Czy coś się w tym temacie zmieniło?

tebe 2017-06-21 13:26:56

to już zamierzchła przeszłość, obecnie kod wynikowy jest optymalizowany domyślnie, prędkość dla tych samych typów podobna

trzeba pamiętać że ACTION to max typy 16bit, Pascal 32bit

w ACTION typ CARD, INT to 16bit, odpowiednikiem ich dla Pascala to WORD, SMALLINT

gorgh 2017-06-21 18:35:57

ładnie, Atari ma C, Pascala, oby znaleźli się użytkownicy

mgr_inz_rafal 2017-06-21 18:56:44

tebe miszcz!

pgru 2017-06-21 20:57:35

Dawno temu pisałem bardzo proste gry w Pascalu, ale nie na Atari, w sumie ciekawe czy po jakiś przeróbkach by się skompilowały...
Jak ktoś zastanawia się jaki kompilator na Atari stworzyć to ja proszę o taki który zamienia kod programu na Androida na wynikowy dla Atari :-), nawet( ;-) ) gdyby trzeba było ręcznie zmniejszać obrazki... Swoją drogą jakby dodać też Scratcha(kompilator w stylu kompilatora Scratcha na Androida) to mogłoby nam wyrosnąć nowe pokolenie programistów Atari :-)

Sim_Piko 2017-06-21 21:48:38

Już chciałem obejrzeć o co z tym pascalem biega, ale pierwszy link z artykułu coś się nie wczytuje. (błąd 403, atari8.info też nie działa)

gorgh 2017-06-21 22:36:07

pgru: chętnie też bym skorzystał z takiego kompilatora. Prototyp gry zrobiłem w JS w 1 godzinę, a na Atari męczę się już miesiąc :)))

pirx 2017-06-21 23:02:44

najlepszy byłby filtr taki, że
READY
[]

Adam 2017-06-21 23:18:09

@Sim_Piko: nic nie poradzę, jeszcze wczoraj ta strona działała. Tebe?

kade 2017-06-21 23:23:06

pgru: wystarczy wpisac lambde AndroidStudio("nazwarepo")->Atari(plik.xex).ready[] ;-)

NIE DZIAŁA 2017-06-22 07:19:34

Forbidden

You don't have permission to access /madpascal.html on this server.

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

wieczór 2017-06-22 08:40:40

"Kod programu na Androida" to Java :) Tylko sam kod jeszcze mało daje - bo całość tkwi w API systemu i podpiętych pod to urządzeniach jak np GPU i jego możliwości - i nie ma znaczenia tu "zmniejszanie obrazków" :) Może z VBXE mogłoby się udać - do pewnego stopnia ;)

Gury 2017-06-22 10:34:38

Hi there!
The ZX Spectrum ports from Mirko tipka na radirko are deliberately made such as they are, because I wanted to have the strict ports as close as possible to original games. Maybe in the future some will be enhanced to Atari standards with additional levels and advanced graphics.

tebe 2017-06-22 12:58:23

zrobili restart serwera i atari8 wstało

hellboy 2017-06-22 13:55:39

gratulacje tebe oraz dla ludzi dzielnie tworzących w Pascalu. fajne klasyczne prace i czuć klimat tematu. wieczór: nie żartuj - vbxe, to nie atari. to przypał w atari a nie atari.

wieczór 2017-06-22 14:51:41

@hellboy: to przeczytaj o co chodzi :) O konwersję (nie portowanie) programów z androida :) Trzeba sobie zdawac sprawe ile w przypadku androida lezy w sprzecie - bez minimum szybkiego blittera nie da rady (nie chodzilo mi tu o grafike czy kolory)

Adam 2017-06-22 22:35:13

@Gury: Hi, thanks for your comment.

quote (Gury):

I wanted to have the strict ports as close as possible to original games.


Are you sure they are so strict and faithful? :) Didn't you change the playfield in Wolves by making it wider, which made the game too easy on A8? ;)

Gury 2017-06-23 09:26:38

You got me big time ;) Wolves could be made in limits of 32 characters in line, but it was one of my first ports and I didn't think through more precisely. It could be made in text mode 1 (20x24), but it would be smaller playfield and therefore more difficult to play.

Axi0maT 2017-06-23 10:23:42

Ten MAd Pascal wyglada meeeega przyjemnie i przede wszystkim przyswajalnie. Jak bede mial wiecej czasu to zglebie tajniki i z pewnoscia skrobne cos na Atari :)

hellboy 2017-06-23 14:47:49

rozumiem wieczór. ok. życzę weny twórczej użytkownikom MP tebe

Adam 2017-06-24 11:00:18

@Gury: Regarding "Wolves" - I think keeping the ratio (width to height) could be the simplest solution. After changing the width you could have changed the height proportionally, to keep the balance of gameplay - but that's a just my hypothesis, tests would be needed ;)