atarionline.pl Konkurs programistyczny Blukiego - 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: CommentAuthorAdam
    • CommentTime15 Apr 2016 zmieniony
     
    W czasie świąt wielkanocnych Bluki na forum AtariArea ogłosił konkurs programistyczny na grę przeznaczoną na 8-bitowe Atari. Jej kod powinien powstać w jednym z wymienionych w regulaminie dialektów Basica, przy czym świadomie pominięty został Atari BASIC.

    Tematyka: „jajcarska” lub powiązana z jajem. Termin oddawania prac: 9 maja.
    ->link<-

    Bluki:

    Konkurs z jajem! (programistyczny - 8-bit)

    Zapraszam do udziału w konkursie-zabawie na najbardziej „jajeczną” mini grę w BASIC-u. Organizatorem jestem ja, czyli Bluki (zwany dalej „Organizatorem”).

    Zasady przedstawiam poniżej, teraz tylko wyjaśnię symbolikę tytułu. Otóż gra musi w jakiś sposób kojarzyć się z jajem. Może to być na przykład labirynt, z którego jajo musi uciec unikając gorących patelni, może to też być gra o śmiesznej fabule, czyli „jajcarska”. Tak czy inaczej, musi kojarzyć się z jajem takiej lub innej postaci :) .

    REGULAMIN

    1. Konkurs trwa od 27 marca do 9 maja 2016 roku.

    2. Dopuszczalne są następujące interpretery (w nawiasie kwadratowym rozszerzenie dla samouruchamialnego pliku AUTORUN.xxx):
    – Altirra BASIC 1.50 [BAS];
    – Atari Microsoft BASIC II [AMB];
    – Hypra Soft BASIC [HSB];
    – OSS BASIC XE [BAS];
    – OSS BASIC XL [BAS];
    – Turbo BASIC XL 1.5 [BAS].

    3. Gra musi uruchamiać się z dyskietki pod MyDOS-em 4.50.

    4. Gra musi posiadać ekran tytułowy, na którym wymagane minimum informacji to: tytuł gry, autor, rok produkcji.

    5. Program musi dać się wylistować (nie można zabezpieczać programu przed listowaniem).

    6. Program może zawierać maksymalnie 100 linii kodu (w tym REM) ponumerowanych od 101 ze skokiem 1. Poza tym limitem musi zostać zamieszczona linia specjalna REM o numerze 100, zawierająca kolejno: tytuł gry, nick autora (autorów), datę ukończenia gry. Na przykład:

    100 REM Skok przez jajo, niki, 15.04.2016

    7. Każda linia programu może zawierać maksymalnie 120 znaków po wylistowaniu, w tym spacje i numery linii.

    8. Wszelkie wyświetlane w grze teksty muszą być w języku polskim z zachowaniem znaków diakrytycznych.

    9. Można używać procedur w języku maszynowym pod warunkami:
    – kod musi zawierać się w liniach programu;
    – procedura nie może zastępować istniejących w interpreterze poleceń (np. nie można jej użyć do narysowania trójkąta, bo istnieją w tym celu polecenia PLOT i DRAWTO);
    – musi spełniać funkcję pomocniczą, tzn. główny ciężar gry musi spoczywać na programie i poleceniach interpretera BASIC-a.

    10. W zewnętrznych plikach dopuszcza się przechowywanie jedynie następujących danych: fontów, grafiki ekranowej, dźwięku (playera) i doczytywanie ich w trakcie gry.

    11. Niedopuszczalne są próby ominięcia regulaminu poprzez sztuczki programistyczne.

    12. Wszelkie kwestie nieujęte regulaminem, sporne, decyzje o zgodności bądź niezgodności gry z regulaminem podejmuje Organizator. Decyzje te są ostateczne.

    JAK ZGŁOSIĆ GRĘ DO KONKURSU

    Należy przysłać mejla na adres: przed małpą „konkurs8bit”, a za małpą „poczta.fm”.
    Tytuł mejla: „Konkurs z jajem”.
    W treści należy wpisać:
    – tytuł zgłaszanej gry i język, w którym gra została napisana.
    – opis gry wraz z „klawiszologią” (jeżeli wykorzystywany jest dżojstik w typowy sposób wystarczy informacja „obsługa dżojstikiem”).
    – Uzasadnienie związku gry z jajem, jeżeli ten związek nie jest oczywisty.

    W załączniku do mejla:
    – Plik z grą (ewentualnie z dodatkowymi plikami zgodnymi z p. 10 regulaminu). Najlepiej umieszczony na ATR z załącznika, pod nazwą „AUTORUN.xxx”, aby automatycznie się uruchamiał. Uwaga: ponieważ istnieją różne wersje tej samej implementacji BASIC-a więc użycie ATR z załącznika będzie bezpieczniejsze. Można też podesłać sam plik BAS.
    – Nie jest wymagany, ale mile widziany byłby zrzut ekranu ze środka gry pod emulatorem Altirra.

    Po stwierdzeniu przez Organizatora zgodności z regulaminem gra zostanie upubliczniona. W przypadku odrzucenia autor otrzyma mejla zwrotnego z uzasadnieniem.

    AKTUALIZACJA GRY KONKURSOWEJ

    Jeżeli z jakiegoś powodu (np. zauważony błąd) konieczna jest aktualizacja należy to zrobić tak jakby zgłaszało się nową grę (zgodnie z szablonem podanym w rozdziale „JAK ZGŁOSIĆ GRĘ DO KONKURSU”), z tą różnicą, że przed tytułem gry należy dodać „Aktualizacja gry...”. Wówczas stara wersja zostanie wycofana i zastąpiona nową.

    WYŁONIENIE ZWYCIĘZCY, NAGRODY

    Wyłonienie zwycięskiej gry nastąpi w publicznym głosowaniu po upłynięciu terminu zgłaszania (pkt. 1 regulaminu), nie szybciej niż 7 dni po opublikowaniu ostatniej gry. Wówczas też zostaną opublikowane zasady głosowania. Dlaczego wtedy? Bo będą zależały od ilości zgłoszonych gier. W szczególności, jeżeli nie będzie zgłoszeń konkurs zostanie unieważniony, jeżeli jedno zgłoszenie, autor automatycznie otrzyma nagrodę (nie będzie wówczas nad czym deliberować).
    Uwaga. Jeżeli zwycięska gra została napisana przez więcej niż jednego autora, to nagroda główna przypadnie osobie, która jako pierwsza została wymieniona w specjalnej linii gry nr 100.

    Główną nagrodą, chyba jedyną, jaka może się w takim konkursie pojawić, jest JAJOWAR – niespodzianka oczywiście działający. Jest więc okazja do „zapunktowania” u swojej drugiej połowy, udowodnienia, że te hobby to nie tylko strata czasu ;-) .

    Nagroda dodatkowa w postaci „butelkowca” USB zostanie rozlosowana wśród wszystkich uczestników konkursu z wyjątkiem zwycięzcy (ten otrzymuje nagrodę główną), pod warunkiem, że w konkursie weźmie udział co najmniej czterech uczestników.

    UWAGI

    Wszelkie pytania i uwagi proszę zamieszczać przede wszystkim w tym wątku. Można też wysyłać (w szczególności, gdy pytającemu zależy na poufności) na mejla konkursowego (patrz „JAK ZGŁOSIĆ GRĘ DO KONKURSU”).

    Dla ułatwienia w załączniku znajdują się ATR-y z dopuszczonymi do konkursu interpreterami i MyDOS-em 4.50 oraz stosowne obrazy kartridżów.

    Aby uprzedzić pytania, dlaczego nie ma Atari BASIC-a, odpowiadam: tyle już napisano na niego gier, że... więcej nie potrzeba...
    • 2: CommentAuthorQTZ
    • CommentTime23 Apr 2016 zmieniony
     
    Póki co zrobiłem trochę grafiki, ale za mało na grę i nie mam pomysłu co dalej...

    OT: Mam prośbę do Blukiego, czy mógłby/ś umieszczać/cić pliki w sposób ogólnodostępny, bo tak nie mogę (i inni też) ściągnąć nic bez konta na AA, a specjalnie nie chce mi się rejestrować, dziękuję, pozdrawiam.
    • 3: CommentAuthorAdam
    • CommentTime23 Apr 2016
     
    QTZ, plik "ATR + CAR.7z" jest dołączony do powyższego wpisu. Chyba że chodzi Ci o coś innego.
    • 4: CommentAuthorQTZ
    • CommentTime23 Apr 2016 zmieniony
     
    Chodzi mi o pliki z Krainy Basic-a (i innych wątków Blukiego), które są dla mnie niedostępne, powyższy plik oczywiście ściągnąłem.
    • 5: CommentAuthorAdam
    • CommentTime4 May 2016
     
    Udało Ci się dalej posunąć ze swoją grą konkursową? :)
    • 6: CommentAuthorQTZ
    • CommentTime5 May 2016 zmieniony
     
    Mam ekran tytułowy, tytuł "3.99$"/"399s"/"3995" ;) i trochę grafiki do gry, "koncept-art" ekranu rozgrywki... Pomysł na grę ciągle się zmienia i to całkowicie... więc część z tej grafiki może się nie przydać, a i tak sporo jeszcze potrzebuję dorysować. Co do silnika to właściwie go nie ma, jest tylko wyświetlanie gracza (i to też wymagałoby dopracowania)... Praca trwa, ale obawiam się że do 9 nie zdążę, opublikuję to co mi się uda zrobić...

    Edit: Skonwertowałem całą grafikę którą do tej pory mam i się nie mieści w podstawowej pamięci... chciałem uniknąć doczytywania w trakcie... a i tak to nie wszystko... jak mi się uda doprowadzić "to" do używalności to będzie to raczej niezbyt interaktywna "gra"... (przynajmniej w regulaminowym terminie)
    • 7: CommentAuthorQTZ
    • CommentTime9 May 2016 zmieniony
     
    No i jest... wydmuszka :) póki co niegrywalna (da się chodzić i "zmienić strój"), ale mało brakuje ;)

    PS. Obrazek w tle można wymienić na dowolny mic lub z "Koali", ten załączony nabazgrałem na szybko, nie tak to miało wyglądać, ale po całej nocy spędzonej na pisaniu...
    • 8: CommentAuthorAdam
    • CommentTime9 May 2016 zmieniony
     
    Czyli się udało. Mam nadzieję, że wysłałeś to zgłoszenie na podany w regulaminie adres? :)

    Swoją drogą słowo "wydmuszka" dobrze pasuje do klimatu konkursu ;)
    • 9: CommentAuthorQTZ
    • CommentTime9 May 2016
     
    Właśnie wysłałem...
    • 10: CommentAuthorAdam
    • CommentTime9 May 2016
     
    Odpaliłem. Gra wygląda fajnie, oryginalnie i mogłoby coś świeżego i niebanalnego z tego wyjść. Liczę na rozwinięcie pomysłu! :)
    • 11: CommentAuthorQTZ
    • CommentTime10 May 2016
     
    Dzięki za test :)

    Miało być dużo bardziej niebanalnie, ale musiałbym jeszcze z kilkadziesiąt rysunków narysować... (te udało się upchnąć - pająk to ok 9kB)

    ...jeszcze jakieś AI by się przydało, detekcja kolizji, etc, ten pająk wcale nie musi być naszym wrogiem... W tej chwili pająk (vel ośmiorniczka) jest gotowy do wyświetlania (każda część odnóża jest osobno rysowana), trzeba tylko oprogramować... nie wykluczam, że jeszcze coś dorobię... ;)
    • 12:
       
      CommentAuthortdc
    • CommentTime10 May 2016
     
    Fajnie to wygląda!
    Ale nie wiem jak grać ;)
    • 13: CommentAuthorAdam
    • CommentTime10 May 2016
     
    No bo to na razie zalążek gry, a nie gra ;)
    • 14: CommentAuthorAdam
    • CommentTime10 May 2016
     
    Oficjalnie konkurs wygrał QTZ, ze względu na niską frekwencję zajął miejsce pierwsze i ostatnie ;)
    • 15: CommentAuthorQTZ
    • CommentTime10 May 2016 zmieniony
     
    Wygrałem walkowerem... może jak dokończę to chociaż na KK dostanę punkty ;)









    (z podmienionym tłem - wystarczy wrzucić załączony plik TLO.MIC na dysk H: i zacząć nową "grę", plik taki możemy przygotować samodzielnie w g2f)




    Obrazki źródłowe, które po "stabelizowaniu" widzimy w "grze".
    • 16:
       
      CommentAuthortdc
    • CommentTime11 May 2016
     
    Pesymista powie że zajął miejsce ostatnie a optymista że wygrał :P

    Gratulacje, mam poważne wątpliwości czy w BASICu da sie dobrze zrobić tę grę, może w Action! byłoby łatwiej?;)
    • 17: CommentAuthorQTZ
    • CommentTime11 May 2016 zmieniony
     
    Dzięki! A co powie realista?

    Zawsze się znajdzie ktoś, kto o tym nie wie i to zrobi :P

    Co takiego miałoby być niemożliwe w TB?

    Jeżeli byłoby zbyt wolno można spróbować skompilować.

    Ja widzę tu problem wielowątkowości, ale do tego jeszcze nie dotarłem i w Action chyba też nie ma na to gotowego rozwiązania... będzie po prostu trzeba wykonywać tak podprogramy, żeby wykonywały jeden ruch (lub / i sprawdzenie) i przekazywały sterowanie do następnego, aby wtedy się ruszał następny obiekt (np. każde odnóże pająka z osobna) w zasadzie mógłby za to odpowiadać jeden i ten sam podprogram, ale musiałby dostawać całkiem nowy komplet zmiennych do przetwarzania... z drugiej strony mógłby nim sterować gracz ;), ale i tak stan każdej z nóg musi być zapisywany. Ja tu widzę analogię do Pasjansa, którego napisałem przed laty - karty układane na sobie odpowiadają elementom odnóży :) z tą różnicą, że tu się nie da ich przekładać i pozycje są zapisane na stałe, przy wyborze kierunku (w przypadku skrajnych łapek) można to tak potraktować jakby był to nowy zestaw kart.

    Ale w sumie wielowątkowość to problem prawie każdej gry :)

    PS. Po tym maratonie wiem już jak to jest na GGJ, ale tam pracują zespoły...
    • 18:
       
      CommentAuthortdc
    • CommentTime11 May 2016 zmieniony
     
    Realista powie że wziął udział ;)

    Będzie za wolno i kompilacja przy takiej ilości i skomplikowaności obiektów - niewiele da... już lepiej najważniejszy kod animujący napisać w asm, ale wtedy to już nie będzie Basic.

    No i bardzo fajnie że masz doświadczenie co to jest jam (widać że kawał roboty tutaj odwaliłeś), mam nadzieję że się Tobie taka zabawa spodobała. A w zespole zawsze lepiej, choć ja na GGJ zwykle działam niemal samodzielnie, mogę rzadko liczyć na grafika i częściej na muzyka. Cała reszta na mojej głowie, a szkoda bo ktoś z Was mógłby mnie wyręczyć w czymkolwiek;)
    • 19: CommentAuthorkoala
    • CommentTime11 May 2016
     
    ...dowolny mic lub z "Koali"...

    wypraszam sobie:)
    • 20: CommentAuthorQTZ
    • CommentTime11 May 2016 zmieniony
     
    @TDC
    Ilość spora, ale nie ma potrzeby wyświetlać wszystkiego w jednym czasie - interesuje nas ostatnia część odnóża (jedna na raz), postać i ew. 1-3 elementy rozgrywki. Wyświetlanie z użyciem maski jest w asm (dopuszczone przez regulamin) - w pętli w Basic-u trwało by to zbyt długo. Program sterujący wg założenia ma być w Basic-u i myślę, że za wolno nie będzie.

    Czas miałem zajęty innymi sprawami, grafikę i podprogramiki (SDK - "stabelizowanie" grafiki i wyświetlanie) tworzyłem w wolnych chwilach, a całość ciągle była rozbita i stąd takie tempo na koniec (inaczej wszystko poszłoby na marne), ale na GGJ to bym nie dał rady... trzeba w tym siedzieć, żeby tak z marszu coś wymyślić i to napisać, teraz sporo musiałem sobie przypomnieć, a i z pomysłem miałem problem - najpierw nic, a potem kilkanaście pomysłów, z których miks można tu zobaczyć... gdybym chciał zrobić wszystko co wymyśliłem powstałaby całkiem spora (jeżeli nie ogromna) gra...

    Czasami rysuję bezpośrednio na PC (większość grafiki), czasami koncept powstaje na kartce (plansza gry), czasami skanuję (tu nie miało to zastosowania), gdy obrazek ma być mały to używam myszy (postacie, etc), a gdy większy to małego tabletu graficznego, a później koryguję myszą (pająk). Później jeszcze tak przygotowaną grafikę trzeba podzielić (upakowanie jak najciaśniej nie jest konieczne, ale początkowo miało to działać inaczej więc było :)). Jest to żmudny proces... grafiki miało być więcej, ale w pewnym momencie przestała się mieścić w dostępnej pamięci, musiałem okroić program konwertujący (usunięty test wyświetlania) i zmienić sposób opisu poszczególnych części grafiki. Teraz na spokojnie mogę to podzielić inaczej i ewentualnie doczytywać w miarę potrzeby (w docelowym programie wolałbym tego uniknąć - aby można było uruchamiać grę z kasety, ale np. bez tła i masek do tego potrzebnych). Podprogram wyświetlający wymaga zmiany, "mryga" odrysowując tło, a do tego potrzebuje 1/2 pamięci którą zajmuje wyświetlana grafika, aby móc zapamiętać / przywrócić to tło... Zrobiłem nawet działający prototyp, ale działa tylko w lewo i do góry :) (w odwrotnych kierunkach sam siebie zamazuje). Na GGJ to zbyt dużo pracy...

    Jak chcesz zobaczyć kolejne fazy wyświetlania pająka w zwolnionym tempie to dopisz np. "PAUSE 10:" przed "NEXT II" w linii 125 :)

    @Koala
    He he, kiedyś na uczelni wykładowca narysował na schemacie pusty element i zapytał co się w nim mieści, a jeden z kolegów odpowiedział bez wahania "miś koala" :) Wykładowca się oburzył, ale kolega brnął dalej - miś koala, bo niby czemu nie? nas interesuje co podajemy na wejściu i czego oczekujemy na wyjściu (a tego wykładowca nie sprecyzował) :). Powiedział to w trochę inny sposób, już dokładnie nie pamiętam, ale wszyscy się uśmiali :).

    Co do rysunków z Koala Micro-ilustrator-a to trzeba podmienić plik na dyskietce lub zmienić ścieżkę w programie (linia 123), ale podprogram odczytuje tylko jeden z dwu możliwych rodzajów kompresji, więc lepiej używać .mic-ów ;)


    (należy zmienić nazwę pliku tlo2.mic na tlo.mic)

    Edit: dołączone tło (Self Test)