poniedziałek , 5 grudzień 2022

Familiada 2018 [opis i dokumentacja gry]

Gra bazuje na słynnym teleturnieju Familiada, który gości nieprzerwanie na ekranach telewizorów w Polsce od 17 września 1994 roku.

Historia powstania

Familiada 2018 to zaktualizowana wersja pierwowzoru z 1998 roku. Dokładne okoliczności powstania gry nie są znane… Prawdopodobnie podczas mojego kolejnego pobytu na Śląsku zaproponowałem Rocky’emu (prywatnie mojemu wujkowi) wspólną pracę nad Familiadą. Rocky pomógł mi w projekcie planszy tytułowej. Dalszą część programu wykonałem samodzielnie i zapewne trwało to stosunkowo długo, ponieważ oficjalna data zakończenia pierwszej wersji Familiady to 14 listopada 1998 roku, a kodowanie jej zacząłem najpóźniej w okresie wakacyjnym (istnieje przypuszczenie, że początki kodu sięgają lutego). Gra nie była oficjalnie spreadowana ze względu na swoje niedociągnięcia i jak większość programów, które napisałem w latach 1995-2000, trafiła do przysłowiowej szuflady. Ostatecznie przez minione 20 lat Familiadę widziało zaledwie kilka osób.

Ponieważ w tym roku świętuję 25. rocznicę zakupu Commodore 64, postanowiłem niejako dokonać małej podróży w czasie i sięgnąć po jeden z programów, który napisałem dawno temu w BASIC-u. Moim zamierzeniem było wydanie poprawionej wersji gry, by była ona całkowicie grywalna. Dzięki Familiadzie 2018 poczułem ponownie frajdę z tworzenia czegoś na C64, niemalże jak za „dawnych” lat.

Zasady gry

Plansza główna podzielona jest na kilka sekcji. W środku wyświetlane są odpowiedzi, po bokach nazwy rodzin i imiona graczy. Dół planszy to miejsce na aktualne pytanie, wpisywanie odpowiedzi i imion finalistów oraz komunikaty. Program wyświetla imiona graczy, którzy mają wejść do gry poprzez naciśnięcie odpowiedniego klawisza. Na planszy znajduje się również aktualna punktacja, zmarnowane szanse (symbol „X”) oraz numer pytania.

W Familiadzie 2018 wykorzystujemy polskie fonty, dostępne poprzez kombinację klawiszy SHIFT + litera (wyjątek: ź dostępne przez naciśniecie SHIFT+x). Na początku gry należy wpisać dwie nazwy rodzin oraz po pięć imion/ksywek. Po wyświetleniu pytania wejście do gry odbywa się poprzez naciśniecie klawisza „Q” (rodzina 1) lub „P” (rodzina 2). Następnie wpisuje się odpowiedź, pamiętając o uwzględnieniu w niej polskich liter. W przeciwieństwie do telewizyjnej Familiady wejście do gry gwarantuje ciągłe zgadywanie, nawet jeżeli pierwsza odpowiedź nie była najwyżej punktowana. Podanie błędnej odpowiedzi lub takiej, która już została wyświetlona na ekranie, powoduje utratę szansy. Po dwóch straconych szansach rodzina przeciwna może się naradzać. Wraz z utratą trzeciej szansy prawo odpowiedzi uzyskuje druga familia. W przypadku udzielenia prawidłowej odpowiedzi zgarnia ona zdobyte punkty. W przeciwnym wypadku zdobycz punktową inkasuje rodzina, która wcześniej straciła trzy szanse. Do finalnej punktacji za jedno pytanie nie wliczają się punkty za odpowiedź udzieloną w przypadku przejęcia możliwości odpowiadania. Maksymalna liczba punktów za jedno pytanie to 100. Czas oczekiwania na wyświetlenie kolejnego pytania jest zmienny. Najdłużej czeka się na wyświetlenie pytań finałowych u pierwszego finalisty, ponieważ procedura ich losowania jest wykonywana pięciokrotnie, a BASIC ogólnie nie grzeszy prędkością.

Familiada 2018 wydana przez Tropyx - plansza z intra
Familiada 2018 wydana przez Tropyx – plansza z intra

Wejście do finału gwarantuje zdobycie minimum 300 punktów. W praktyce jest to możliwe po udzieleniu wszystkich odpowiedzi na 3 pytania. A te są wyświetlane losowo, podobnie zresztą jak i anegdotka na początku rozgrywki. Pytań łącznie jest 20. W ekstremalnym przypadku, gdyby któraś z rodzin nie weszła do finału po „przerobieniu” 20 pytań, program zacznie podawać pytania, które już wcześniej były wyświetlane. W przypadku, gdy do finału przejdzie dana rodzina po „przerobieniu” minimum 16 pytań, komputer będzie losował w finale pytania z całej puli.

W decydującej fazie rozgrywki podajemy najpierw imiona dwóch graczy, a potem udzielamy odpowiedzi na 5 pytań, gdy drugi gracz siedzi w kąciku. Nie ma limitu czasowego, ale należy uważać, by nasze odpowiedzi były dokładne i pozbawione literówek. Program nie sprawdza, czy wpisany wyraz jest podobny do właściwego (np. „piłka” i „pilka” to dla niego dwa różne ciągi znaków). Gdy gracze w finale zdobędą minimum 200 punktów, dana rodzina wygrywa główną nagrodę + dodatkowe pieniądze za zdobyte punkty z całego przebiegu gry.

Najważniejsze różnice względem pierwowzoru z 1998 roku

1. Dodałem na stałe polskie fonty (w pierwowzorze należało Familiadę wczytać spod Syntezy Polskiej Mowy wbudowanej w Black Boxa 8). Zastosowana w Familiadzie 2018 polska czcionka jest identyczna i pochodzi z programu „Polish Char. Set” nieznanego autora. Dokonałem jedynie przesunięcia w pamięci poszczególnych fontów tak, by były one dostępne po naciśnięciu bardziej przystępnej kombinacji klawiszy.

2. Dodałem na stałe do pamięci króciutką procedurę w Assemblerze, której zadaniem jest wyświetlanie randomowych pasków i kropek w tle na planszy tytułowej (w pierwszej wersji za każdym uruchomieniem procedurka ta była przepisywana do pamięci, co minimalnie wydłużało czas uruchamiania gry).

3. Zmieniłem zdecydowaną większość pytań. Ich autorem jest Rocky, który po 20 latach ponownie wziął udział przy tworzeniu nowej Familiady. 6 pytań i odpowiedzi napisałem osobiście, przy czym 2 pytania są całkowicie nowe, a ich tematyka jest dostosowana do współczesnej rzeczywistości.

4. Dodałem wyświetlanie numeru pytania. Po „przerobieniu” 20 pytań licznik się nie zeruje. W finale numery pytań nie są wyświetlane.

5. Poprawiłem procedurę wprowadzania znaków, dzięki czemu można je swobodnie kasować klawiszem DEL bez obawy o „uszkodzenie” ramki. W pierwszej wersji naciśnięcie tego klawisza zawsze kończyło się udzieleniem zlej odpowiedzi, ponieważ algorytm brał pod uwagę wszystkie wprowadzane za pomocą klawiatury znaki.

6. Dodałem procedurę sprawdzającą, czy wpisana odpowiedź nie została wcześniej podana przez inną osobę lub aktualnego gracza (z wyjątkiem błędnych odpowiedzi, które zawsze traktowane są identycznie, bez wskazywania ich powtórek). W Familiadzie z 1998 roku można było „cheatować” wpisując w nieskończoność tę samą prawidłową odpowiedź.

7. Wykonałem potrzebną kosmetykę kodu, m.in. wprowadziłem dodatkowe czyszczenie bufora klawiatury tam, gdzie wcześniej tego brakowało.

Detale techniczne Familiady 2018

Kod gry sam w sobie to 481 linii w BASIC-u bez dokonywania szczegółowej optymalizacji. W praktyce zatem Familiadę 2018 można by było przedstawić w identycznej postaci za pomocą krótszego listingu, a najlepiej napisać od nowa w Assemblerze. Gra nie zawiera efektów dźwiękowych oraz zabezpieczeń poza blokadą kombinacji klawiszy C= i SHIFT. Podczas testowania gry okazało się, że nie jest możliwe zastosowanie POKE blokujące działanie klawisza RUN/STOP, ponieważ program przerywał w nieoczekiwanym miejscu swoje działanie tak, jak gdyby napotkał w nim komendę STOP. Listing programu nie jest również zabezpieczony, by łatwiej się go przeglądało tym, których ciekawi, jak wygląda 20-letni zakurzony kod w BASIC-u po jego renowacji.

W celu dodania na stałe polskich fontów zastosowałem trick polegający na przesunięciu adresu startowego programu w BASIC-u z $0801 na $1001. Stąd tez po wykonaniu ciepłego startu nie będzie możliwe wylistowanie Familiady 2018, jednakże można próbować ją ponownie uruchomić poprzez SYS 49408.

Gra na każdym etapie tworzenia w 1998 roku i „odświeżania” w 2018 r. powstała na prawdziwym Commodore 64 i stacji 1541 II. Prawdopodobnie pierwowzór był tworzony przy wykorzystaniu Datasette. Wstawki w Assemblerze zakodowano w monitorze języka maszynowego wbudowanego w kartridż Action Replay v7.3. Całość została skranczowana MS Cruncherem v1.5.

Kredyty Familiady 2018

Kod, testowanie, debugowanie, linkowanie, niniejsza dokumentacja: V-12/Tropyx.
Design, idea, pytania i odpowiedzi: Rocky, V-12/Tropyx.

Familiada 2018 powstawała w dniach 30 września – 6 października 2018 r. i została oficjalnie wypuszczona 13 października 2018 r. podczas kolejnej edycji RetroKomp GameDev Competition, stanowiąc przy tym idealny prezent urodzinowy dla Rocky’ego (wszystkiego najlepszego!). Gra zajęła w konkursie ósme miejsce.

Link do pobrania: https://csdb.dk/release/?id=170091

A Tobie drogi użytkowniku Commodore 64 życzę miłej zabawy przy Familiadzie 2018!

Paweł Ruczko (V-12/Tropyx)
Szczecin, 22.10.2018 r.

Artykuł ukazał się 31 października 2018 r. w ósmym numerze magazynu dyskowego Hot Style.