Ten warsztat to ABC wszystkiego tego, co się składa na zrobienie profesjonalnej, płynnie animowanej strzelanki na Atari. Czyli: - podstawy programowania, - podstawy projektowania gry, - podstawy projektowania gry z wykorzystaniem wsparcia genialnego sprzętu Atari, np. procesora ANTIC oraz układów GTIA i POKEY, w tym podstawy robienia tricków demoscenicznych np. zwiększanie ilości kolorów, duszków, - podstawy optymalizacji kodu, - podstawy optymalizacji kodu na komputerze Atari 8-bit, - podstawy filozofii projektowania i programowania w asemblerze - ale bez asemblera! - podstawy tego, aby kod w Action! wykonywał się maksymalnie szybko - jak w asemblerze! - wykresy wydajności rastra.
Wszystko to przystępnie, na prostych przykładach i z objaśnianiem. Inaczej mówiąc, po tym warsztacie, przy niewielkich modyfikacjach kodu będziecie mogli samodzielnie osiągnąć dowolne czary na Atari i będziecie wiedzieć jak to się robi i dlaczego tak fajnie.
Cel: praktyka, praktyka i praktyka - programowania tego wszystkiego co najciekawsze na Atari
Dodatkowe informacje: - Ci z Was, którzy nigdy nie wyszli poza BASIC, dowiedzą się jak się programuje fantastyczne układy Atari, więc nauczą się podstaw do różnych tricków, w tym np. jak się programuje czarodziejskie tryby graficzne. Będzie to zarys, który naświetli jak się to robi - w praktyce;)
- to nie jest kurs programowania w Action! - to kurs programowania gier na Atari. Action! jest tu jedynie narzędziem. Dlatego zachęcam do samodzielnego zapoznania się z możliwościami tego języka poza czasem trwania naszych spotkań np. za pomocą materiałów z powyższego linku. Ile poznacie tego języka sami to Wasz zysk, ja przedstawię i wyjaśnię tylko to co będzie dla nas niezbędne;)
- tak naprawdę nie będziemy tutaj programować w Action! ale będziemy programować w Action! tak aby wycisnąć z tego języka max jego niezwykłych możliwości, czyli filozofia programowania będzie taka jak programwoanie gry lub dema w asemblerze - ale asemblera nie będziemy wykorzystywać (chcę aby wszysto było jasne i czytelne nawet dla tych, którzy nigdy nie programowali itp.).
- Wszystkie pliki ATR itp., linki do roomu online'owego spotkania będą zamieszczane w tym wątku (oraz na głównej).
- planowane są kolejne spotkania, wykłady online, o których poinformujemy w odpowiednim czasie;) Jeśli chcesz sam przeprowadzić jakieś szkolenie itp. to zapraszam do kontaktu z nami!;)
- Kiedy zaczynamy: jako 2-gie spotkanie online po świętach. być może będzie to piątek, ale musimy jeszcze przetestować technicznie różne rozwiązania, więc damy jeszcze dokładnie znać. update: zaczynamy w piątek 17 IV 2020 o godz. 20:00
- ile będzie trwać: trudno powiedzieć, bo będziemy być może robić rzeczy, które teraz nie są zaplanowane, w końcu to zajęcia z kreatywności, gdzie mamy się cieszyć ze swojej pomysłowości. Będziecie zdobywać wiedzę: jak samemu dodawać coś do naszej strzelanki;) Zakładam, że będą to 2 tygodnie +/- tydzień.
- Formuła: spotkania będą się odbywać codziennie (wiwat kwarantanna!:-P), wieczorami. Będą przeplatane krótkimi spotkaniami ze znakomitościami naszej społeczności;)
- zamysł/forma: chcemy technicznie wszystko dopracować, abyście mogli widzieć jak piszę w edytorze Action! w emulaotrze + dodatkowa aplikacja, to co robię będę komentować na głos i odpowiadać na ew. pytania - chat. Staramy się abyście mieli możliwie najlepszą transmisję tego co jest generowane przez emulator - na razie udało się nam osiągnąć dość dobre rezultaty (ale pracujemy jeszcze nad poprawą o ile taka jest możliwa). W razie jakiś sugestii technicznych, organizacyjnych proszę komentować tutaj lub kontaktować się z Kazem, Kubą D. lub mną - dzięki!;)
- przygotowania: 1. Zarezerwujcie sobie czas wieczorami, codzienne - i dużo chęci na fanie spędzony czas przy programowaniu Atari, czyli poznawaniu czym Atari tak naprawdę jest;)
2. Przygotujcie środowisko do uruchomienia konferencji online np. tak jak to robiliśmy w ostatnią środę (Cisco Webex oraz Zoom). My będziemy jeszcze robić testy, więc szczegóły jeszcze podamy
3. Jeśli nie chcesz programować wspólnie z uczestnikami to wystarczy do tego przeglądarka WWW lub nawet smartfon.
4. W przeciwnym wypadku: zainstalujcie sobie emulator Altirra i skonfigurujcie - jeśli chcecie używać innego emulatora, musicie go znać wystarczająco dobrze, aby nie wydłużać czasu, gdy wszyscy będziemy połączeni online. Ja akceptuję jeszcze Atari800Win PLus. Oba te emulatory doskonale działają pod np. Linux pod Wine itp.
Podkreślę raz jeszcze: emulator Altirra jest zdecydowanie rekomendowany do tego szkolenia (choć Atari800Win PLus - posiada jedną przewagę nad Altirrą, ale poza tym Altirra działa intuicyjnie, fajnie itp.)
Dodatkowo warto jest używać starszą wersję Altirry np. wersję około 2,40.
6. Jeśli chcecie używać real Atari to polecam język Action! w wersji przygotowanej przez Jac! Znajdować się on będzie w pliku ATR jaki udostępnię. Wersja ta jest super, działa wyśmienicie!;)
Jednak ostrzegam, że lepiej jest się uczyć na emulatorze, na real Atari mamy utrudnione zadanie, bo nie można wykonywać wielu operacji np. nie można używać opcji kopiuj/wklej - której być może będziemy używać i to może nawet często (do takich operacji lepszy jest emulator Altirra)
7. Przygotujcie swoją wyobraźnię!;) Część z Waszych pomysłów pewnie uda się nam do gry wprowadzić z dokładnym moim wyjaśnieniem co, jak i dlaczego tak zostało zrobione;)
Nie wiesz dlaczego Atari to najlepszy komputer na świecie? To zasiadaj przed klawiaturę i sam się przekonaj!
Update: Dodałem plik Srodowisko_dla_kursantow.zip, gdzie mamy wszystkie niezbędne pliki;)
Update: Zebrane tematy ze wstępnymi informacjami dotyczącymi tego warsztatu i samego języka:
Tło gry (i inne grafiki) - zadanie dla ambitnych;)
Jeśli jakiś miłośnik malowania chciałby narysować nam tło rozgrywki to tutaj są szczegóły techniczne - z góry bardzo dziękujemy!;)
* tryb 12 (system) lub 4 (ANTIC) * rozdzielczość ekranu 160x200 (wysokość obrazu nie jest tak istotna) * ilość kolorów - max 4 (708, 709, 710 i 712) - bez koloru 5 (będzie on używany w grze) - wszystkie kolory będą przyciemnione, gdyż to jest jedynie tło gry * używamy jedynie max ~100 znaków, ponieważ reszta to fonty score, lives itp. - fonty znaków od 0 do 9 itp. też można narysować, ale nie trzeba. - jeśli decydujemy się na brak napisu "SCORE", "LIVES" itp. to mamy do dyspozycji więcej znaków niż 100 na grafikę tła. Dlaczego? Bo znaki cyfr to 10, do tego pojazd reprezentujący ilość żyć to np. 2 znaki itp. więc wtedy można zrobić podział np. 112 znaków na tło gwiazd + cyfry, życia itp. (co razem wtedy wyniesie blisko max ilości dostępnych znaków czyli 128) * propozycje: a) rozdzielczość: wysokość tła może być większa, można więc narysować więcej linii grafiki lub mniej (i się powieli) b) mogą to być same gwiazdy lub coś innego, lub gwiazdy i planety itp. c) jeśli to będą gwiazdy i planety to przypominam, że po narysowaniu co najmniej 2-3 planet - można ponownie użyć tych samych znaków aby narysować nowe planety (nowe kształty, nowe rozmiary) - reusing znaków d) można do tego użyć programu G2F - doskonale się do tego nadaje (ma on też możliwość importu grafiki z pliku jpg, gif itp.
Inne obiekty gry np. te animowane również może ktoś z Was narysować - uczestniczcie w warsztacie a zobaczycie co i jak robimy, a będziecie wiedzieć co i jak możecie narysować;)
Z góry dzięki!;)
Update: Temat nieaktualny - grafikę przygotował nam Kaz;)
Nie ma co wątpić, w grze jaką zaprezentował kiedyś na Wapniaku Kuba Husak przerwania DLI są zrobione w Action! a nie w asemblerze;) Action! to język zaprojektowany specjalnie dla Atari więc takie rzeczy, które są tylko na Atari - w Action! robi się bardzo fajnie;) Z resztą omówimy sobie to w szczegółach, w tym porównując z innymi dostępnymi językami programowania.
Na 3. roku studiów miałem przedmiot Systemy Pracy Grupowej, na egzaminie z tego przedmiotu pierwszym pytaniem było: co to jest system... Gdy poszedłem do wykładowcy dowiedzieć się co dostałem, ten mi powiedział: pan jako jedyny na roku poprawnie odpowiedział na to pytanie... Dobre! Ludzie na pierwszym roku studiów powinni wiedzieć co to jest system, a okazało się że na trzecim, prawie nikt nie wie! :D
I to jest przykład, że najprostszym pytaniem da się człowieka - nawet bardzo inteligentnego - zabić :D
Fajnie! To bardzo dobry pomysł, aby włączyć w to swoje dzieciaki, dowiedzą się więcej z programowania niż w szkole;) Choć niestety nie będę miał czasu aby dzieciom wszystko tłumaczyć, chcę abyśmy w stosunkowo krótkim czasie faktycznie zrobili pełnoprawną grę;)
Ale jest też dobra informacja: to nie będą wykłady, ale warsztat, czyli każdy chętny będzie mógł usiąść przed klawiaturą i robić dokładnie to samo co będę (powoli) robił oraz zadawać pytania - więc to o wiele więcej niż wykład! Na koniec każdy z uczestników będzie miał swoją grę!
Spokojnie - za wytłumaczenie odpowiedzialny będę ja - dwadzieścia lat praktyki w IT mam już za sobą, a wcześniej mnóstwo czasu spędziłem w assemblerze/Pascalu/Delphi. Sam jednak nie wiem jak wystartować na Atari, także i dla mnie będzie to bardzo ważne doświadczenie.
Ja się dołączę z ogromna przyjemnością czynnie, chociaż jestem posiadaczem jak napisał KAZ w nowince białego kruka, to jakoś nigdy za dużo w nim nie grzebałem, z prostych przyczyn szybko przeniosłem się na 16 bit i więcej bitów :), a teraz będę miał możliwość powrotu do korzeni :) Dzięki jeszcze raz. !!!
@tebe - już mam wszystko od kwartału zainstalowane, skonfigurowane, przeglądałem przykłady. Potrzebuję jakiegoś takiego przełomu, żeby mentalnie 'zaskoczyło'. Stary już jestem i takie terminy jak Display list, DLI czy inne już tak łatwo do głowy nie wchodzą ;)
Uważam, że to świetne środowisko z ogromnymi możliwościami.
@TDC tak nawiasem, skoro wciąż potrafisz pisać w Action! na poziomie który opisujesz to jesteś jakimś programistycznym fenomenem.
Ostatnimi laty to wyglądało, że programujesz "raz do roku" kręcąc dżem ;)
Osobiście nie mam wrażenia, że to jest jak z jazdą na rowerze. Bez praktyki się rdzewieje, wiedza się zaciera a nowe sztuczki nie wchodzą do repertuaru.
Dlatego skoro wciąż potrafisz pisać tak jak to opisujesz to tym bardziej jestem ciekaw warsztatów.
Spierałeś się ze mną, że Action! jest szybszy od Mad Pascala, no ew. chyba dopuściłeś do siebie myśl, że Mad Pascal dogonił a ja (co prawda bez wielkiej wiedzy i znajomości A8) trochę przyglądałem się pracy @tebe i on tam w kompilatorze wykonał kawał pracy dla Action! niedostępnej.
Także te warsztaty będą bardzo interesujące z wielu względów! :]
Nie jestem fenomenem, w Action! to wszystko jest bardzo proste! Atari jest bardzo proste!;) Dlatego warsztat jest dla wszystkich, nawet dla osób które nigdy nie programowały.
...choć przyznam że jest to wiedza, która nie jest powszechna.
Nie sądziłem, że uda mi się Tomka namówić w końcu na przeprowadzenie zajęć z języka Action!. Strasznie długo się upierał. Tomku mógłbyś udostępnić też nagrania wideo, które zrobiłeś specjalnie dla mnie. Tak przy okazji się zapytam czy spotkania jakie zaplanowaliście będą nagrane? Dobrze by było gdyby ten materiał nie przepadł i można go było zarchiwizować dla potomnych. Nie wszyscy będą zapewne mogli pojawić się w wyznaczonej godzinie.
Action3.com - Action by Jac! helpme.com - edytor fontów ed17. com - edytor duszków test.act - przykładowy kod źródłowy w Action! co można sobie załadować do edytora i wtedy jesteśmy pewni, że wszystko mamy gotowe do pracy;)
Przed chwilką na KWAS #21 C ustaliliśmy, że warsztat z programowania gier startuje w ten piątek o godz. 20:00. Będzie to spotkanie wstępne, na którym będziemy przygotowywać się do programowania itp. jak zdążymy to od razu zaczynamy robić naszą grę!;)
Dodając informacje, które udało mi się wyciągnąć od TDC-a:
- kurs będzie trwał codziennie, rozpoczynając od najbliższego piątku, przez sobotę, niedzielę, poniedziałek, wtorek i tak dalej, start o godzinie 20:00.
- nagrywanie będzie, ale materiały z nagrania będą dostępne tylko dla uczestników kursu, przynajmniej na razie.
- Tomek prosi uczestników kursu o dobrowolne datki (nawet niewielkie) na Fundację, którą prowadzi Maro (TDC - dobrze piszę?). Z tego co zrozumiałem, chodzi o wsparcie podobnych inicjatyw retrokomputerowych.
W czasie wczorajszego spotkania starałem się policzyć, kto z uczestników jest chętny do wzięcia udziału, wyszło jakieś 9 osób. Do tego ponoć są jeszcze 3-4, które akurat nie były obecne na KWAS-ie.
Zgadza się. Trochę materiałów o Action już jest. Fajnie, że ostatnio jest tyle dyskusji o tym, w czym programować. Mad Pascal, CC65, asm, Action! - każdy może wybrać coś dla siebie.
Nie trzeba się rejestrować. Wystarczy kliknąć w link naszego spotkania i albo uczestniczyć przez przeglądarkę WWW albo zainstalować aplikację. Taki link jest teraz widoczny w nowince na głównej - wczoraj również klikaliśmy w link i się udało ponad 30 osobom;)
Ponad 30, a nawet ponad 40 osobom. Jednocześnie było maks 37, ale jedni odchodzili wcześniej, inni przychodzili poźniej. System Zoom zdał egzamin dla takiej liczby osob.
Czy nie da się Action! pisać w jakimś zewnętrznym ide ? a potem kompilawać wewnątrz artilli ? Albo czy jest jakiś kompilator poza artillą ? Bo rozumiem ze teraz kod sie pisze wenątrz atari.