atarionline.pl Duchoskoczek+ Silly Venture 2014 - 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
      • CommentTime19 Jan 2015 10:01 zmieniony
       
      Na Silly Venture 2014, zaprezentowałem dwie rzeczy, czołówkę gry "Duchoskoczek+" oraz nową wersję gry "Duchoskoczek" (z 24h compo Sikora). Czołówka gry została zaprezentowana oddzielnie od gry jako Intro, którego celem jest sprawdzenie wydajności dopalonego Atari - wszystko w czystym Action! oczywiście;)

      Celem testu było sprawdzenie faktycznej a nie teoretycznej wydajności dopalnoego Atari np. z Rapidus Acceleratorem. Bez względu na konfigurację Atari program stara się wyświetlić maksymalną ilość obiektów, wyświetla max, a z Shiftem wyświetla aktualną ilość.

      Wynik jest bardzo ciekawy, bo z suchych testów maksymalne osiągi dopalnoego Atari wynosiły maksymalnie 8 krotność, jednak tutaj okazało się, że wydajność jest ponad 10-krotna! W historii komputeryzacji rzadko się zdarza taka sytuacja, aby praktyczne testy wypadały lepiej - ale to dobra wiadomość dla tych którym na wydajności zależy oraz brawa dla Pasia, któremu się to udało zrobić tak doskonale.

      Co więcej program nie pokazuje teraz maksymalnej wydajności Atari dopalonego, da się jeszcze wycisnąć kilka %, bo mam pewien pomysł, który przyspieszy nieco kod dla akceleracji CPU. Czyli zbliżać się będziemy do 11-krotności ;)

      Jak to działa?

      Najpierw program sprawdza, czy CPU zostało choć trochę dopalone i wyświetla stosowny komunikat, następnie w głównej pętli animuje tyle obiektów ile się da. Samo rysowanie obiektów jest nieco spowolnione (dla bajeru:P), gdyż sprawdza czy nie zachodzi kolizja z literami (ma to też znaczenie dla testu, gdyż im więcej podczas animacji się robi tym test jest bardziej praktyczny - mniej teoretyczny)

      Istotne dla wydajności kodu jest to, że całość animacji odbywa się w jednej pętli, co wymusza 16bitowe indeksy w tablicach. Action! do momentu gdy indeks w tablicy nie przekroczy 255, traktuje indeks jako bajt, jednak gdy ten się zwiększy, automatycznie przechodzi na wersję 16bitową, która oczywiście niestety działa sporo wolniej. Jest to oczywiście całkowicie poprawne podejście jeśli chodzi o Action!, jednak tutaj mocno zaniża to ilość obiektów animowanych w obu wariantach.

      Przychodzi tutaj do głowy bardzo istotna optymalizacja, kodu mianowicie taka aby animowanie rozbić na kilka pętli i kilka tablic, w taki sposób aby każda pętla działała jedynie na 8bitowych indeksach. Taki krok przyspieszyłby całość w sposób drastyczny na stock Atari i dopalonym (szacuję że przyspieszenie wyniosłoby ponad 1/3, czyli animowane byłoby około 450 bobów a może nawet sporo więcej).

      Tutaj jednak nie będę stosował takiego triku, gdyż traktuję ten program jako tester wydajności, a nie intro.

      Również dzięki temu, program potrafi obsłużyć dopalony procesor nawet kilkukrotnie w stosunku do Rapidus Acceleratora.

      Plik: r.com


      Gra:
      Po konkursie Sikora zdecydowałem się zaprezentować tę samą grę, ale pozbawioną ograniczeń które wymagał konkurs (z resztą od początku gra miała odpowiedni kod - jednak musiałem go dezaktywować). Myślę że teraz gra stała się grywalniejsza, a z pewnością fajniejsza;)

      Jak uruchomić grę: automatycznie uruchamia się czołówka, jednak wystarczy nacisnąć reset i wpisać "s", aby uruchomić grę.

      Plik: s.com
      • 2: CommentAuthorxxl
      • CommentTime19 Jan 2015 11:01
       
      w lewym gornym rogu pojawia mi sie: 395

      co to znaczy?
      • 3:
         
        CommentAuthortdc
      • CommentTime19 Jan 2015 12:01 zmieniony
       
      Coś zepsułeś ;):):)


      To jest maksymalna ilość obiektów jaką udało się osiągnąć od uruchomienia programu. Uruchom na niedopalonym Atari a zobaczysz ile otrzymasz różnicy;)

      ps. chodzi o ilość obiektów na ramkę.
      • 4: CommentAuthorxxl
      • CommentTime19 Jan 2015 12:01
       
      33
      • 5:
         
        CommentAuthortdc
      • CommentTime19 Jan 2015 13:01
       
      =11 ;)