atarionline.pl
atarionline.pl Atari
Login:
Hasło:
Zapamiętaj mnie
Translate to RSS RSS
ATASCII Compo - 4. edycja z 2024-10-06 19:12 (3)
Gra "Dangerous City" uwolniona! z 2024-10-03 15:49 (20)
Miniaturowe Atari #2 z 2024-09-30 19:15 (13)
Wkrótce "Bubble Bobble" na Atari z 2024-09-27 10:34 (52)
Pokłosie KWAS #34 - Projektowanie cartów Atari z 2024-09-26 20:28 (9)
Nocne Retro Granie w Poznaniu z 2024-09-24 20:35 (1)
O kodowaniu efektów dema na Atari STE z 2024-09-22 15:58 (27)
Co nowego dla Atari Portfolio? z 2024-09-19 19:43 (0)
Najmniejsze Atari cz. II z 2024-09-17 21:07 (4)
Nadlatuje polski sokół! z 2024-09-12 18:44 (16)
Atarowskie maleństwo po raz piąty! z 2024-09-09 18:58 (2)
Pamiętniczek dinozaurowych koderów z 2024-09-05 14:01 (12)
"Mafia" - od zera do supergangstera z 2024-09-03 23:55 (20)
Wkrótce spotkania z 2024-09-02 20:38 (5)
Ankieta dla zainteresowanych efektami w demie z 2024-08-30 17:54 (22)
Autorzy o demie "The Coders' Guide to the Demoscene" z 2024-08-26 14:29 (35)
Przejście gry "Auf Wiedersehen Monty" z 2024-08-26 14:23 (9)
Autorzy "Technical Difficulties" z 2024-08-25 16:58 (9)
Autorzy o "Auf Wiedersehen Monty" z 2024-08-23 20:56 (13)
Demo "The Coders' Guide to the Demoscene" w szczegółach z 2024-08-22 14:27 (4)
«« nowszestarsze »»

Pomocnik/Helper
Gry/Games

Katalog gier (konwencja TOSEC)

Opisy gier
"Old Towers" (Atari ST) opisał Misza (19)
Submarine Commander opisał Kaz (13)
Frogs opisał Xeen (0)
Choplifter! opisał Urborg (0)
Joust opisał Urborg (16)
Commando opisał Urborg (35)
Mario Bros opisał Urborg (13)
Xenophobe opisał Urborg (36)
Robbo Forever opisał tbxx (16)
Kolony 2106 opisał tbxx (3)
Archon II: Adept opisał Urborg/TDC (9)
Spitfire Ace/Hellcat Ace opisał Farscape (8)
Wyspa opisał Kaz (9)
Archon opisał Urborg/TDC (16)
The Last Starfighter opisał TDC (30)
Dwie Wieże opisał Muffy (19)
Basil The Great Mouse Detective opisał Charlie Cherry (125)
Inny Świat opisał Charlie Cherry (17)
Inspektor opisał Charlie Cherry (19)
Grand Prix Simulator opisał Charlie Cherry (16)
«« nowszestarsze »»

Katalog gier (konwencja Kaz)
Aktualizacja: 2024-10-07
Liczba katalogów: 8477, liczba plików: 37049
Zmian katalogów: 66, zmian plików: 100

0-9 A B C D
E F G H I
J K L M N
O P Q R S
T U V W X
Y Z inne
zipCałość 2933 MB


Wewnętrzne/Internals



   Nowinki tworzone dzięki CuteNews
Pamiętniczek dinozaurowych koderów


Na spotkaniu autorów gry "Technical Difficulties" dla Atari XL/XE, która jest żartobliwym nawiązaniem do gry "Chrome Dino", znanej ze współczesnych pecetów, opowiedzieli oni o swoim dziełku w sposób zabawny, ale i pouczający, szczególnie o chaotyczności i spontaniczności procesu twórczego, który doprowadził do sukcesu czyli prezentacji na tegorocznym zlocie Atarowców - Silly Venture. Zapis tego spotkania jest prawie dwugodzinny, montował Misza:



A przy okazji otrzymaliśmy wesoły tekst z zapisem zmagań Pecusia i Pirxa, przygody koderskie w postaci pamiętniczka. Tomasz "Pecuś" Pecko napisał:

Jak to się zaczęło?

Oczywiście nie chodzi o Wielki Wybuch, a pomysł zrobienia gry na SV2024SE. Otóż od jakiegoś czasu pracujemy z Pirxem nad programem poprawiającym funkcjonalność FujiNet. Przyznam, że nie szło nam to ostatnio i plan, by coś już działało i by można było to pokazać na Silly Venture, stał się nierealny. Problemy z dokumentacją, implementacją i dość dziwnym działaniem niektórych funkcjonalności FujiNeta doprowadzały nas do frustracji i powodowały, że postępów nie było widać.

W czasie luźnej dyskusji we wtorek, nieco ponad tydzień przed imprezą, rzuciłem:
- „Kurde no... jadę na to SV z niczem. Masz jakiś pomysł na coś prostego może?”

Na co Paweł odpowiedział:
- „No mam, gierka z chrome jak nie ma internetu.”

No i to wywołało pierwszą „burzę mózgów”:
- „W basicu, na znakach. Choć w sumie asembler tak samo prosty w tym wypadku.”
- „Czy losowość ma być, czy może jednak jakaś sekwencja powtarzalna?”
- „Dinozaur na sprajcie, a tło płynny scroll.”
- „Eeee... ale to nie byłby hires!”
- „No to trzeba by go na software'owych sprajtach”
- „A wyobraź sobie 8 zestawów znaków. Na każdym wszystko tak samo, tylko dino przesunięty o piksel. Razem ze scrollem płynnym zmieniasz zestaw.”

Jak widać, wszystkie koncepcje pojawiły się od razu i po 10-ciu minutach dyskusji było już mniej więcej wiadomo, jak będzie działała gra. Czyli finalnie 4 zestawy znaków, tryb tekstowy, płynny przesuw w lewo i jednoczesne przełączanie zestawów znaków, tak by dino przesuwał się w prawo w obrębie swoich znaków. Co da efekt przesuwającego się tła i nieruchomego dinozaura. Był jeszcze taki dziwny pomysł:
„A może zrobić to na grafice i użyć gotowych – szybkich – procedur graficznych ze Scorcha”, ale to nie był mądry pomysł.



Wieczór pierwszy

Ale to był wtorek. Pomysły pomysłami, a pierwszy wolny czas miałem dopiero w piątek, 9 sierpnia, po południu. W między czasie Paweł podesłał fonty i kod do swojej próby (chyba trzeciej) napisania tej gierki, zajrzałem do kodu i nic nie zrozumiałem, a może po prostu nie chciało mi się analizować, jak to działa, bo i tak trzeba było pisać od podstaw. Wersja Pawła była na sprajcie i ze światem w niższej rozdzielczości. I tak by nie pasowała do obecnej koncepcji. W piątek powstały więc… nowe fonty, bo na kod nie starczyło sił. Ale coś już było widać.



Wieczór drugi

Tu trochę skłamaliśmy. Wieczór drugi to była niedziela (11 sierpnia), ale w sobotę na chwilę usiadłem i zrobiłem „mapę świata”, czyli zadeklarowałem tablicę z listą obiektów trochę wykraczającą za ekran, tego dnia nie liczymy.



Na początku wieczora powstała główna pętla rozgrywki i jej kształt zadecydował trochę o niezbyt precyzyjnym działaniu kolizji czy skoków. Otóż cała logika gry działa z dokładnością do pojedynczego znaku. Sprawdzane kolizji czy klawiatury jest realizowane co cztery przesunięcia tła (każde o 2 piksele hires). Tak jest po prostu łatwiej to oprogramować, a nie wpływa to aż tak bardzo na przyjemność z grania.

Na główną pętlę gry składa się:
  • przepisanie obiektów z mapy na ekran (dinozaura nie ma na mapie!),
  • narysowanie dinozaura z jednoczesnym sprawdzeniem kolizji i ewentualnym końcem gry,
  • sprawdzenie klawiatury i joysticka i ustawienie odpowiednich flag definiujących stan dino,
  • przesunięcie ekranu o 2 piksele w lewo i zmiana zestawu znaków – czekanie 1 ramkę,
  • przesunięcie ekranu o 2 piksele w lewo i zmiana zestawu znaków – czekanie 1 ramkę,
  • przesunięcie mapy o jeden znak, animacja chmur,
  • przesunięcie ekranu o 2 piksele w lewo i zmiana zestawu znaków – czekanie 1 ramkę,
  • animacja obiektów (nogi dino, pterodaktyle),
  • przesunięcie ekranu o 2 piksele w lewo i zmiana zestawu znaków – czekanie 1 ramkę.
    I to jest cała gra!

    Jak widać przesunięcie mapy i animacja obiektów jest przeplatana z przesuwem ekranu, ale równie dobrze te operacje mogły by być wykonane na początku pętli, a wtedy widać by było wyraźniej, że mamy całą logikę, a następnie cztery przesunięcia o 2piksele (w sumie jeden znak) i tak w nieskończoność.

    Niestety, Dino migał co 4 ramki, synchronizacja jest robiona do przerwania systemowego VBI w precyzyjniej do tyknięcia zegara. Wyglądało na to, że mimo tego, że procedury czyszczenia, rysowania i logiki nie są długie, to jednak nie kończą się przed wyświetlaniem przez ANTIC-a pola gry. Rozwiązanie? Minuta i przesunięcie pola gry o paręnaście linii w dół! (potem okazało się że w NTSC dalej miga).

    Prawie wszystko to udało się zaprogramować w ciągu chyba dwóch godzin – to dość prosty kod i na koniec tego wieczora gra właściwie działała. Nie było jeszcze tylko sprawdzania kolizji i chmur. No i pozom trudności nie rósł – a to było ważne.



    Wieczór trzeci

    Pomysł na poziom trudności był następujący: mapa tworzy się tak, że po przesunięciu jej o 1 znak, na końcu (poza widoczną na ekranie częścią) dodawany jest kod obiektu, domyślnie gleba. Można wtedy policzyć odległość do ostatniej przeszkadzajki i jeśli jest większa od jakiejś wartości (definiującej poziom trudności) zamiast gleby generujemy przeszkadzajkę. Jeśli tę sprawdzaną odległość będziemy zmniejszać w trakcie rozgrywki, to przeszkadzajki będą pojawiały się coraz gęściej. Ja zaproponowałem pomysł, Paweł to zakodował.

    Mi pozostało dopisanie kolizji i wymyślenie jak/kiedy ma zmieniać się poziom trudności oraz jak ma działać mechanizm losowania przeszkadzajek na końcu mapy i w zasadzie gra była już w 100% grywalna. Wtedy Paweł rzucił hasło:
    „A może jak dino biegnie w prawo, to niech potem wraca?”

    Potrzymaj mi piwo! Wystarczy rysować obiekty przepisując je z mapy w drugą stronę i przygotować 4 odwrócone zestawy znaków. Pół godziny i gotowe! No ale skoro wraca, to może śmieszniej byłoby odwrócić linię statusową i mieć widok z wnętrza monitora – proszę bardzo. W ten sposób w trzy wieczory (a mowa była o czterech…) mieliśmy gotową grę.



    Wieczór czwarty

    Wszystko działa, ale... Po przyjrzeniu się oryginałowi doszło do nas, że coś można by dodać - chmury! Żeby nie dotykać istniejącego i działającego kodu (bo jeszcze przestanie działać) postanowiłem, że chmury będą na sprajtach. Kolor szary
    zamaskuje trochę niższą rozdzielczość. Kilka minut i już widać dwie na ekranie. Ale czemu tylko dwie? Wyświetlam przecież cztery! Zmiana priorytetów PM, nie widać nic. Kolejna zmiana, widać dwie, ale inne niż na początku! No cóż, tak to jest jak się nie zna czy nie pamięta specyfiki platformy, na którą się programuje...

    W tym trybie dwa sprajty są pod polem gry. Szybka decyzja zmiany trybu w liniach, w których są chmury i... działa! Tylko czemu są czarne? Mija ponad godzina walki o szary kolor chmur i na koniec okazało się, że wpisuję kolor do rejestru sprzętowego, a PM mają cienie i mamy włączony OS i przerwania. Zapomniałem o tym. Ale jest sukces, brak tylko muzyki.

    Muzyka! A było to w środę, 14 sierpnia, dzień przed deadline! Już tydzień wcześniej zapytałem Mikera czy nie ma jakiejś muzyki w szufladzie… niestety był na wakacjach, więc skontaktowałem się z Alexem i usłyszałem że ma muzykę gotową, tylko musi odpalić Atari, znaleźć dyskietkę i przenieść to na PC… I już o koło godziny 19:00 w środę są pliki! W międzyczasie dodany został napis Game Over oraz ikonka taka jak w oryginale.

    Muzyka przyszła w formacie MPT, biorę player z dyskietki z programem, przeglądam dokumentację, robię wszystko co trzeba w kodzie, dodaję player i… cisza! W debuggerze Altirry widać, że kod playera się wykonuje, ale nic nie gra. Walka trwała kilka godzin, a skończyło się na konwersji za pomocą emulatora na SAP R3, ja padłem spać, a kod playera dodał Paweł, jeszcze trochę perypetii rano i już godzinę przed terminem mamy gotową grę!



    Całość kodu i danych jest dostępna tu na Githubie. Można tam prześledzić nasze zmagania krok po kroku i zobaczyć jak szybkie pisanie nie poprawia jakości kodu. Już po party powstała wersja nie migająca w NTSC i jednocześnie grająca w tym systemie muzykę z poprawną prędkością. Zmieniony został także sposób przyrastania poziomu trudności i wydłużony skok, co powoduje, że gra staje się trochę łatwiejsza.

    Nie napisałem tutaj, niestety, nic o pracy Pawła, bo to on przygotował oba intra i robił to jeszcze krócej niż ja pisałem kod gry. Ale może on doda coś od siebie.


    Suplement od Pawła "Pirxa" Kalinowskiego:

    Dodatek ode mnie. To powyżej to czwarta próba zrobienia śmiej-gierki z dino. Poprzednie były:
  • w Turbo Basicu XL na BASIC 10-Liner Contest, oparte na „silniku” gierki flappy, którą popełniłem z 10 lat temu,
  • w Mad Pascalu w celu przypomnienia MP (zrobiłem tylko jedną prostą gierę „skyscrapers” w Pascalu),
  • w asemblerku na Wapniaka 2018.



    Żadna z tych wersji mi nie wyszła, kodowanie solo mnie nie zadowolo. Interko „Technical Difficulties” to żarcik z problemów na dawnych SillyVenture. Można to było zrobić znacznie lepiej, hakując oryginalną muzyczkę, ale jako że ze mnie haker na ST taki jak i poeta, to pociągłem jakieś nagranie z jutuba, jakość dźwięku była w nim zaskakująco nieżenująca, więc zabrałem się do konwersji na 4 bity no i tu szło ciężko.

    W sumie sprawdziłem około 50 różnych metod konwersji sampli na 4-bit. To co słychać, to najlepsze, co udało mi się uzyskać, ale zupełnie nie maksimum możliwości Atarki. Robiłem to podczas wieczoru drugiego i trzeciego. Prawdziwy hakier zrobiłby tego sampla w kilku KiB, ze znacznie lepsza jakością, używając oryginalnego loopowania od Jochena Hippela. No, ale jak na 10-sekundowy żart to pewnie jakoś(ć) jest wystarczająca.

    Jeszcze malutka informacja dla chcących skorzystać z playera LZSS we własnym kodzie – oryginalny player od DMSC działa tylko raz, nie pozwala na pętlenie muzyki i jej zmianę, w zasadzie nadaje się tylko do dem. Playerek z repo gry został poprawiony i znacznie łatwiej go użyć w niedemie.

    Autorzy, gdy rozpoczynali pracę nad grą (wieczór pierwszy):


    Autorzy po zakończeniu prac nad grą (wieczór czwarty):


    2024-09-05 14:01 by Kaz
    komentarzy: 12
  • Kaz @2024-09-06 22:00:30
    Na koniec artka dodałem ostrzeżenie przed kodowaniem w stylu Pirxa i Pecusia - uważajcie! :) :) :)
    blasph @2024-09-07 02:52:08
    ekstra wywiad :) kiedy turrican :) ??
    sim1 @2024-09-07 09:27:29
    Swietnie napisane, z humorem =). Wyczuwam tez miedzy liniami, ze bylo "troche" @&%$* ;)! No i potwierdzacie Panowie zdjeciami, to co sadze od dawna, ze czas leci niesamowicie szybko =S...
    Pozdrowienia!
    Pecus @2024-09-07 10:50:55
    Ale te dwie fotki to nie są przed pisaniem gry i po jej napisaniu :)
    Aż tak szybko ten czas nie leci.

    Dzieli je coś koło 25 lat chyba? :)
    tebe @2024-09-07 13:13:12
    na Turricana to nawet Pirx i Pecus nic nie poradzą
    ubaTaeCJ @2024-09-07 15:01:38
    1
    ubaTaeCJ @2024-09-07 16:41:54
    1
    Wróż Maciej @2024-09-07 20:59:57
    @tebe: ostatnia nadzieja w shantim
    Turrican @2024-09-07 22:03:34
    Czekam na wejście ... smoka :)
    Czekam.
    Pecus @2024-09-08 13:35:53
    Potrzymajcie nam piwo!

    Jeśli potraficie tak długo trzymać ;)
    Piwo @2024-09-08 15:01:05
    wolę być wlane do gardła niż trzymane ...
    sim1 @2024-09-09 19:52:12
    @Pecus:
    To te zdjecia nie dziela 4ry dni? ;)
    LUP! Achh. Ufff. Kamien spadl mi z serca ;);)

    @Turrican (Hurrican?)
    Powodzenia. Zeby tylko zbroja nie zardzewiala ;)

    @Piwo:
    Spokojnie, spokoooojnieeee. Na kazdego przyjdzie kolej.

    Pozdro!
    nickname
    e-mail / website (opcjonalnie)
    Aktualne tematy
    Troche AMIGOWO.. ale prawie "ATAR... (7)
    ostatni: 07-10-2024 15:49, streak
    [K] Monitor LCD S-Video (1)
    ostatni: 07-10-2024 15:30, amarok
    MultiCLK Module for Atari 8-bit (1)
    ostatni: 07-10-2024 15:06, Kaz
    ADDA pliki (3)
    ostatni: 07-10-2024 14:20, insert
    SID i POKEY (677)
    ostatni: 07-10-2024 14:02, nogorg
    Nowe gry na Atari (236)
    ostatni: 07-10-2024 12:42, zbylu
    Filterek do Blizzarda (89)
    ostatni: 07-10-2024 11:06, Kaz
    Ciekawostki (5578)
    ostatni: 07-10-2024 08:58, tatko74
    Zmiany w bazie gier, dem, użytków (949)
    ostatni: 07-10-2024 02:12, Kaz
    Gry w GTIA (62)
    ostatni: 07-10-2024 00:38, Kaz
    Najmniejsze na świecie Atari 8-bi... (152)
    ostatni: 07-10-2024 00:38, thewasp
    Gry w hiresie (115)
    ostatni: 07-10-2024 00:37, Kaz
    Retro muzeum w Opolu - zamknięcie (3)
    ostatni: 06-10-2024 23:56, Kaz
    Silly Venture 2024WE - 35th ATARI... (36)
    ostatni: 06-10-2024 21:21, greymsb
    Książka Bocianu - Dziennik kuracj... (32)
    ostatni: 06-10-2024 21:03, Rastan

    Kategorie Forum Atarum

    Użytkowników: 2832
    Ostatnio zarejestrowany: andyrey
    Postów ostatniej doby: 38

    Spotkania i zloty / Meetings & Parties

    Najbliższe imprezy
    link do naszych spotkań online, zapraszamy do odwiedzenia kanału zoom również przez kod QR:

    KWAS

    Kalendarz AOL


    Społeczność/Community


    Rozmawiali
    Wywiad z Mariuszem Jaroszem i Kaz (13)
    Wywiad Dracona z Mr. Bacardim i Kaz (15)
    Tomasz Dajczak i Kaz (22)
    Lech Bąk i "Świat Młodych" i Kaz (26)
    Michał "Mike" Jaskuła i Kaz (30)
    F#READY i Dracon (22)
    Daniel „Arctus” Kowalski i Dracon (25)
    KATOD i TDC (15)
    Mariusz Wojcieszek i "Adam" (17)
    Romuald Bacza i Ramos (16)
    Śledzenie Amentesa i Larek (9)
    Leszek Łuciów i Charlie Cherry (17)
    TO JUŻ ZA TOBĄ: rozmowa z Bobem Pape i cpt. Misumaru Tenchi (39)
    Rob Jaeger i Emu (53)
    Jacek "Tabu" Grad i Dracon (0)
    Alexander "Koma" Schön i Kaz (0)
    Maciej Ślifirczyk i Charlie Cherry (0)
    Jarek "Odyniec1" Wyszyński i Kaz (0)
    Marek Bojarski i Kaz (0)
    Olgierd Niemyjski i Ramos (0)
    «« nowszestarsze »»

    Stragan
    Nowe, pojemniejsze RAM-Carty oferuje Kaz (21)
    "mouSTer" czyli myszka ST oferuje Kaz (30)
    Atari USBJoy Adapter oferuje Jakub Husak (0)
    Programy: Kolony 2106 oferuje Kaz (7)
    Sprzęt: rozszerzenia oferuje Lotharek (84)
    Gadżety: naklejki, pocztówki oferuje Sikor (11)
    Sprzęt: cartridge RAM-CART oferuje Zenon (7)
    Miejsce na drobne ogłoszenia kupna/sprzedaży oferuje Kaz (58)
    Sprzęt: interfejs SIO2IDE oferuje Piguła (0)
    Sprzęt: interfejs SIO2SD oferuje Piguła (50)

    Użytki/Utils
    Sprzęt/Hardware

    Wynalazki
    Atari i Bluetooth napisał Kaz (34)
    SIO2PC-USB napisał Larek (45)
    Nowe SIO2SD napisał Larek (0)
    SIO2SD w CA12 napisał Urborg (12)
    Ratowanie ATMEL-ów napisał Yoohaas (12)
    Projektowanie cartów napisał Zenon (12)
    Joystick do Atari napisał Larek (54)
    Tygrys Turbo napisał Kaz (11)
    Testowałem "Simple Stereo" napisał Zaxon (5)
    Rozszerzenie 1MB napisał Asal (20)
    Joystick trzyprzyciskowy napisał Sikor (18)
    Moje MyIDE oraz SIO2PC na USB napisał Zaxon (16)
    Jak wykonać płytkę drukowaną? napisał Zaxon (26)
    Rozszerzenie 576kB napisał Asal (36)
    Soczyste kolory napisał scalak (29)
    XEGS Box napisał Zaxon (13)
    Atari w różnych rolach napisał Różyk (9)
    SIO2IDE w pudełku napisał Kaz (5)
    Atari steruje tokarką napisał Kaz (15)
    DarkMouse napisał Kaz (7)
    «« nowszestarsze »»