Premiera "Matematyki" by TDC 2010-02-08 23:15:50

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.



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.



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.



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ę ;).
tdc 2010-02-08 23:33:23

No i oczywiście podziękowania się należą Mikerowi, który się namęczył i ten i inne moje programy po zgrywał oraz cały czas trzyma rękę na pulsie, współpracuje online - dzięki!

Kaz 2010-02-08 23:41:22

Rzeczywiscie, napakowane graficzką i oczopląsne, moze sie podobac dzieciakom. Dlaczego wynik trzeba podawac trzycyfrowo?

PS. I przydaloby sie kiedys przeszukac kasety, zeby znalezc ta animacyjke na znakach. Jesli wystarczajaco plynna to mozna by to gdzies wykorzystac.

tdc 2010-02-09 00:38:57

Nie trzeba, jeśli wynikiem jest np. 9 to można podać: 9 lub 09 lub 009 jak komu wygodniej ;)

Kaseta się znajdzie - pytanie czy się odczyta ;):)
Ale chyba się nie nadaje do wykorzystania gdzieś poza matematyką. Dziś nie pamiętam też jak bardzo ta animacja jest podobna do widocznych tu szkiców (wtedy się dopiero zastanawiałem jaka animacja byłaby najlepsza).

irwin 2010-02-09 07:15:45

@TDC - wyrazy uznania nie tylko za program - notabene niezły także pod względem grafiki - ale i za te zeskanowane karteluszki które po tylu latach przetrwały.

Krótki 2010-02-09 11:56:32

Co ja widzę, fonty prawie jak w Inside :)

W kwestii datowania: prezentowana wersja pochodzi z 1990 roku lub później - bo przed październikiem 1990 ulica gen. Abrahama nazywała się jeszcze Jóźwiaka.

pavros 2010-02-09 12:27:07

@TDC: Jestem pod wrażeniem, że takie rzeczy robiłeś już w podstawówce.

urborg 2010-02-09 14:26:35

Program bardzo ładny, na ekranie dużo się dzieje, jest kolorowo. Brakuje tylko dobrej muzyki i dźwięków. Dużym ułatwieniem byłyby dźwięki informujące o tym czy odpowiedź była dobra czy zła, oraz dźwięk sygnalizujący, że kolejne zadanie właśnie się pojawiło. Naprawdę byłby to hicior moim zdaniem. Tomku rozważ proszę wydanie wersji deluxe poszerzonej o te elementy, bo to naprawdę świetny program do nauki szybkiego rachowania.

Kaz 2010-02-09 14:31:36

Krotki - o ile zrozumialem TDC, sama czolowka (czyli to info z grami) powstalo osobno i pozniej niz glowny program.

dak 2010-02-10 00:17:29

TDC wciąż mnie zaskakuje :) pozytywnie rzecz jasna. Brawo!

dak 2010-02-10 00:19:57

"...dostępny w katalogu gier" -- link nie działa, poprawcie.

tdc 2010-02-10 03:08:03

Irwin: a dziękuję bardzo;)
No te karteluszki się zachowały i to jest ich naprawdę sporo, o wielu rzeczach już zapomniałem że miałem w planach, ale rysunki mi przypomniały;) Dziś na takie gryzmoły się mówi storyboard;):)
Nie wiem może kiedyś zrobimy artykuł tylko o moich szkicach a nie o programach – jeśli Kaz będzie tym zainteresowany.

Ciekawi mnie też to dlaczego ten mój szkic jest taki koślawy, gdzieś się wtedy spieszyłem czy co ?;):)


Krótki: brawo za spostrzegawczość i pamięć !
Bardzo chciałem aby program miał fajne fonty, a te z Inside mi się podobały.
Najprawdopodobniej wcześniej program miał jedynie czcionkę zastępczą (nie pamiętam jaką), ja chciałem tam coś dobrać, ale moje możliwości fontotwórcze są zbyt małe aby namalować coś równie ładnego. Dlatego w jakiś okolicznościach te fonty zostały dodane, ale już nie pamiętam czy sam je przerysowałem, czy ktoś je wyciął, a może nawet dostałem je np. od Arka a ten dostał jeszcze od kogoś itp.

Wtedy brak muzyka będącego w stałym kontakcie oraz paru grafików, którzy by zaspokoili nasze potrzeby – to było dla nas duże utrapienie. Ja z braku laku musiałem obskakiwać wszystkie programy swoimi bohomazami i była to niepotrzebna strata czasu, bo jestem słabym grafikiem. Pewnie jakiś prawdziwy artysta namalowałby o niebo lepsze grafiki. Ale wtedy mogliśmy sobie o tym jedynie pomarzyć (jacyś graficy zaczęli się w Mirage pojawiać dopiero około 1993 roku).
Co prawda Arek Łukszo miał jakiegoś swojego grafika, który mu malował to co chciał (jeśli dobrze pamiętam to on namalował grafikę do demka Five to five). Jednak ten gość chyba nigdy nas w Mirage nie odwiedził i chyba w ogóle jakoś wtedy wycofał się z rysowania, podobnie jak Arek z programowania na Atari (szkoda!).

Co do daty, to tak jak pisał Kaz, na przestrzeni około 2 lat było kilka takich momentów, w których zbieraliśmy się do wydania tego programu, on cały czas leżał i czekał (i się nie doczekał). W jednym z takich momentów (nie pamiętam daty) dodane zostały informacje o programach itp. A to co tu widzicie to właściwie jest jedynie wstępna wersja treści, miały zostać wprowadzone jakieś zmiany, ale w końcu szybko zarzuciliśmy pomysł wydania matematyki i teksty nie zostały poprawione (i inne). Niestety już nic więcej nie pamiętam odnośnie naszych planów, rozmów oraz argumentów, którymi się kierowaliśmy.


Pavros: eee, nie przesadzajmy! to nic szczególnego, bo jak pisałem, gdy zacząłem przeglądać źródła to szybko przekonałem się że jest to marny kod. Nie miałem na to czasu ale jakbym głębiej rozgryzł to źródło to pewnie znalazłbym w nim jeszcze więcej różnych ciekawostek.
Największą zaletą tego kodu jest to że w ogóle działa ;):):)

Ten kod nie jest zoptymalizowany przez co bardzo powolny, choć jak na te potrzeby to działa wystarczająco szybko.
Dzieje się to między innymi za sprawą małego kodu w asm do pisania tekstów (autorstwa kolegi).


Urborg: Dziękuję bardzo;)

> Brakuje tylko dobrej muzyki i dźwięków.

Wtedy, jak już pisałem wcześniej nawet nie marzyłem, że ten program może mieć muzykę (wtedy nie było jeszcze CMC itp.), z tego co pamiętam to Kuba Husak nie był aktywowany do tego programu, ze względu na to że z naszych kalkulacji wynikało, że to nie będzie opłacalne.

Ja oceniałem to w ten sposób, że skoro robię taki mętlik na ekranie to cisza w głośnikach będzie sprzyjać nauce;)

> Dużym ułatwieniem byłyby dźwięki informujące o tym czy odpowiedź była dobra czy zła (...)

Tak masz rację i oczywiście moje kiepskie możliwości muzyczne były wystarczające do tego aby jakieś dźwięki się w programie pojawiły, ale już nawet nie pamiętam co ostatecznie zadecydowało aby zostawić to tak jak jest.

> Naprawdę byłby to hicior moim zdaniem.

Miło mi to czytać. My w Atari Studio traktowaliśmy to jako swego rodzaju eksperyment i to dość ekscentryczny;) Nie byliśmy pewni czy cokolwiek zarobi.

> Tomku rozważ proszę wydanie wersji deluxe poszerzonej o te elementy,

Ja bardzo chętnie, tym bardziej, że widzę naprawdę długą listę tego co chciałbym w tym programie zmienić. Po pierwsze wiele z rozwiązań obecnie widzę zupełnie inaczej niż wtedy i w pewnych miejscach pewne drobiazgi bym zmienił, w tym również kilka drobnych błędów. W mojej ocenie poprawy wymaga grafika w kilku miejscach itp. Przykładowo w dużym logo Mirage, literka „r” jest niewłaściwie narysowana (w miniaturce jest dobrze), wiedziałem już wtedy o tym, ale nie pamiętam dlaczego tego nie poprawiłem.

Z drugiej strony dobrze siebie znam i pierwszą rzeczą za jaką bym się zabrał w takim wypadku to refaktoryzacja kodu, która by nic nie zmieniła;) ale wiem że ten tak słaby kod od razu zacząłbym poprawiać, optymalizować itp. mimo że optymalizacja nie jest tu potrzebna (taki już jestem ;) no nie usiedzę kiedy widzę takie kujące w oczy rzeczy;)

Jednak mimo chęci na razie nie będę się za to zabierał. Mam już teraz kilka rzeczy do dokończenia, a dodatkowo matematyka nie jest jakimś moim najbardziej ulubionym programem, w końcu już niedługo (mam nadzieję) poznacie inne moje programy i myślę, że się zgodzicie, że większy priorytet ma przygotowanie ostatecznej wersji np. gry 997 niż matematyki;)
Na matematykę kiedyś przyjdzie czas, ale to za parę lat.

> bo to naprawdę świetny program do nauki szybkiego rachowania.

Tak nawet ja z okazji tej publikacji już nieco szybciej liczę :D :D :D


Dak: Dzięki;) Nam to się do tej pory matematyka kojarzyła z ćwiczeniami z analizy i wszystkimi perypetiami, które się rozgrywały w tej dużej sali;):)
Też trzeba to będzie spisać – dla potomnych :D

urborg 2010-02-10 12:28:36

Rozumiem Tomku że masz swoje priorytety, ale o matematyce nie zapomnij, niedługo moje dzieci pójdą do szkoły i taki program to by była świetna pomoc dydaktyczna. Muzyka w tle moim zdaniem uprzyjemniła by rozgrywkę, która i tak już potrafi wciągnąć :). Czekam na ukazanie się kolejnych Twoich perełek programistycznych.

charlie_cherry 2010-02-10 23:58:38

"Bomb Jane Bad" - no wreszcie się czegoś na ten temat dowiem! Jakbyś tdc coś jeszcze o "Zmierzchu" wiedział...

Tdc 2010-02-12 06:26:32

Urborg: postaram się)

> niedługo moje dzieci pójdą do szkoły i taki program to by była świetna pomoc dydaktyczna.

To brzmi jak zlecenie;)
A co do dzieci to przypomina mi się obrazek:
http://atari.fandal.cz/files/binaries/demos/a/atari_z_ojca_na_syna.png
"Atari z ojca na syna" ;)

Kiedyś była rozmowa o jakimś mecenacie o jakimś zbieraniu kasy, ktoś nawet chciał wpłacać pieniądze na konto - ciekawe na czym się to skończyło ?


> Czekam na ukazanie się kolejnych Twoich perełek programistycznych.

może nie perełek, ale powoli szykujemy parę rzeczy;)


charlie_cherry: wpadnij na jakieś party to sobie pogadamy co i jak było z tym czy innym tytułem.

Większość z tych pomysłów czy planów doczekała się mniejszych czy większych implementacji, które w 98% zachowały się do dnia dzisiejszego, co oczywiście mogę pokazać zainteresowanym (ale oczywiście osobom które są zainteresowane oprogramowaniem, a nie awanturnikom z pewnego forum).

"mierzch" mi nic nie mówi. Jeśli to w jakiejś szczątkowej formie do mnie dotarło to może coś pamiętam, może coś zostało na moich dyskietkach, ale po tym tytule to nic w tej chwili nie powiem.

jhusak 2010-02-15 00:45:56

Kurka, ale kod ...