atarionline.pl Muchblastesz - gra - 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:
       
      CommentAuthortdc
    • CommentTime29 Nov 2016 zmieniony
     
    Muchblastesz to gra zaprezentowana na compo Wap-niak 2016.

    To druga moja gra na game compo, ale Muchblastesz powstał na kilka dni przed party.



    Autorzy:
    Idea/Kod: Tdc
    Muzyka w czołówce: V0yager
    Grafika w czołówce: Kris3D (tworzył na party)
    Grafika gry: Tdc
    Digitalizacje: ...stare programy na Atari
    Dwukanałowy player sampli: Tdc

    Podziękowania: Koala (za pomoc na party) oraz Techni


    Idea:
    W tygodniu przed party, w poniedziałek wpadłem na pomysł aby zrobić strzelankę na Atari z samplami bo:
    - dawno takiej na Atari nie było
    - ja sam dawno nie kodowałem czegoś z samplami (dobre kilkadziesiąt lat...)

    Wymyśliłem aby jednocześnie zrobić grę, która jest dynamiczną strzelanką z animacją co 1 ramkę, a z drugiej aby w czystym Action! osiągnąć maksymalną częstotliwość odtwarzania sampli w trakcie gry - dość karkołomne zadanie, ale to było ciekawe wyzwanie i czas na realizację jedynie do piątku/soboty;)

    Ostatecznie player sampli ma następujące parametry (wersje 0,5 - 0,8):
    - dwa niezależne kanały dźwięku
    np. jeden to gracz a drugi to przeciwnicy itp.
    - możliwość kontroli częstotliwości sampli na każdym kanale
    - możliwość dodawania efektów specjalnych np. gdy giniemy sampl za każdym razem brzmi inaczej (przy ostatnim życiu już nie, bo jest zastosowany inny manewr w wer. 0,8).
    - dzięki zastosowaniu sprytnego kodu player zachowuje się jak player 2+ kanałowy, tzn. tak jakby był jeszcze jeden, 3-ci kanał sampli
    - ostatecznie w bieżącej wersji player wyciąga ~22 kHz

    Kodowanie playera sampli było bardzo ciekawe, a co jeszcze ciekawsze udało mi się zdjąć około 16 cykli z tego kodu (tzn. oszczędność: 16*22000=352000 cykli na sekundę mniej), mimo że Action! nie jest zbyt dobrze przygotowanym językiem do optymalizacji na poziomie właściwe asemblera (ale jak widać jest najlepiej do tego przygotowanym językiem z lat 80 - ze wszystkich innych języków na świecie)

    W asemblerze mógłbym z kodu playera usunąć jeszcze jedno LDA, ale w Action! nie mam aż takiej kontroli (chyba że zrobiłbym kod który by modyfikował kod gry - co też jest ciekawym rozwiązaniem). Mi jednak chodziło o to ile da się wycisnąć w czystym Action!

    Mam jeszcze kilka pomysłów jak częstotliwość można jeszcze bardziej zwiększyć, w tym kilka z nich przyspieszyłyby naprawdę znacząco!
    (jak będę miał chwilkę to przygotuję nowe wersje gry i przekonamy się ile da się wycisnąć z Atari ;)

    Tego dnia wszystko zaplanowałem i wstępnie zaprojektowałem.



    We wtorek przeglądałem stare źródła i dyskietki. Ponad dzień czasu kosztowało mnie odnalezienie w moich starych dyskietkach sampli i przygotowanie ich do gry. Wszystkie wykorzystane sample pochodzą ze starych programów na Atari (w dawnych czasach z każdego programu jaki do mnie trafił wyciągałem sample, aż w końcu zebrała się dość pokaźna biblioteka - tak to jest jak się nie maiło samplera...)

    Około środy rozpocząłem kodowanie systemu dźwiękowego.
    Chyba we czwartek rozpocząłem kodowanie gry. Kończyłem na party, bo jednak nie udało się wszystkiego zrobić w tak krótkim czasie.
    Nie mniej w sobotę gra była gotowa i wszyscy mogli się przekonać, że założenia gry udało się osiągnąć ;)

    Inne:
    - Linia score - font pochodzi z C64;)

    - Kod gry to czysty Action!

    - W grze mamy 8 ruchomych obiektów - duszków


    Uniwersalne linki do ściągnięcia gry (obecna wersja 0,8):
    - Muchblastesz.zip (serwer AOL)
    - Muchblastesz.zip (serwer Pigwa)

    Pliki:
    - Muchblastesz_w08_exe.atr - gra
    - info.txt - informacje o grze w j. polskim i angielskim
    - Muchblastesz_titlescreen.com - odrębny program wyświetlający czołówkę gry, której autorem jest Kris3d. Jest on też dostępny w ATR.
  1.  
    TDC - a co z At Arion Line?
    • 3:
       
      CommentAuthortdc
    • CommentTime29 Nov 2016
     
    Robi się...
    • 4:
       
      CommentAuthorkris3d
    • CommentTime29 Nov 2016
     
    TDC, kończ tę grę, bo jest świetna! samlpe robią robotę! Jakieś tła ala R-Type/Zybex można dorysować na dole i na górze planszy? Czy te "tła" mogą być podkolorowane jakoś?
    • 5:
       
      CommentAuthortdc
    • CommentTime30 Nov 2016
     
    Temat tej gry jest wyczerpany, mogę się jedynie w wolnym czasie zająć jakimiś drobiazgami typu dopracowanie rozgrywki, może dodanie bossa (z resztą już jest narysowany) itp.

    Co do tła, to rozumiem, że by się przydało, jednak... dodanie grafiki odbierze mi cykle CPU (przez ANTIC), które są mi niezbędne do odtwarzania sampli z maksymalną częstotliwością. A priorytetem tutaj jest szybkość digitalizacji, więc w tej grze już więcej grafiki w tle nie będzie. O podkolorowywaniu to tym bardziej zapomnijmy...


    Co do grafiki czołówki to może warto byłoby nieco ją zmodyfikować, przyjrzyj się temu jak jest obecnie wyświetlana i jeśli Tobie nie odpowiada to może by ją nieco przeskalować.
    Wypadałoby też dodać V0yagera jako autora muzyki.
    Da radę?


    ---
    Dobre! dałem to do translate.google i mam:

    * zero assembler
    * Monter zera

    * pure Action!
    * Czysta akcja!
    • 6:
       
      CommentAuthorshanti77
    • CommentTime30 Nov 2016
     
    Rozumię, że używanie asemblera jest be ;) Według mnie to sztuka dla sztuki, jak ktoś potrzebuje maksymalnej prędkości to i tak skorzysta z asemblera, a do czegoś prostszego Turbo Basic wystarczy.
    • 7:
       
      CommentAuthorRastan
    • CommentTime30 Nov 2016
     
    a 1900 kolorów będzie? ;)
    • 8: CommentAuthorAdam
    • CommentTime30 Nov 2016
     
    @shanti77: W Action pisze się kod łatwiej i szybciej niż w asemblerze, a jednocześnie powstaje coś szybszego niż program w Turbo Basicu. TDC jest zwolennikiem Action, więc podkreśla jego zalety, ale nigdzie nie napisał, że asembler jest "be" - to już sam sobie dopowiedziałeś :)
    • 9:
       
      CommentAuthorshanti77
    • CommentTime30 Nov 2016
     
    Ja cały czas widzę wszędzie "zero asemblera" , a spokojnie wstawki asemblerowe to nie zbrodnia, a sama gra wygląda jak by była napisana w TBXL, pomijając sample.
    • 10: CommentAuthorAdam
    • CommentTime30 Nov 2016
     
    Zdaniem TDC-a uzyskuje on za pomocą Action szybkość porównywalną z asemblerem - o czym można podyskutować.

    Natomiast nie wydaje mi się, że dobrym argumentem są wrażenia, jak ta gra wygląda - skąd wiesz, czy nie wyglądałaby tak samo, gdyby TDC używał czystego asemblera? :) On ma swój styl gier autorskich, swoje upodobania (jako twórca) oraz zwyczaj pisania w pośpiechu kolejnej gry na kolejne party - nie wszystko musi wynikać z ograniczeń języka ;)
    • 11:
       
      CommentAuthorshanti77
    • CommentTime30 Nov 2016
     
    Moim zdaniem szkoda czasu na pisanie nie dopracowanych gier, ale TDC lubuje się w pokazywaniu nowych rzeczy na atari(nowe tryby,więcej kolorów), ja wolę praktyczne rzeczy, czyli coś co mogę użyć w grze, tu niestety nic takiego nie znalazłem, jednak również dzięki niemu wróciłem do programowania na Atari więc niech dalej kombinuje, może coś ciekawego znajdzie :)
    • 12:
       
      CommentAuthorjhusak
    • CommentTime30 Nov 2016 zmieniony
     
    Odpowiednio kodując w Action (takie Action--) uzyskuje się efekt bardzo bliski prędkości asemblera (niezoptymalizowanego). Przy pewnym obyciu dokładnie wiadomo, jaki kod zostanie wygenerowany.
    Główny problem Action to mała ilość miejsca na tablicę zmiennych i rozwlekłość kompilatu.
    • 13:
       
      CommentAuthortdc
    • CommentTime1 Dec 2016 zmieniony
     
    @Kuba, JAC! ostatnio przygotował własną wersję Action! gdzie wielkość tablicy jest ustalana, można ją bardzo powiększyć.

    Rozwlekłość również można poprawić, skoro są źródła;)
    • 14:
       
      CommentAuthortdc
    • CommentTime28 Mar 2018 zmieniony
     

    shanti77:

    jednak również dzięki niemu wróciłem do programowania na Atari więc niech dalej kombinuje, może coś ciekawego znajdzie :)

    O! To fajnie!
    I miło mi.

    Atari jest bardzo fajne do programowania, dlatego myślę że trzeba (mam tu na myśli i Ciebie) zachęcać ludzi do tego, aby wracali do Atari.
    • 15:
       
      CommentAuthortdc
    • CommentTime28 Mar 2018 zmieniony
     

    shanti77:

    a sama gra wygląda jak by była napisana w TBXL, pomijając sample.

    Nie zgodzę się, nie chodzi tylko o sample. Wszystkie obiekty poruszają się co ramkę - nie znam TBXL tak dobrze ale mam wrażenie że jednak sprawiałoby to problemy wydajnościowe. Dodatkowo w tej grze mamy: 5 przeciwników + 6-ty pojazd gracza + 4 pociski (gracza i przeciwników) - razem 10 obiektów w ramce (każdy ma swoją prędkość, wielkość i kolor, każdy z obiektów ma też swoje klatki animacji, każdy oddzielnie obsługiwane, przeciwnicy mają też inne parametry jak to czy strzelają, jak się poruszają, albo że lecą wężykiem razem (a ostatni nie do końca - opcja), pamiętają też kiedy strzelają i jaką dają punktację itp.). Bez asm TBXL nie da rady tego zrobić...
    ... tymczasem Action! robi to bez najmniejszego problemu.

    Mniemam, że z pomocą asm TBXL może dałby radę to zrobić w ramce, ale na styk i np. na inne rzeczy nie starczyłoby czasu np. na odtwarzanie muzyki z RMT lub CMC.