Tomasz "TDC" Cieślewicz:
Ostatnio na AtariOnline.pl omawiana była moja pierwsza ukończona
gra „Warsaw City”, która nigdy nie była przeznaczona do wydania.
Dziś będzie mowa o programie edukacyjnym, który został ukończony i
miał zostać wydany.
Pomysł
„Matematyka” nie miała być typowym programem tamtego okresu do
nauki. Nie chciałem robić kolejnego programu w trybie tekstowym,
który samym swoim wyglądem będzie odstraszał każde dziecko, którego
rodzic będzie przymuszał do nauki. Sam przecież uczyłem się wówczas
w szkole podstawowej, więc wiedziałem, że dzieciaki przeważnie nie
lubią matematyki, a dostępne programy edukacyjne wciąż zadawały
pytania "ile to jest", nie miały za to żadnych motywatorów, żadnej
zachęty do ich uruchamiania. Starałem się więc uatrakcyjnić
„Matematykę”, aby była innym programem, aby dzieciaki już na
początku nie patrzyły na nią jako na kolejny edukacyjny horror.
Chciałem dać jakąś frajdę, jakiś cel typowy dla gry komputerowej, w
której istotą jest osiągnięcie największego wyniku punktowego. Do
tego tryb graficzny, kolory, fantazyjne fonty, animacje. Dzieci
miały zasiadać do programu edukacyjnego jak do gry
komputerowej.
.png)
.png)
Duży wpływ na powstanie tego programu miał Tomasz Mazur, który
zawsze tryskał pomysłami i z którym wiele czasu spędzaliśmy na
projektowaniu, dyskutowaniu. Pamiętam, że wspólnie ustaliliśmy
wiele zmian w projekcie „Matematyki”. Dziś muszę podkreślić i
docenić jego duży wpływ na ten i inne moje programy. A to wszystko
przez to, że w firmie Atari Studio panowały swobodne warunki pracy.
Duży nacisk kładziony był na kreatywność, pracę grupową oraz
demokratyczne dyskusje. Dziś wspominam to jako fantastycznie
spędzony czas.
Pewien wpływ na kształt programu mieli też inni pracownicy Atari
Studio, którzy wywierali na mnie presję, aby znacznie zmniejszyć
poziom trudności programu. Byli przekonani, że to co chciałem
osiągnąć znacznie przekracza możliwości uczniów pierwszych klas
szkoły podstawowej. Byłem przeciw, ale ostatecznie przystałem na
pewien kompromis i nieznacznie zmieniłem pierwotny projekt poprzez
wprowadzenie nowych, ułatwionych zasad związanych z pierwszym
pytaniem testowym. Z zasad rozgrywki, o których będzie dalej,
wynika, że pierwsze źle udzielone pytanie kończy grę, dałem więc
możliwość dowolnie długiego zastanawiania się nad udzieleniem
pierwszego pytania. Od tej pory owe oczekiwanie nie wiązało się z
żadnymi konsekwencjami dla gracza.
Czas powstania
„Matematyka” na pewno powstała w 1989 roku, gdy byłem w
podstawówce. Było to na tyle wcześnie, że nie był przy jej
tworzeniu wykorzystywany ostatnio opublikowany na AtariOnline.pl
mój program do edycji fontów "Help Me". Jednak, jak zwrócił mi
uwagę Kaz, w czołówce wymienione są programy, które pochodzą z lat
1989-1992... Rozwiązanie tego pozornego paradoksu nie jest trudne.
W Atari Studio mniej więcej wiedzieliśmy, które programy będą w
najbliższej przyszłości wydane (a przynajmniej, nad jakimi trwają
prace i jakie mają szanse na wydanie) i staraliśmy się je
zareklamować. Pamiętam, że Tomasz Mazur przygotował właśnie takie
info z prośbą, aby to się koniecznie znalazło w programie - jemu z
oczywistych względów zależało na promowaniu i informowaniu
użytkowników o programach, jakie będą wydawane. Ostatecznie jednak
„Matematyka” nie została opublikowana i info nie ujrzało światła
dziennego.
W pewnym momencie Tomasz Mazur chciał wydać pakiet programów
edukacyjnych, w którym „Matematyka” miała znaleźć swoje miejsce.
Potem jednak ten pomysł został zarzucony, bo Tomasz chciał skupić
się na tworzeniu normalnych gier. Niemniej jednak mój program
został dokończony czyli doprowadzony do takiego stanu, jaki
widzicie. Dzisiaj można zobaczyć, że była też w planach gra „Bomb
Jane Bad”, o której napiszę w jednym z kolejnych artykułów na
AOL.
Źródła
W kodzie programu nie ma żadnych informacji o roku (miesiącach) w
jakich powstawał. Jest to spowodowane tym, że program w całości
powstawał na kasetach, co nie sprzyjało wpisywaniu „zbędnych”
informacji do programu, wydłużających zapis i odczyt. Zaznaczanie
kiedy i dla kogo powstał dany program stało się u mnie regułą
dopiero rok czy dwa lata później, gdy zostałem szczęśliwym
posiadaczem stacji dysków.
Program powstał bardzo szybko, nie pamiętam w tej chwili ile to
czasu trwało, ale około kilku tygodni. I w całości przy
wykorzystaniu magnetofonu jako pamięci masowej. Oto co znalazłem w
niektórych wersjach źródeł:
WG("C:",$8800,1024,4,128) (...)
WG("C:",$600,$FF,4,128)
WG("C:",$9000,$400,4,128)
WG("C:",Q,$FFFF,4,128)
WG("C:",$7F10,$FFF,4,128)
WG("C:",$82F9,$FF,4,128)
Kod źródłowy tego programu nie jest specjalnie interesujący czy
zaawansowany, posiada liczne niedoskonałości i naleciałości z
Basica, podobnie jak ostatnio opisywane „Warsaw City”. Spowodowane
to było tym, że rozpoczynałem moje pisanie programów od Atari
Basica. Nawet pamiętam, że jednym z tych programów był właśnie
program edukacyjny z matematyki, ale bardzo prosty i w trybie
tekstowym GR.0, którego starałem się uniknąć w „Matematyce”. Był on
punktem wyjścia do tego, aby rozpocząć pracę nad wersją w
„Action!”, która została zupełnie od nowa przemyślana i
zaprojektowana.

.png)

Minęło prawie 20 lat od czasu, gdy pisałem ten program. Gdy
przyszło do obiecanej Kaz-owi publikacji „Matematyki” i zacząłem
przeglądać wszystkie źródłowe wersje, żeby wybrać tą najpełniejszą
i skompilować ją do postaci samouruchamialnej (bez potrzeby
uruchamiania „Action!” czy jakikolwiek dodatków), musiałem nieźle
się umysłowo nagimnastykować, żeby odkryć, o co chodziło
autorowi... :) Wybrałem kilka cytatów z źródła, dla zobrazowania
tego, jak wielkie oczy robiłem, próbując dojść co jest czym
czego:
D1=0 D2=0 G1=0 G2=1 G3=0 G4=0 ZG=0 G7=87 D3=300 D5=0 D6=0
LI=6 D8=0 D9=0 DA=136 F=0 H1=0 H2=0 F3=0 H4=191 I=0 SPA=0
SPA1=0 GOV=0 DOB=0 ZLE=0 GQ=0 GQ1=73 DA1=0 OCZA=0 CZA2=0 M=0 M3=0
P1=0 P2=0 ZERO(Z-150,120)
SCD=12 CZA3=1 POZ=0 POZ1=191 POZ2=0 DD=0 CON=0 PO5=0
G8=0 POKE(53256,0) D4=0 D7=0 POKE(53257,0) POKE(705,0) GR2()
K=255
Większość zmiennych ma podstawianą wartość zero, co wstępnie
tłumaczy jaką rolę spełnia ten kod, ale chyba jest dla wszystkich
oczywiste, że określenie roli każdej z tych zmiennych wymaga kilku
godzin spędzonych nad tym źródłem. A godziny te bardzo się
wydłużyły, gdyż większość kodu wygląda w ten sposób:
PROC ANIM1()ANIM2()[96]PROC ANIM()ANIM2()IF G8=1 THEN[173
$D40B 201 100 208 249]FI ANDU()[96]
PROC ZE(BYTE Q1,Q2)BYTE Q3 FOR Q3=Q2 TO Q2+2 DO TX(Q1,Q3,"
")OD[96]
PROC KOLU()CARD D4 D4==+1 IF D4< D3 THEN [96]FI D4=0 IF D2=0
THEN D1==+1 FI IF D2=1 THEN D1==-1 FI
Ostatecznie wszystko się udało, program jest skompilowany (wersja
plikowa XEX zrobiona przez Mikera, dzięki!) i dostępny w
katalogu gier na AOL. Pozostał jednak mały niedosyt -
„Matematykę” do tej pory uważałem za ukończoną, jednak teraz widzę
po latach, że kilku rzeczy brakuje w tych wersjach, które znalazłem
na dyskietkach. Na przykład nie znalazłem pliku z animacją
znajdującą się pod zegarem – tam, w miejscu ruszających się
szlaczków powinien znajdować się obracający się sześcian 3D z
oświetlanymi ścianami. Być może, że dane te są do odzyskania z
wersji kasetowej. Pomysł dodania ruchomego sześcianu wynikał z
mojego niedosytu – nie było zbyt wielu ładnych, niedrucianych
animacji 3D w programach na Atari (zresztą na innych komputerach
wcale nie było z tym lepiej). Zachowały się za to moje szkice tej
animacji:
Zasady gry
Na początku klawiszem SELECT ustawiamy poziom trudności (od 1 do 4,
wszystkich poziomów jest 6) oraz klawiszem OPTION czas na
pojedynczą odpowiedź (5, 10, 15 jednostek czasu). Pierwsze poziomy
trudności to dodawanie, odejmowanie, mnożenie, dzielenie i te
dostępne są z menu, a na wyższych poziomach te same operacje, ale
wybierane losowo oraz coraz większe liczby.
Klawisz OPTION podczas gry przerywa test, ale tylko gdy daliśmy
odpowiedź, a nie podczas trwania pytania. Po odpowiedzi dowolny
klawisz przyspiesza pojawienie się następnego zadania. Klawisze K
oraz C od nowa ustawiają kolory ekranu (jeśli obecne komuś nie
odpowiadają), ale też trzeba je naciskać podczas pytania, bo po
odpowiedzi dowolny klawisz przyspiesza, a nie zmienia kolory.
Gramy aż do odrysowania się węża znajdującego się po prawej stronie
na dole, pod podskakującą liczbą reprezentującą aktualny poziom
trudności. Obok z lewej znajduje się „licha”, która jest czymś na
kształt energii... Grać można do momentu, gdy „licha” nie spadnie
na sam dół, szczególnie trudno jest na początku każdego poziomu
trudności, w którym (chyba) zawsze trzeba odpowiedzieć na dwa
pierwsze pytania poprawnie, bo inaczej gra się kończy. Potem grać
już można bardziej spokojnie, gdyż liczba błędnych i poprawnych
odpowiedzi znosi się i jeszcze będziemy grać. Wyjątkiem jest
pierwsze pytanie na początku danej gry, które bez względu na
uciekający czas można udzielić odpowiedzi w dowolnej chwili i
zawsze jest ona zaliczana - dodałem to na specjalną prośbę ludzi z
Mirage, którzy uważali tą grę za zbyt trudną. Dotarcie „lichy” na
sam szczyt oznacza koniec poziomu. Wtedy ekran się robi biały
(wygląda jakby gra się zawiesiła!), wystarczy nacisnąć dowolny
klawisz i będziemy grać dalej, na kolejnym poziomie.
.png)
.png)
Na ekranie podsumowującym ("ukończyłeś test...") z prawej strony
jest zaprezentowany wąż, który ukazuje poziom trudności na jakim
zakończył się test. Jeśli widoczna jest cała głowa węża oznacza to,
że cały test został zakończony sukcesem (ekranem z gratulacjami), w
przeciwnym wypadku wysokość węża wskazuje zaawansowanie na jakim
test został przerwany.
Miłego edukowania się ;).