Owoce konkursu na grę by Kaz 2008-11-15 21:17:42

Dzieje się wiele dobrego w związku z konkursem. Najbardziej podoba mi się to, że osoby, którym wcześniej do głowy by nie przyszło parać się tak antycznym językiem jak Atari Basic czy Turbo Basic XL, postanowiły spróbować swoich sił w konkursie. Ale przecież to nie język gra główna rolę, tylko algorytmy gry. Każdy, kto logicznie myśli, ma pomysł i odrobinę czasu, może zaskoczyć nas czymś fajnym. Tym osobom jednak trzeba pomóc w przełamaniu ograniczeń, które narzuca programowanie na 8-bitowej maszynce, trzeba wskazać tricki, które są charakterystyczne dla sprzętu Atari i nie mają nic wspólnego z algorytmem gry.

Właśnie w wyniku bariery przyzwyczajeń najnowsza gra Krzysztofa "xxl" Dudka o nazwie Loops of Zen nie powstała w Turbo Basicu XL. Nie mogąc szybko przypomnieć sobie i opanować "metody" programowania w TBXL Krzysiek zdecydował się zrobić swój konkursowy pomysł w assemblerze, przez co przestał on być konkursowy. Za to wzbogaciliśmy się o jeszcze jedną ciekawą, tym razem logiczną, grę z świetną konwersją muzyczną autorstwa Michała "Mikera" Szpilowskiego. Pliczek w katalogu pod literą L.



Drugi pozytywny element konkursu to współpraca, której ślady oglądam w mojej skrzynce pocztowej każdego dnia. Wokół mnie cyrkulują liczne podpowiedzi, jak pisać grę, jakimi narzędziami się posługiwać (szczególne podziękowania należą się tu Arkowi "ArSoft" Lubaszce). Są też zapytania, szczególnie o Turbo Basic i o to "jak zacząć". Ponieważ z autopsji wiem, że przełamanie pierwszych niepowodzeń (choćby takiego banału, jak przypomnienie sobie, jak działa definiowanie procedur w TBXL czy która komórka służy do zmiany kolorów tła) jest największa przeszkodą, bo potem to już "samo idzie", prezentowałem nadsyłane porady w komentarzach oraz w bezpośrednich mailach do pytających.

Dzisiejszego wieczoru pojawia się dłuższy tekst od Pawła "Sikora" Sikorskiego, który popełnił zarys FAQ - dodatkowe porady dla początkujących w Atari Basic/Turbo Basic XL:

"Kilka uwag dla osób, które pod wpływem konkursu Kaz-a zaczęły tworzyć programy w Turbo Basic XL. Od razu zaznaczam, że nie jestem ekspertem w tej dziedzinie. Na pewno są osoby, które znają ten język dużo lepiej niż ja, ale to w tym przypadku może być zaletą – może ktoś pomoże napisać cykl artykułów dotyczących Turbo Basica XL? Oto lista przykładowych pytań, które moga paść:

1. Czy jest gdzieś opis języka?

Tak, w sieci jest kilka(naście, dziesiąt) stron z opisem języka. Naprzykład był prowadzony jego kurs w "Tajemnicach Atari" (polecam elektroniczne archiwum tego magazynu), był opisywany w "Bajtku", a pełen opis języka, ale bez przykładów, można znaleźć w książce Wojciecha Zientary „Języki Atari XL/XE cz.1”. (warto zajrzeć też do materiałów bibliotecznych - Kaz)

2. Znam tylko Atari Basic, więc co dalej?

To znakomicie. Wszystkie prawidłowo napisane programy w Atari Basicu działają także w TBXL, jak od tej pory będę skrótowo nazywał Turbo Basic XL. Osoby znające Atari Basic mają znakomitą podstawę do programowania w TBXL, który oferuje to wszystko co ten pierwszy i wiele dodatków. W drugą stronę też to działa, ale z pewnymi ograniczeniami – prawidłowe konstrukcje Atari Basica da się odczytać, ale rozszerzenia standardu już nie.

3. Wywołania, procedury i inne takie

W odróżnieniu od standardowego Basica, TBXL jest językiem opartym o procedury, co ma swoje niezaprzeczalne zalety. Tam, gdzie programista w Atari Basicu musiał się męczyć z pamiętaniem linii w przypadku skoków lub sterowania warunkowego (GOTO, GOSUB) – tu wywołujemy procedurę (EXEC nazwa_procedury). Budowa procedury jest następująca (numeracja linii przykładowa):

100 proc Przykladowa: REM nazwa procedury
101 … :REM treść procedury
150 ENDPROC :REM koniec procedury

Co ciekawe i co widać w powyższym przykładzie, TBXL nie jest czuły na wielkość liter przy pisaniu kodu, co jest ważne dla świeżo upieczonych programistów. Nazewnictwo procedur jest zasadniczo dowolne, przy założeniu, że nazwa składa się z liter i/lub cyfr i nie zawiera słów kluczowych języka (bez znaków narodowych!).

Procedurę wywołujemy przez instrukcję EXEC, kilka przykładów (wywoływanie procedury o nazwie PRZYKLADOWA).

10 EXEC PRZYKLADOWA:REM WYWOŁANIE BEZPOŚREDNIE Z LINII
10 IF A$=”T” THEN EXEC PRZYKLADOWA:REM WYWOŁANIE Z WARUNKU
10 FOR I=0 TO 9
11 IF (IMOD3=0) EXEC PRZYKLADOWA
12 NEXT I: REM WIELOKROTNE WYWOŁANIE Z WARUNKIEM W PĘTLI

O czym należy pamiętać? Przede wszystkim o tym, że pierwsze wywołanie procedury (pamiętamy, nasze EXEC NAZWA_PROCEDURY) musi być przed pierwszą procedurą! Co jeszcze? Każda procedura w momencie zakończenia (ENDPROC) wraca do pierwszej instrukcji (uwaga! Przy niektórych warunkowych wywołaniach do pierwszej linii) po instrukcji wywołania. Każda procedura powinna się kończyć instrukcją ENDPROC (lub kilkoma takimi instrukcjami – możliwe wymuszenie warunkowego zakończenia procedury), jednak to nie jest sprawdzane przez kompilator.

Pamiętamy także, że program w Basicu powinien się kończyć przez END – a taki najbardziej elegancko jest wstawić przed pierwszą procedurę (zakończenie procedury zawsze wyskakuje do instrukcji za jej wywołaniem). Kolejne procedury (a nawet tą samą, na przykład tytułową) można oczywiście wykonywać z kolejnych procedur.

4. Ułatwienia dla programujących

pin 2008-11-15 23:25:41

jeśli ktokolwiek ma problemy z programowaniem w TurboBasic XL - zapraszam na PRIV. Chętnie pomogę, w miarę moich możliwości. GG: 3249345

pin 2008-11-15 23:30:03

aha - jeśli ktokolwiek kompiluje kod TB zawierający bodajże instrukcję DIV - koniecznie niech się zgłosi po poprawiony RUNTIME do mnie. Dodatkowo mam linker umożliwiający połączenie w jeden WYKONYWALNY :) plik programu po kompilacji z bibliotekami. Poprawki bibliotek RUNTIME są autorstwa Jacka Żuka - autora hardware'u KMK/JŻ IDE - czyli interfece'u IDE.

Kaz 2008-11-15 23:42:49

Jezeli to nie jest scisle tajny soft, to podeslij go Pinek takze do mnie - zalacze do katalogu uzytkow i kazdy chetny bedzie mogl go sobie pobrac w dowolnej chwili.

sikor 2008-11-15 23:57:15

@Pin: chyba masz ten sam linker co jest zamieszczony na podesłanym przeze mnie obrazie ;) Jest tam bodajże runtime2 zamiast runtime. Jeżeli masz jeszcze co innego - to dawaj śmiało ;)

pin 2008-11-16 00:08:26

jeśli RUNTIME2 - to jest to samo.

Yosh 2008-11-16 00:38:03

Każdemu kto pragnie ściągi z mapy pamięci Atari polecam:
http://www.atariarchives.org/mmm
z dowcipem i o wszystkim (tzn adresy $0000 do $FFFF :P)

sikor 2008-11-16 09:54:19

@KAZ: zjadłeś * przy B +/- i L+/- - w tekście oryginalnym były. I jeszcze "Kłopociki, kłopociki" powinno być ;)

Adam Mowny 2008-11-16 13:15:10

Mimo że pomysł nie oryginalny, to Loops of Zen i tak jest miodzio. Dzięiki Xxl/Miker

Moze sprobuje 2008-11-16 17:27:49

jak zrobic, zeby ekran byl podzielony na pol, gora byl na przyklad GR.15 a dolem tryb tekstowy?

I drugie pytanie - czy da sie obslugiwac DLI w trubobasicu?

Pytajnik 2008-11-16 18:50:01

Trubobasic to jakiś basic stworzony przez Truba?:)

maly_swd 2008-11-16 19:19:12

Moze sprobuje-> da sie podzielic tu opis: http://atariki.krap.pl/index.php/ANTIC_Display_List

tak w TBXL da sie utworzyc displayliste przez dpoke

ataryjek 2008-11-17 13:14:58

Witam wszystkich,

Czy ktos moze przymierza sie do napisania gry w Action! ?

Yosh 2008-11-17 19:21:52

@ataryjek: tak, dokładnie - ja przymierzam - jestem na etapie wstępnych prób. Masz może jakieś pytanko ? :) na pewno będzie to dla mnie miłą rozgrzewką....

ataryjek 2008-11-17 20:46:35

tez sie przymierzam :) musze sobie wszystko przypomniec, lacznie ze skrotami klawiszowymi w edytorze, ostatnio pisalem w action kilkanascie lat temu, mam nawet cartridge-podrobke - Action i Basic XE w jednym, kupiony na gieldzie na Grzybowskiej w Wwie :) @Yosh - piszesz na emulatorze?

Amun-Ra 2008-11-18 13:43:15

Ja piszę w Action! To moje pierwsze podejście do tego języka.
Mam nadzieję, że zdąże.

Yosh 2008-11-18 17:43:59

@ataryjek: taa, na emulcu. Jest rozdział w helpie od atari800win plus "H: device handler" bardzo umila prace (pewnie piszącym w basic-u też).

Język fajny, ale chęć poprawienia wygenerowanego kodu pozostaje :P

santa's little helper 2008-11-18 20:00:18

Dla piszących/chcących pisać w action!:
http://gury.atari8.info/effectus/main.htm

http://joyfulcoder.net/atari/action/
http://atariwiki.strotmann.de/xwiki/bin/view/Main/

Oglądacz 2008-11-19 09:41:24

Panowie, chęci się liczą, ale zauwarzcie, że jest coraz mniej aktywnych programistów (oraz ich "płodów") na tzw. scenie małego Atari. "Konkurencja" od dawna nie organizuje dwudziestoczterogodzinnych konkursów (ciekawe czy tylko z jednego powodu? :P), dema wychodzą tylko na zlotach i już raczej nie prą do przodu ; cykl "graphofontowy" choć niezły, to wcale nie przyniósł wysypu nowych juzerów tego softu (nie jest to jakoś widoczne).

Złym znakiem jest, że nawet niejaki Grzybson przeżuca się na "programowanie" Grzyb(k)a. :| To gdzie tu przyszłość i nowe zastępy ataromaniaków?! Konop podobno zaczynał od takich samych lejm-intros jak w/w i zobaczcie co osiągnął... Czyżby brak ambicji i "ognia" u pozostałej "nadziei sceny" ?

Moda na kosssmiczne rozszerzenia obecnie jedynie pokazuje zaburzoną raczej równowagę między tworzeniem hardware i soft-.
Zresztą po co komu AKI i sraki, jeśli nie będzie wychodzić nowe wysokogatunkowe "pożywienie" dla naszych ukochanych atarynek?!


OK, Ok, nie piszcie mnie tu, żebym sam cóś zrobił, bo w końcu ktoś musi oglądać te wasze wytwory. Zauwarzam jedynie pewien trend i obawiam się, że za parę lat (ile dajecie - ja ze 3-4 góra) to poza tworzącymi z pasji czy przyzwyczajenia, XXL-em czy TeBe prawie nikt nie będzie robić coś na serio tutaj... Pewnie jednak taka kolej rzeczy i prorokiem był ten, co jeszcze w latach 90. ubiegłego wieku pisał w "Bajtku" że zjednoczy nas... PeCet.
To, że ponad połowa ataroscenowów używa m.in. emulca chyba nie warto podważać... ;)

Nooo, ale chwała tym co coś tworzą na poważnie, bo zawsze to bardziej rozwijające zajęcie niż nawalenie się jak świnia w swoim mieście czy na jakimś zlocie...

No to miłego tworzenia i komentowania...
Howgh!

Immolator 2008-11-19 10:36:25

Po pierwsze primo, twórczość tego typu to w 98% sentyment dorosłych już ludzi. Trudno wymagać od nastolatków aby zaczynali dłubać przy 8-bitowych maszynkach. Naturalne jest, że z biegiem czasu wszystko to przystopuje. Jednak IMHO zawsze będzie istniała jakaś grupa ludzi, którzy nawet w celu zbudowania pewnej niszy, w której będą dominować. Można to nazwać tworzeniem przestrzeni, w której będą najlepsi ;-)
Po drugie primo, scena Atari to nie tylko Polska, chociaż u nas to jak na razie nieźle jedzie do przodu. Na tzw. świecie jest wielu maniaków, którzy tworzą różności dla Atari. Nie koniecznie takie wybuchowe jak Tebe, XXL czy Elektron, ale jednak.
Po trzecie primo, emulce... Bez zastosowania współczesnej "technologii" nie powstało by nic z tego, co powstało ostatnio. Kodowanie na współczesnym sprzęcie daje znacznie lepsze możliwości warsztatowe. Zwróć uwagę, że już w "tamtych" latach, do pisania kodu, tworzenia grafiki i muzyki do gier dla Atari 8-bit używało się sprzętu 16-bitowego. Czy to było "true" podejście? A jednak finalny soft był dla małego Atari i nikt raczej nie płakał, że to jest be tak na prawdę powstało na obcej kulturowo Amidze.
Po czwarte, a zarazem ostatnie primo. Masz rację, tworzenie czegoś jest zawsze wartością samą w sobie. Jak dla mnie, dłubanie przy asemblerze, czy Turbo Basic XL zawsze będzie lepsze niż siedzenie całym popołudniem przy YouTube czy stukaniem we flashowe gierki. A czy to będzie hard Atari, emulator Atari, czy całkiem coś innego, Java i NetBeans czy Groovy, nie ma zasadniczo znaczenia ;-) Ten portal jest jednak atarowski, więc ustawiając odpowiedni kontekst, umówmy się, że tworzenie dla Atari to wyższa forma sztuki.

Aha, jeszcze jedno. Pecet nas nie zjednoczy(ł). To całkiem inna płaszczyzna i wyższa forma abstrakcji. Przypomina mi to stwierdzenie, że wszyscy jesteśmy Polakami. Może to i prawda, tylko czy coś z tego wynika? ;-)

Chwała ludziom, którym udaje się coś stworzyć. Można im tylko pogratulować talentu, umiejętności, samodyscypliny i zapału. Co właśnie uczyniłem.

anonymus 2008-11-19 11:39:21

A ja w tej chwili nie używam ani realnego Atari (bo moje kasety szlag trafił i jakoś się nie ładują) ani emulatora (bo to już nie to). Nie stać mnie chwilowo ani na sd2sio czy inne cuda wianki, jednak ciągle z przyjemnością śledzę co na malucha powstaje. Może sam się za coś wezmę, przypomnę sobie Basica albo zacznę tworzyć w Tufoncie. Ale zapewniam was że nawet będąc biernym śledzicielem jestem cały czas mile zaskakiwany prężnością użytkowników Atarynki.
Szacun.

ataryjek 2008-11-19 22:27:56

co jest w tych atarynkach, ze po tylu latach ludziom chce sie jeszcze cos tworzyc? Chyba to, ze trafily akurat na nasze dziecinstwo, zgaduje, ze srednia wieku jest tu okolo 30.

Ciekawi mnie, czy ktos z Was zastanawia sie, czy wolny czas (ktorego jest niewiele - rodzina, praca itp) poswiecic na tworzenie czegos na atari czy zajac sie czyms na czasie, mi na przyklad chodzi po glowie poznanie Nvidia cuda, symbian czy pocket pc.

xeen 2008-11-20 08:59:50

ataryjek - jeżeli chodzi o mnie, to zdecydowanie atari zamiast zabawy z urządzeniami mobilnymi itp zabawkami. To ostatnie mogę robić w pracy (co wypacza obraz - bo inni tak nie mają), niestety brak czasu w domu jest absolutnym blokerem :((
i trafiłeś w sedno - równo 30:))
ostatnio pokazałem ojcu loops of zen na atari - siedzi do dzisiaj, później odpalił wersję we flash'u i.....po chiwli powiedział, że on woli tę na atari i gra na emulcu:)) Też w nim sie wspomnienia odzywają, żeby kupić kompa dla mnie w 1988 musiał wziąśc ogromny jak na owe czasy kredycior i sentyment mu został:))

z ogromną frajdą ukończyłem ostatnio hobgoblina, także sprawdzam się przynajmniej jako odbiorca:))

nosty 2008-11-20 09:19:35

xeen - ukonczyles Hobgoblina bez poke/kodow? To chyba pierwszy jestes! A wszscy stwierdzili, ze gra jest masaktycznie trudna...
Dla mnie w 10 stopniowej skali trudnosci dalbym jej gora 6.

xeen 2008-11-20 09:26:34

tak, ukonczyłem bez cheatów:)))
grałem, grałem - coraz dalej, coraz dalej i skończyłem:)

mono 2008-11-20 09:40:51

@xeen: Gratulacje!
@ataryjek: Tak - Atari jest po prostu odskocznią od codzienności w pracy. Taka forma rozrywki :) Jedni rozwiązują krzyżówki, inni piszą programy na Atari.

xxl 2008-11-20 09:50:12

bedzie druga czesc loops of zen... z lepsza grafika.

nosty 2008-11-21 09:57:07

Ale tej grze lepsza grafika moze chyba tylko zaszkodzic? Porstota = przejrzystosc.

Kaz 2008-11-22 18:16:21

nosty - napisal, ze grafika bedzie lepsza, a nie ze bedzie skomplikowana i nieprzejrzysta :)

larek 2008-11-23 12:36:27

nie będzie skomplikowana, czyli będzie prostsza, tj. gorsza w sensie, że będzie lepsza... co ja gadam? ;-)

larek 2009-09-04 08:46:14

Minęło 9 miesięcy (!) i już urodziła się druga wersja ;-)

Jednak lepsza grafika zdecydowanie podniosła atrakcyjność gry!