atarionline.pl Warsztaty Action! - robimy action games;) - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • 1: CommentAuthorzbyti
    • CommentTime5 May 2020
     
    N I E A K T Y W N Y
    @mkolodziejski musisz fragment kodu wkleić i zadać mi do niego pytanie, wtedy będę wiedział dokładnie o co pytasz ;)
    • 2:
       
      CommentAuthorKaz
    • CommentTime5 May 2020
     
    Zbyti - mnie, podobnie jak Michałowi, podoba się Twój pomysł. Zgodnie z tym co mówiliśmy przed warsztatami, postaram się coś zaproponować.

    PS.
    Załączam plik G2F z dzisiejszej lekcji.
    • 3: CommentAuthorzbyti
    • CommentTime5 May 2020 zmieniony
     
    N I E A K T Y W N Y
    OK. No to czekam na fonty od @Kaza, zobaczymy jak to będzie wyglądać ;)
    • 4:
       
      CommentAuthortdc
    • CommentTime5 May 2020 zmieniony
     
    ATR z dzisiejszego warsztatu;)

    ...choć większość rzeczy jakie pokazywałem nie zostały zapisane. Ale wklejałem kod na czat więc wszyscy uczestnicy mają to co ich interesowało;)
    • 5: CommentAuthormono
    • CommentTime6 May 2020 zmieniony
     
    Trochę nie daje mi spokoju ten zapis z kodu TDC:
    BYTE WSYNC=$D40A
    WSYNC=1

    bo generuje
    LDA #1
    STA $D40A

    Czy ktoś mógłby pokazać jaki kod wygeneruje ACTION! jeśli tą samą wartość zapiszemy do dwóch komórek po sobie? np.
    BYTE A, COLBAK=$D01A, WSYNC=$D40A
    A=1
    COLBAK=A
    WSYNC=A

    albo
    BYTE COLBAK=$D01A, WSYNC=$D40A
    COLBAK=1
    WSYNC=1
    ?
    • 6: CommentAuthorzbyti
    • CommentTime6 May 2020 zmieniony
     
    N I E A K T Y W N Y
    SET $E=$2000
    SET $491=$2000

    PROC MAIN()
    BYTE A, COLBAK=$D01A, WSYNC=$D40A

    A=1
    COLBAK=A
    WSYNC=A
    RETURN

    ;-------------------------------------------------------------------

    2000: 00 BRK
    2001: 4C 04 20 JMP $2004
    2004: A0 01 LDY #$01
    2006: 8C 00 20 STY $2000
    2009: AD 00 20 LDA $2000
    200C: 8D 1A D0 STA $D01A ;COLBK
    200F: AD 00 20 LDA $2000
    2012: 8D 0A D4 STA $D40A ;WSYNC
    2015: 60 RTS

    SET $E=$2000
    SET $491=$2000

    PROC MAIN()
    BYTE COLBAK=$D01A, WSYNC=$D40A

    COLBAK=1
    WSYNC=1
    RETURN

    ;-------------------------------------------------------------------

    2000: 4C 03 20 JMP $2003
    2003: A0 01 LDY #$01
    2005: 8C 1A D0 STY $D01A ;COLBK
    2008: 8C 0A D4 STY $D40A ;WSYNC
    200B: 60 RTS
    • 7:
       
      CommentAuthorKaz
    • CommentTime6 May 2020 zmieniony
     
    Zbyti - wysłałem Ci maila z propozycjami znaków. To wstępna wersja, takich rzeczy można narobić dużo i różnych, więc fajnie by było przegadać sprawę - w razie czego możemy się wbić na nasz kanał zoomowy.

    PS. Michałowi też wysłałem propozycję graficzną.
    • 8: CommentAuthorzbyti
    • CommentTime6 May 2020
     
    N I E A K T Y W N Y
    @Kaz WoW bajecznie! Super robota tylko, że to już nie będzie ASCII Scramble bo te raz to prawdziwy Hi-Res! :D

    Spróbuje to użyć :]
    • 9:
       
      CommentAuthorKaz
    • CommentTime6 May 2020
     
    Cieszę się, że się podoba - ale wbij na zooma to pogadamy :)
    Będę czekał w ciągu najbliższych kilkunastu minut :)
    • 10: CommentAuthorzbyti
    • CommentTime6 May 2020 zmieniony
     
    N I E A K T Y W N Y
    @Kaz dopiero przeczytałem o ZOOM, posiedzą tam do 12:00 jakby co ;)

    Fonty wyglądają w akcji czadersko, tylko jeszcze jedna głowica rakiety by się przydała i płomień dyszy ;)
    • 11: CommentAuthormono
    • CommentTime6 May 2020 zmieniony
     
    @zbyti: Dzięki! Czyli odwołań do komórki nie zoptymalizuje, ale stałą już tak.

    Edit: Ale to się już nadaje do szybkich przerwań DLI.
    • 12: CommentAuthorzbyti
    • CommentTime6 May 2020 zmieniony
     
    N I E A K T Y W N Y
    Dla eksperymentatorów :]

    Skompilowałem swoje SCRAMBLE do XEX bez użycia RUNTIME i wszystko śmiga. Tak jak pisano, dopóki nie używa się procedur bibliotecznych RUNTIME nie jest do niczego potrzebny.

    Oczywiście po uruchomieniu dograłem w emulatorze do pamięci fonty i zgrałem pamięci emulatora: kod + fonty do XEX.

    Powinno działać.

    EDIT: chociaż jest mały glitch, zgrał się jakiś śmieć na początku pamięci ekranu i wersja która pod Action zapętla, w tym XEX jedzie z pamięcią dalej, ale to detale, ogólnie się da ;)
  1.  
    @zbyti - idziesz jak burza! gratuluję

    muszę poćwiczyć tę sztuczkę z kompilacją Action do XEX, możesz podzielić się jakimiś hintami? Czy używasz Effectusa, czy Action?
    • 14: CommentAuthorzbyti
    • CommentTime6 May 2020 zmieniony
     
    N I E A K T Y W N Y
    Jeżeli ktoś chciałby dołączyć do programowania Scramble in Action! to zapraszam na mój github ->link<-

    ;------------------------------------------------------------

    @mkolodziejski używam Action! 3.7P bo Effetus na ten moment ma sporo błędów, do tego nie ma wszystkich ficzerów jakie używam w Actioni!

    Jeżeli zrezygnujesz z funkcji bibliotecznych (ew. możesz przekopiować z RUNTIME te co potrzebujesz do własnego programu) to po wydaniu polecenia [C] kompilacji w monitorze możesz zapisać .COM za pomocą [W] i to wszystko.

    By nie wczytywać podczas pracy programu zasobów to po odpaleniu swojego programu (na ten moment, może wymyślę coś sprytniejszego) odpalam monitor w emulatorze i pod zamapowane miejsca wczytuję zasoby po czym pamięć emulatora z interesującego mnie zakresu zgrywam do XEX.

    W trakcie DEV wczytuję zasoby tak jak na kurise, jak zacznie mi to przeszkadzać spreparuje save state emulatora z zasobami w odpowiednich miejscach.

    Michał zapraszam do udziału w projekcie Scramble (link do gita podałem), pouczymy się razem na żywej materii :]
    • 15: CommentAuthorMADRAFi
    • CommentTime6 May 2020 zmieniony
     
    Ja mam uwagi do kursu TDC, ktory mial byc dla poczatkujacych.

    1. Kod TDC wczytany pod Action nie kompiluje sie.
    2. Opis plikowy uzywa kodowania znakow polskich ktory jest zle interpretowany pod Windows 10. EDIT: TDC uzywa ANSI Windows encoding 1250
    3. Plik opisu jest chaotyczny, zawiera kod zrodlowy
    4. Kod zrodlowy jest chaotyczny, zawiera nikle komentarze nie tlumaczace zmiennych.
    5. Zmienne sa 2-3 literowe. Nie wiadomo co znacza.
    6. Calosc czyta sie bardzo zle. Nie wiadomo gdzie jest glowna petla programu, gdzie sa procedury, gdzie sie koncza.
    7. Brak stosowania stalych, wszystko jest hardkodowane.
    8. Zero tlumaczenia adresow specyficznych dla Atari. Zadnego kometarza co to za komorki pamieci sa.
    • 16:
       
      CommentAuthorKaz
    • CommentTime6 May 2020
     
    Ale to wszystko było i jest tłumaczone na warsztatach, a nie w pliku! :) To co przeglądasz to materiały do lekcji, a nie samodzielne do studiowania dla początkujących. No i nikt nie obiecywał, że jak zaczniesz od lekcji 13 to będziesz wiedział o co chodzi :D.

    Tomek praktycznie wszystkie punkty tego, o czym piszesz, wyjaśniał, dlaczego tak, a nie inaczej (np. zmienne 2-3 literowe).

    Zbyti - daj znać, kiedy możesz pojawić się na zoomie :D
    • 17: CommentAuthorMADRAFi
    • CommentTime6 May 2020
     
    Kaz ale to ma byc chyba material dla przyszlego uzycia i wykorzystania. Chyba w takim celu tez nagrywasz zooma?
    Wroc za 12 miesiecy do tych materialow i powiedz ze bedzie zrozumialy.
    • 18: CommentAuthorastrofor
    • CommentTime6 May 2020
     
    @MADRAFi: Pełna nazwa tego kursu powinna brzmieć: Metodologia programowania gier w Polsce w latach 80 tych, na przykładzie języka !Action. Wtedy wszystko stałoby się jaśniejsze.
    • 19: CommentAuthorzbyti
    • CommentTime6 May 2020 zmieniony
     
    N I E A K T Y W N Y
    @MADRAFi zwracaliśmy w parę osób na to @tdc uwagę na początku warsztatów ale postanowił działać zgodnie ze swoimi zwyczajami w imię kodowania na Real Atari.

    Trzeba z tym żyć ;)

    Osobiście wolałbym by były uwzględnione Twoje uwagi bo pokrywają się z moimi. Ja sobie jakoś radzę, pisze inną grę gdzie mam kontrole na kodem, więc aż tak mnie jakość tych materiałów nie boil.
    • 20:
       
      CommentAuthortdc
    • CommentTime6 May 2020 zmieniony
     
    @MADRAFi zgodnie z tym co już Ci napisali, upłynęły już 42h kursu, a Ty się dziwisz, że nic nie wiesz co, gdzie i jak?;)))

    Ogólnie chodzi o to, że jeśli ktoś jest przyzwyczajony do programowania np. na Atari ST, gdzie jest o wiele więcej miejsca w pamięci to faktycznie można być zaskoczonym.

    Jednak to nie jest takie proste na małym Atari, w Atari BASICu jest ~32kb wolnego RAM i podobnie jest w Action! Teraz mamy na raz w pamięci:

    ~6kb to sam kod źródłowy czołówki, kod ~3kb, dane doczytywane to 2kb + 3kb fonty - to jest już ~14 kb

    a to dopiero zaczęty projekt!

    Dodatkowo:

    + duszki (w przyszłości będą)

    Jak dodamy do tego kodu plik 1_Opis.txt ~8,5 kb (czyli komentarze w kodzie)
    to daje ~23 kb

    Już wiesz dlaczego nie ma komentarzy w kodzie źródłowym?:))))

    - to też może być odpowiedzią na Twoje pierwsze pytanie, może się Tobie nie kompiluje bo właśnie coś Ci się w pamięci nie mieści...
    A jak widać pamięć już powoli starcza na styk...


    Ale właśnie o to chodzi, ten kurs ma na celu to aby uczestnicy usiedli przed realnym Atari, używali jego klawiatury itp. mają sobie przypomnieć jak to było programować na Atari, a inni aby zobaczyli jak to jest. Każdy ma swoje przyzwyczajenia, ale właśnie powrót do źródeł ma swój klimat i można się w Atari zakochać;)

    ...a wszyscy i tak pozostaną przy swoich przyzwyczajeniach;) Będą mogli jednak powiedzieć, że programowali na Atari i powiedzieć jakie mają z tym związane doświadczenia.


    Odpowiedzi na pozostałe pytania:
    1. Nie powiedziałeś jak kompilujesz, w jakiej wersji Action! (są carty, plikowe, różni autorzy itp. itd.) oraz co kompilujesz bo plików już mamy wiele. Nie napisałeś też czy uruchamiałeś to na emulatorze (jakim?) czy na real Atari.

    2. Jakbyś był na warsztatach od początku to wiedziałbyś że Windows nie jest ze mną kompatybilny :D

    To jego problem, a nie mój :D

    3. Kod źródłowy czasami wklejam w trakcie warsztatów, ponieważ jakiś przykład kodu nie trafi do naszej gry i usuwam go z kodu gry. Zaznaczam uczestnikom, że właśnie wklejam do pliku i wyjaśniam co i po co i jak to mogą użyć. itp. itd.
    Należy po prostu uczestniczyć w kursie;)

    5. Po to powstał plik 1_Opis.txt;)

    Właściwie to zarwałem jednego KWASa, aby ten plik stworzyć, więc i tak należy się cieszyć, że ten plik macie;))

    6. Naciskasz Control+Shif+F wpisujesz np. PROC i odnajdujesz wszystkie procedury, których obecnie nie ma zbyt wiele.

    Nie wiem czego oczekujesz, pewnie jakiegoś najechania kursorem myszki na kod i pojawienie się "dymku" w którym będzie opisane że to część tej i taj procedury, modułu, co robi, z jakimi parametrami jest kompilowane, w jakie miejsce i podświetli gdzie się kończy pętla i procedura itp. :)))

    Jednak kwestia jest prosta w programowaniu jeśli coś się zaczyna od "WHILE" to znaczy, że to pętla. Teraz w kodzie są 4 takie - to raczej mało jak na grę z czołówką :)))

    Nazwa procedury wyjaśni Ci, która pętla do czego służy, więc skoro mamy procedurę z grą i w niej jedna pętla to staje się jasne, że to główna pętla gry.

    7. Dla mnie jest to nieistotny problem, również ze względu na wcześniej wymienione kwestie. Jeśli ktoś chce to niech używa, ja ostrzegłem z czym się to wiąże, więc każdy z uczestników sam sobie zdecyduje co i jak chce osiągnąć.

    Jest jeszcze jedna ważna kwestia, w warsztacie uczestniczą początkujący programiści, nastolatki oraz osoby, które programowały wyłącznie w BASICu. Wstawianie dodatkowych stałych typu ZM, PO, PZ jedynie zaciemni kod, bo dla początkującego takie nazwy są kolejnym elementem takim jak nazwy procedur moich i bibliotecznych - których ma się nauczyć, więc dla nich będzie to jeszcze bardziej zaciemniało kod (wysiłek z zapamiętywaniem, który im nic nie da).

    8. Uczestnicy mają to od tygodni bardzo szczegółowo i na przykładach wyjaśniane. Jeśli masz z tym problem to Google i "Mapa pamięci Atari" :))
    ...co również już kilka razy wyjaśniałem ;))
    • 21:
       
      CommentAuthortdc
    • CommentTime6 May 2020
     
    @Mono - bardzo dobre pytanie;)
    A Twoje wnioski również bardzo dobre. Tak właśnie został zaprojektowany Action! aby z jednej strony łatwo było oprogramować sprzęt Atari (display listę itp.), a jednocześnie, aby można było fajnie robić przerwania VBLK i DLI. Dzięki temu kompletnie nie ma powodu do tego aby używać asm, nawet do tak zaawansowanych procedur jak obsługa tak szybkich przerwań jak DLI.
    To unikalna cecha Action!

    (choć na forum Atari.org.pl jest napisane coś odwrotnego w wątku o Action! - całe lata już mają tam takie rzeczy, poprzez usuwanie sprostowania i wiedzy. Szkoda słów dla takich ludzi)
    • 22: CommentAuthorMADRAFi
    • CommentTime6 May 2020
     
    @TDC
    Polecam zobaczyc zrodlo w action gry Zybi.
    Jak widac da sie. Kod jest latwiejszy w czytaniu od Twojego. Mozna sie z niego dowiedziec gdzie sie zaczynaja i koncza procedury, petle. Byc moze nie uczesticzyles w zadnym projekcie w ktorym ktos inny programowal razem z Toba.
    • 23:
       
      CommentAuthortdc
    • CommentTime6 May 2020 zmieniony
     
    A Ty nie uczestniczyłeś w programowaniu na małym Atari gdy kod źródłowy i kod wynikowy nie mieszczą się razem w pamięci;)))
    A tak jak mówiłem, pamięć jest już na wykończeniu, a my jeszcze mamy do dodania tablice kilkudziesięciu przeciwników ich animacje, kolizje, grafiki duszków, elementy grafiki, rozgrywki itp. za chwilę pamięć się skończy.
    • 24:
       
      CommentAuthorbocianu
    • CommentTime7 May 2020 zmieniony
     
    A Ty nie uczestniczyłeś w programowaniu na małym Atari gdy kod źródłowy i kod wynikowy nie mieszczą się razem w pamięci;)))


    @tdc: pudło. Brak miejsca na kod i dane to był jeden z głównych problemów z którymi zmagał się MadRafi w swoim projekcie. Sam pomagałem mu optymalizować pewne rzeczy i pokazywałem mu jak oszczędzać miejsce. I z pewnością nie polegało to na robieniu bałaganu w kodzie i utrwalaniu złych praktyk.

    A jeżeli to narzędzie Cię ogranicza przed kodowaniem w przyzwoity i czytelny sposób to znaczy, że masz złe narzędzie. Ale to oczywiście tylko moje subiektywne zdanie.
    • 25: CommentAuthorZenon
    • CommentTime7 May 2020
     
    Moja koncepcja kartridża ACTION jest taka.
    Pamięć EEPROM AT28C256 o pojemności 32KB, w sam raz na dwa systemy.
    Pamięć jest programowana napięciem 5/V więc nie potrzebuje dodatkowego zasilacza.
    W kartridżu jest przełącznik włączający tryb PROGRAMUJ. Uruchamia się prodecurę programującą i plik danych wprogramuje się w kilka minut. Przełączenie na BOOT i powinien odpalić.
    Pamięć przed ponownym zaprogramowanie nie wymaga kasowania, po prostu wpisuje się co trzeba i jest ok.
    Można programować dowolny bajt jako tylko ten.
    Taki programowany kartridż ACTION ma tę zaletę, że jak po chwili powstanie nowe oprogramowanie do ACTION, użytkownik sam sobie go wprogramuje bez szukania kogoś kto ma programator.
    Do programowania zastosować można opcję -szybkie programowanie.
    Polega na tym, że przed wprogramowaniem kolejnego bajtu odczytuje się z pamięci EEPROM zawartość jej komórki. Jeżeli zawartość jest tożsama to pomija się programowanie tego bajtu i adresuje następną komórkę.
    A samo programowanie polega na tym że następuje:
    LDA DANA ; pobranie danej do zaprogramowania
    STA ADRES ; adres komórki do zaprogramowania ($A000-BFFF)
    ..... ; tu pusta pętla by chwilę odczekać aż wewnętrzne układy pamięci dokonają cyklu wprogramowania, czekać ok.10 milisekund
    ..... a tu kolejne wprogramowanie do komórki następnej lub dowolnie innej.
    Mogę zrobić prototyp na już, a ktoś niech napisze procedurę programującą.
    • 26: CommentAuthorzbyti
    • CommentTime7 May 2020 zmieniony
     
    N I E A K T Y W N Y
    @Zenon niestety nie mam (i raczej nie zamierzam mieć) prawdziwego sprzętu bo bym się pisał na prototyp.

    Jako kibic muszę jednak powiedzieć, że znakomita koncepcja! :]
    • 27: CommentAuthorMADRAFi
    • CommentTime7 May 2020
     
    @TDC
    Wystarczy pociac program na fragmernty i edytowac oddzielne pliki. Nie trzeba trzymac wszystkiego w 1 pliku.

    ->link<-

    Strona 111, 7,2 INCLUDE

    INCLUDE "D1:IOSTUFF.ACT"


    Takze Action umozliwia trzymanie porzadku. Tylko trzeba chciec.
    • 28: CommentAuthorzbyti
    • CommentTime7 May 2020 zmieniony
     
    N I E A K T Y W N Y
    @MADRAFi popieram! (jakby co jestem na ZOOM między 12:00 a 12:30)

    @mkolodziejski release-next dobra robota! dziękuję :]
    • 29:
       
      CommentAuthorKaz
    • CommentTime7 May 2020
     
    Tak dla przypomnienia, Cosi i Yosh o grafice w Action!:

    ->link<-

    Kuba Husak o odtwarzaniu muzyki RMT i CMC w Action!:

    ->link<-

    A tu Kuba Husak napisał program do testów wersji swojego Action! :D

    ->link<-
  2.  
    @zbyti - dziękuję - jak tylko dogadamy się na temat doboru kolorów, to pójdzie MERGE ku chwale społeczności!

    @Zenon - kart jak najbardziej dobra rzecz - jak zbierasz listę, to możesz mnie dołączyć :)

    @Kaz - potwierdzam - ten kawałek kodu @jhusak, zacytowany przez @TDC robi robotę
    • 31: CommentAuthorzbyti
    • CommentTime7 May 2020
     
    N I E A K T Y W N Y
    @mkolodziejski kolory są OK, tylko kolorowanie jeszcze błędne.

    Pobierz mój kod z GitHub-a to zobaczysz, że zmienne będące tablicami są kolorowane jak procedury, "stałe" z bloku DEFINE w kodzie moją kolor jak zmienne etc.

    Na ten moment koduję, więc jeszcze Ci tego nie zgłosiłem na gicie ;)
    • 32: CommentAuthorzbyti
    • CommentTime7 May 2020 zmieniony
     
    N I E A K T Y W N Y
    Dzięki @mono i @Cosi wpadł kolejny kamyczek do ogródka mojej wiedzy o Atari 8-bit i Action! :]

    Poniższy kod to przykład wykorzystania DLI.





    SET $E=$2000
    SET $491=$2000

    DEFINE
    RTI="$40",PHA="$48",PLA="$68",STA="$8D",LDAI="$A9"

    ; 48 PHA
    ; A9 DE LDA #$DE
    ; 8D 0A D4 STA $D40A ;WSYNC
    ; 8D 18 D0 STA $D018 ;COLPF2
    ; 68 PLA
    ; 40 RTI

    BYTE ARRAY
    DL=[
    $70$70$70
    $42$00$40 2 2 2 2 $F0 2 2 2 2 2
    $70$70$70
    $41$00$20
    ],
    DLI=[PHA LDAI $DE STA $0A $D4 STA $18 $D0 PLA RTI]

    BYTE
    CH=$2FC,
    NMIEN=$D40E

    CARD
    VDSLST=$200,
    SDLSTL=$230

    PROC MAIN()
    SDLSTL=DL
    VDSLST=DLI
    NMIEN=$C0

    WHILE CH=$FF DO OD
    GRAPHICS(0)
    RETURN
    • 33: CommentAuthorzbyti
    • CommentTime7 May 2020 zmieniony
     
    N I E A K T Y W N Y
    Potrzebny tutorial STEP-BY-STEP jak grać muzykę z RTM za pomocą Action!

    Na ten moment mam takie info, że sam plik RTM z muzyką to za mało, trzeba skompilować jakiś player do tej muzyki i napisać sobie wywołanie tego playera na VBLK.

    Oczywiście narzędzia dla Windows :P A instrukcji jak to zrobić nie widzę ->link<- co nie kliknę 404 ;P

    tdc 2 Aug 2012:

    No jak już robić to dobrze i ładnie, a ja teraz niestety odpadam.

    Może @tdc dokończysz sprawę po 8 latach? ->link<-
    • 34:
       
      CommentAuthorKaz
    • CommentTime8 May 2020
     

    Zbuti:

    @tdc dokończysz sprawę po 8 latach?


    Ustaw się w kolejce, są projekty starsze i ważniejsze :D
    • 35: CommentAuthorzbyti
    • CommentTime8 May 2020 zmieniony
     
    N I E A K T Y W N Y

    Księga Ulicy XIII:

    Nieważne co piszą, byleby nie przekręcili kswywki.




    • 36:
       
      CommentAuthortdc
    • CommentTime8 May 2020 zmieniony
     

    MADRAFi:

    4. Kod zrodlowy jest chaotyczny, zawiera nikle komentarze nie tlumaczace zmiennych.
    5. Zmienne sa 2-3 literowe. Nie wiadomo co znacza.
    6. Calosc czyta sie bardzo zle. Nie wiadomo gdzie jest glowna petla programu, gdzie sa procedury, gdzie sie koncza.
    7. Brak stosowania stalych, wszystko jest hardkodowane.
    8. Zero tlumaczenia adresow specyficznych dla Atari. Zadnego kometarza co to za komorki pamieci sa.

    (...)

    Polecam zobaczyc zrodlo w action gry Zybi.
    Jak widac da sie. Kod jest latwiejszy w czytaniu od Twojego. Mozna sie z niego dowiedziec gdzie sie zaczynaja i koncza procedury, petle. Byc moze nie uczesticzyles w zadnym projekcie w ktorym ktos inny programowal razem z Toba.

    itp. itd.


    To co tu piszesz, to jest jakiś totalny kosmos, chcesz aby uczyć ludzi programować pecety z roku 2020 na komputerze z 1979 roku, w języku programowania z roku 1983.
    W mojej ocenie zaorałeś się parokrotnie.

    Na całym świecie są setki kursów, które uczą programować dzisiejsze pecety. Nie wiem dlaczego mylisz ten kurs z tymi pozostałymi.
    To bardzo istotne, aby wiedzieć na jaki kurs chcesz się udać oraz czego uczy dany kurs, aby się nie pomylić.

    Pozostała sprawa, to kwestia tego że posiadając tę wiedzę, nie masz co się szykować na kolejny kurs - no chyba że idziesz jak Sheldon dla radochy wytykania prowadzącemu czegoś co sobie założyłeś.
    Insynuując mi to wszystko - zachowujesz się bardzo nieładnie.

    Wprowadzasz początkujących uczestników kursu w błąd, chcesz ich uczyć tego czego robić nie powinni.
    W dodatku nie uczestniczysz w kursie i robisz przez to zamęt, tym którzy uczestniczą.

    Nie dziw się wszystkiemu co się wydarzyło przez blisko 50 godzin kursu (zaoranie coraz bardziej prawdopodobne - więc trzeba na to uważać). W trakcie kursu można się pytać o wszystko, absolutnie o wszystko.
    Więc nie zadawaj pytań, na które odpowiedzi już padły wielokrotnie - to napastliwe z Twojej strony.
    Dziękuję.
    • 37: CommentAuthorMADRAFi
    • CommentTime8 May 2020
     
    TDC
    Ja uzylem konstruktywnej krytyki.
    Napisalem swoje zdanie na temat Twojej metody dydaktycznej.
    Pokazalem ze mozna to robic lepiej.

    Mam prosbe jak cytujesz to cytuj to co napisalem a nie swoje doklejki.

    Ja ci nic nie insynuuje.
    Ja wprowadzam w blad? Gdzie i kiedy? Dalem do porownania kopd napisany przez zbyti vs twoj kod z ostatniej lekcji. Kazdy moze sobie ocenic go sam.

    PS. Skoro robisz kurs dla poczatkujacych to spodziewaj sie ze beda pytania na ktore odpowiadales juz wielokrotnie.

    Ja nie uwazam ze kogokolwiek napadlem.
    • 38:
       
      CommentAuthorKaz
    • CommentTime8 May 2020
     
    Madrafi - tutaj przyznaję rację TDCowi. Skoro nie uczestniczyłeś w warsztatach, to skąd wiesz, jaka jest jego metoda dydaktyczna? Bo wziąłeś plik z programami dołączanymi po lekcji i wydaje Ci się nieczytelny? No sorry, ale jest to wynikiem przyjętych przez Tomka założeń - czytelność i porządek w pliku nie jest priorytetem, ponieważ wszystko jest powoli i dokładnie tłumaczone na zajęciach.

    Można się nie zgadzać z takim podejściem, albo preferować inne, ale bez przesady - formę krytyki też trzeba umieć zastosować. Bo to faktycznie mało grzeczne, że nawet nie zadałeś pytań Tomkowi, dlaczego tak, a nie inaczej - tylko od razu uznałeś, że wiesz lepiej, jak to trzeba robić. To nie jest konstruktywna krytyka, tylko podważanie czyichś kompetencji czy sposobu prowadzenia warsztatu tylko na podstawie jakichś swoich wyobrażeń. A na przykład podane przez Ciebie dzielenie pliku na kawałki, edytowanie takich kawałków i doczytywanie z dyskietki mnie na przykład totalnie by nie odpowiadało. Wolę, żeby od razu mierzyć się z problemami pamięci czy małej czytelności programu. A też jestem początkujący.

    Co więcej, krytyka konstruktywna jest wtedy:
    - gdy zapoznajesz się najpierw z założeniami i metodą (obu tych rzeczy nie wykonałeś)
    - wskazujesz błędy/niedoskonałości i sposoby ich rozwiązania (tutaj żadnych takich Twoich wskazań nie widzę).

    Tak czy siak - zapraszam na warsztaty, będziesz mógł zadać konkretne pytania Tomkowi, jeżeli programowanie w Action! Cię interesuje. A jeśli nie interesuje - to po warsztatach Afterek - będziemy mogli ustalić czy mógłbyś poprowadzić własne warsztaty - wedle metody, którą uznasz za lepszą :)
    • 39:
       
      CommentAuthortdc
    • CommentTime8 May 2020 zmieniony
     

    MADRAFI:

    Ja wprowadzam w blad? Gdzie i kiedy?

    Wyjaśniłem gdzie.

    MADRAFI:

    PS. Skoro robisz kurs dla poczatkujacych to spodziewaj sie ze beda pytania na ktore odpowiadales juz wielokrotnie.

    Pytania dotyczące kursu to zupełnie co innego.
    A co innego to ingerowanie w plan kursu (i to dopiero od kilkunastej części) z insynuowaniem że prowadzący nie ma o czymś pojęcia, że ma się czegoś dowiedzieć, nauczyć od innych itp. Jest to bardzo niekulturalne. (inna sprawa że kod źródłowy Zbytiego był już omawiany i komentowany na warsztatach, więc skoro w warsztatach nie uczestniczysz, to nie dziw się że nie masz pojęcia o czym była w nich mowa - nie wiem dlaczego muszę to powtarzać...)
    To jest zachowanie nie na miejscu.

    MADRAFI:

    Dalem do porownania kopd napisany przez zbyti vs twoj kod z ostatniej lekcji. Kazdy moze sobie ocenic go sam.

    Ocena kodu na oko, to jakaś totalna bzdura na warsztatach, które z samej nazwy omawiają zagadnienia praktyczne. A tak ładnie prosiłem abyś nie dokonywał samozaorania...

    Dlatego bardzo proszę poszukaj sobie jednego z tysięcy kursów na całym świecie (nie wiem dlaczego muszę to powtarzać), który spełni Twoje wymagania.
    A całą sytuację niech Ci ktoś życzliwy wyjaśni. Mnie proszę pozostaw bez swoich CENNYCH porad i ocen.
    • 40:
       
      CommentAuthorbocianu
    • CommentTime8 May 2020
     
    A całą sytuację niech Ci ktoś życzliwy wyjaśni.


    @MADRAFi : ja będę życzliwy i Ci wszystko wytłumaczę, ale na priv, ok? Po pierwsze nie zaśmiecajmy wątku, a po drugie nie chcę zostać posądzony o blasfemię. :)
    • 41:
       
      CommentAuthorKaz
    • CommentTime8 May 2020 zmieniony
     
    Zaczęliśmy. Jest na czym oko zawiesić! :D
  3.  
    @Kaz - @zbyti dał czadu, bardzo atrakcyjna realizacja
    • 43:
       
      CommentAuthorKaz
    • CommentTime8 May 2020 zmieniony
     
    Prawda! Zawsze namawiam koderów na testowanie nowych pomysłów, które w wiekszości są do uzyskania prostymi środkami i niewielkim kosztem (w sensie kosztu zajętości procesora, pamięci, etc.)

    Tutaj zwykła podmianka znaków ze standardowych na rysowane dała 50% lepsze wizualnie efekty. No i zaproponowałem wprowadzenie nieba ponad polem gry, jako gradient DLI, bo to też dodaje mnóstwo przestrzeni na ekranie i bardzo ożywia całość. To jeszcze nie koniec, ale zobaczymy, czy Zbyti zdąży wprowadzić kolejne pomysły przed deadlinem :D. Najwyżej zrobi się wersję after-party :D


    Ale widziałem także Twój efekt - nieźle! Jakbyś zdążył jeszcze wprowadzić jakiś szum/zakłócenie dźwięku podczas zakłóceń obrazu to byłaby miazga :D
    • 44: CommentAuthorzbyti
    • CommentTime8 May 2020
     
    N I E A K T Y W N Y
    @Kaz ja na party już się nie spieszę, optymistycznie celuję w koniec maja ;)
    • 45:
       
      CommentAuthortdc
    • CommentTime9 May 2020 zmieniony
     
    Kolejne pliki, z wczorajszego warsztatu, teraz było nieco o CPU Atari, wydajności, cyklach i optymalizacji wydajności czy też reusingu zmiennych;)
    Do tego zakodowaliśmy sobie efekty w czołówce gry, które zaproponował Kaz - myślę, że fajne i oryginalne;)
  4.  
    @Kaz

    dziękuję bardzo za pozytywny odbiór, oczywiście na tym etapie dodanie kodu żeby POKEY sobie trochę poszumiał, nie będzie problemem.

    Nie należę do osób skromnych, ale gratulacje i wielkie brawa to należą się naszemu mistrzowi zakonu jedi - TDCowi, wyjątkowo dobrze zsynchronizowałem się z lekcjami warsztatowymi. Tak można ponarzekać nie na TDC, a na cechy języka Action! które powodują, że programista zrozumie inaczej sztuczki czy inny `syntaktyczny cukier`, ale to wszystko TDC objaśnia na żywo w praktyce.

    Sam zgubiłem się raz czy dwa - choćby z innym niż w innych językach (c-pochodnych) zachowaniem programu kiedy lewą stroną porównania jest adres w pamięci/rejestr, ale come-on - ten komputer ma 40 lat, 64KB pamięci, to jest wielkość marnego - naprawdę nędznego pliku graficznego w dzisiejszym świecie, a kod źródłowy to ~5-10 KB, taką długość można ogarnąć 2 przewinięciami ekranu. I tak eksperymentuję - potykam się samodzielnie na wszystkim co TDC mówi `no tak nie róbcie` - chociaż chyba tak nie powiedział, po prostu - `tu jak zrobicie inaczej będzie problem`. Do ogarnięcia. Podsumowując - TDC inspiruje i objaśnia, stąd jemu biłbym brawo.

    Program napisany, jak tylko uda mi się poskładać do kupy żeby dało się go konkursowo uruchomić, to będzie sukces. Tu @Zbyti dostarczył know-how, że tak powiem `kombinuję` :) Chyba że założysz kategorię `programy które rokują, ale się nie uruchamiają`.
    • 47:
       
      CommentAuthorKaz
    • CommentTime9 May 2020
     
    Jest kategoria "Wild i "Nieukończone, ale obiecujące", więc zawsze można tam startować... :)

    Ważne jest to, że autor każdej pracy będzie miał możliwość powiedzenia paru słów o swoim projekcie, można to wykorzystać na wiele sposób - np. znalezienie kogoś do współpracy, zareklamowanie swojej gry, opowiedzenia o sposobie dochodzenia do efektów, etc.
    • 48:
       
      CommentAuthortdc
    • CommentTime10 May 2020
     
    Dzięki za miłe słowa;)

    Ja od wczoraj przygotowałem szkic naszej gry, będzie dziś o 20:00 zaprezentowana na compo PSA. Zapraszam;)

    Już mi się skończyła pamięć w Action!, dlatego cóż... parę godzin kodowania i koniec pamięci;) Gdybyśmy nie wczytywali grafiki Kaza to jeszcze by trochę miejsca było, aby zmieścić jednocześnie źródło i kod. Ale obecnie to niewiele jest miejsca, ale mam nadzieję że sobie jakoś z tym poradzimy;)
    • 49: CommentAuthorzbyti
    • CommentTime11 May 2020 zmieniony
     
    N I E A K T Y W N Y
    Ciekawy sposób by móc (podczas przerwań) pobawić się w Action! stroną zerową, bo w standardize mamy tylko parę komórek dla siebie, od $CA do $CE.

    DEFINE SaveTemps=[
    $A2 $07 ; LDX #7
    $B5 $C0 ; LOOP LDA $C0,X
    $48 ; PHA
    $B5 $A0 ; LDA $A0,X
    $48 ; PHA
    $B5 $80 ; LDA $80,X
    $48 ; PHA
    $B5 $A8 ; LDA $A8,X
    $48 ; PHA
    $CA ; DEX
    $10 $F1 ; BPL LOOP
    $A5 $D3 ; LDA $D3
    $48 ; PHA
    ]

    DEFINE GetTemps=[
    $68 ; PLA
    $85 $D3 ; STA $D3
    $A2 $00 ; LDX #0
    $68 ; LOOP PLA
    $95 $A8 ; STA $A8,X
    $68 ; PLA
    $95 $80 ; STA $80,X
    $68 ; PLA
    $95 $A0 ; STA $A0,X
    $68 ; PLA
    $95 $C0 ; STA $C0,X
    $E8 ; INX
    $E0 $08 ; CPX #8
    $D0 $EF ; BNE LOOP
    ]"

    ->link<-
    • 50:
       
      CommentAuthorDracon
    • CommentTime11 May 2020
     
    Myślę, że przydałoby się jakieś "promo-video" z pokazem jakie możliwości ma ten Action! Albo jakiś przystępny artykuł dla wszystkich, z uwzględnieniem wad i zalet a także porównań do innych istniejących dziś możliwości (MadPascal, Mad Assembler, atarowa odmiana język C, który lubi Ilmenit, itd.).
    Teraz to wygląda trochę jakby zebrała się ściśle mała grupa pasjonatów, która "zoomuje" ekszyna kilka razy w tygodniu i tyle. ;)
    Potencjalny efekt uboczny takiej akcji: Kuba Husak może nie nadążyłby z produkcją actionowych cartów. :D