atarionline.pl River Raid - gra bez końca? - 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: CommentAuthortbxx
    • CommentTime6 Feb 2010
     
    Jeśli kogoś nadal nurtuje to pytanie, przygotowałem prostą odpowiedź.

    1. Wersja na Atari 2600 - jak możemy przeczytać w instrukcji gry, po przekroczeniu 999'999 pkt licznik zamienia się w "!!!!!!". Na youtube możemy znaleźć filmik pokuazujący tą zmianę. Od tej chwili każde zdobycie punktu powoduje utratę życia. Teoretyczne maksimum tej wersji to 2000 mostów (za każdy mostek dostajemy 500pkt)

    2. Wersja na Atari 5200 i XL/XE.
    Tu nie mamy żadnej wzmianki w instrukcji o wykrzyknikach.
    Do testu uzyłem emulatora Atari800Win, zablokowałem licznik "żyć", oraz wyłączyłem detekcje kolizji "Player-Player" oraz "Player-Playfiled". Następnie włączyłem autofire, oraz zablokowałem klawisz "góra". Emulator przyspieszyłem "F7" i czekalem na efekt. Po ok 5godzinach licznik wskazywał "6106" mostów oraz "9999990"pkt. Kazdy zdobyty punkt powodował utrate życia.

    W obu przypadkach granicą gry nie jest wyczerpanie się mozliwości generatora rzeczki, ale licznik punktów...
    • 2: CommentAuthorirwin
    • CommentTime6 Feb 2010
     
    To naturalne że przy tej objętości gry nie można zmieścić układu leveli w inny sposób niż jako generowanych na bieżąco. A tym samym liczba leveli może być nieograniczona. W związku z tym autorka jak widać zablokowała możliwość przekręcenia licznika, gdyby to zmienić tj wylączyć, to grać można w nieskończoność. Przy okazji normalnie grając 5 godzin da się dojść do około 200 mostu - wiem z autopsji ;)
    • 3:
       
      CommentAuthorPecus
    • CommentTime7 Feb 2010
     
    Jakieś 15 lat temu zrobiłem to samo (no ale nie na emulatorze ;) ).
    Więcej powiem, nie blokowałem licznika żyć. Po prostu dłubnąłęm w kodzie tak ze samolocik działał jak pocisk, a do tego z wyłączonym sprawdzaniem współrzędnej poziomej. Czyli ginęło wszystko co znalazło się na poziomie samolociku. Licznika nie trzeba było blokować bo zawsze i tak jak paliwo się kończyło (bo też było niszczone) był w zapasie przynajmniej jeden dodatkowy premiowy żyć - tyle było punktów z tego niszczenia wszystkiego :)
    A no i kolizje z brzegiem były wyłączone....
    No i takiego River Raida odpaliliśmy z kumplem wkładając joystick pod pokrywę tapczanu, żeby naciskała naprzód cały czas..... i poszliśmy do kina.

    Po powrocie był most około Twojego 61xx i zatrzymany licznik punktów.
    • 4:
       
      CommentAuthorKaz
    • CommentTime1 Jan 2011
     
    Ciekawe, jak wierna bedzie wersja pecetowska? ;) Przyznam, ze rzadko trafiaja do mnie remake'i starych gier, glownie przez ta hiperrealistyczna grafike, ktora nie pasuje do uproszczonych zasad gier 8-bitowych. Ale ten projekt na ponizszym filmiku bardzo mi sie podoba!

    • 5:
       
      CommentAuthorWolfen
    • CommentTime1 Jan 2011
     
    hmmm no moze byc ciekawe cos a'la PCtowy Space Strike :) ale boje sie mimo wszystko tych 3D fajerwerkow - pozyjemy, zobaczymy
    • 6: CommentAuthorfaust
    • CommentTime1 Jan 2011
     
    Fajne, szkoda, ze to tylko render:(
    • 7: CommentAuthorBluki
    • CommentTime1 Jan 2011
     
    W świetle ostatnich wynalazków (Projekt-M) może ktoś się pokusi o River Raid 3D na Atari?
    • 8: CommentAuthors2325
    • CommentTime1 Jan 2011
     
    River Raid się nie kończy bo jak wiadomo Ziemia jest okrągła ;)
    • 9: CommentAuthorBluki
    • CommentTime1 Jan 2011 zmieniony
     
    Niby tak, ale jaka rzeka płynie dookoła Ziemi? ;)
    • 10: CommentAuthorHenryk
    • CommentTime1 Jan 2011
     
    Jest jeszcze na PC "River raider 2" w 3d. Do ściągnięcia np. z tego miejsca.
    ->link<-
    • 11:
       
      CommentAuthorKaz
    • CommentTime1 Jan 2011 zmieniony
     
    Jezeli to jest to:



    to wlasnie takie remake'i do mnie nie docieraja. Przy prostych zasadach swiata niepotrzebnie komplikuja grafike, staraja sie ja zrobic fotorealistyczna zamiast symboliczna.
    • 12: CommentAuthorHenryk
    • CommentTime1 Jan 2011
     
    Tak. To jest to.
    • 13: CommentAuthorLiwiusz
    • CommentTime6 May 2019
     
    Czy możecie mi wytłumaczyć, na jakiej podstawie myślicie, że liczba mostów jest nieograniczona? Przecież to jest fizycznie niemożliwe (pamięć).
    • 14:
       
      CommentAuthorMq
    • CommentTime6 May 2019
     
    Kształt rzeki, przeszkadzajki i mosty są liczone algorytmem, a nie zaprojektowane, dlatego po każdym kolejnym moście powstaje nam dalszy ciąg w nieskończoność. Fizycznie jest to możliwe, a nawet bardzo proste - również do wyobrażenia sobie i wpadnięcia na to samemu. Pamięć nie ma tu nic do rzeczy, no chyba, że ktoś ma w głowie też tylko tyle ile stockowe Atari:-)
    • 15: CommentAuthorLiwiusz
    • CommentTime6 May 2019
     
    Czyli chodzi o to, że jest to algorytm, który mając jakiś początek (powiedzmy pierwszy most) później generuje zawsze tak samo wyglądającą nieskończoną liczbę mostów? O tym nie pomyślałem, genialne :)
    • 16:
       
      CommentAuthormav
    • CommentTime6 May 2019
     
    Ale tak w sumie nawet jeśli poziomy byłyby predefiniowane, to co stoi na przeszkodzie podawać je w kółko (co zresztą i tak ma miejsce, niezależnie od tego, czy są efektem algorytmu czy zakodowanego kształtu)
    • 17: CommentAuthorLiwiusz
    • CommentTime6 May 2019
     
    Jakby były podawane w kółko, to też by było to zauważone. Chodzi o to, że za młodych lat grałem namiętnie w tę grę i nigdy nie doszedłem końca (setny most to było pewnie jakieś jednorazowe osiągnięcie). Teraz dzięki emulatorowi i save'om miałem nadzieję dojścia do końca - no i inaczej się gra, wiedząc, że koniec jest, a inaczej - że nie ma :)

    Informacja o nieskończoności mostów jest pewna?
    • 18:
       
      CommentAuthormav
    • CommentTime6 May 2019
     
    Mi się wydawało, że jednak się powtarzają. Ale dawno nie grałem, a pamięć płata figle
    • 19: CommentAuthorbruno_j
    • CommentTime6 May 2019 zmieniony
     
    Na A2600 River Raid kończy się po przekroczeniu 1 000 000 punktów. Zamiast licznika punktów wyświetlają się wykrzykniki i samolocik leci dalej, ale trafienie w przeciwnika niszczy samolot: ->link<-

    Tu ktoś przekroczył 1 000 000 (356 most) na maluchu i po stracie życia licznik zaczął migać a gra stanęła: ->link<-
    Czyżby tak wyglądał koniec River Raid na XE/XL?
    • 20:
       
      CommentAuthorCOR/ira4
    • CommentTime6 May 2019 zmieniony
     
    @ Kaz
    Boże... , żeby tylko aż tak wierna nie była jak w podesłanym przez ciebie filmiku : ->link<-

    To jest straszne ,boję się takich gier na nowe/obecne sprzęty .
    • 21: CommentAuthormariuszw
    • CommentTime6 May 2019
     
    Tutaj: ->link<- jest deasemblacja River Raid z Atari 2600. W/g opisu z listingu:

    ; Section generation:
    ; The river is divided into sections which are generated by random. The random
    ; number generator can generate 57337 different sections. Each section is
    ; divided into 16 blocks. The last block is the bridge. For each other block a
    ; random Id is generated, which defines the shape of the river. The river is
    ; randomly generated with or without islands.
    ; Each block is 32 lines high and is divided into two parts. Those parts are
    ; neccessary for the bridge only, because it is smaller than a whole block.
    ;
    ; All objects are also randomly generated. There is one object in each block.
    ; First the game randomly selects if a fuel tank, an enemy object (ship, plane
    ; or helicopter) or a house should be generated. Then a starting x-position is
    ; defined and finally the direction (left/right) of the object is set.
    ; The ships and helicopters start patroling also randomly.

    Nie sprawdzałem jak jest na Atari800, ale pewnie podobnie, czyli może być 57337 mostów.

    Na Atari 2600 wyszedł również River Raid II:

    • 22: CommentAuthorLiwiusz
    • CommentTime7 May 2019
     
    Czy "randomly generated" nie jest wykluczone przez to, że plansze są zawsze takie same?
    • 23: CommentAuthormariuszw
    • CommentTime7 May 2019 zmieniony
     
    Słuszna uwaga.

    Generator liczb losowych (na którym oparte jest tworzenie plansz) jest programowy i startuje zawsze od tej samej wartości, przez co ciąg generowanych liczb jest zawsze taki sam. Dzięki temu plansze są takie same.

    Mnie zastanawia, jak przy "losowym" generowaniu plansz osiągnięto efekt zwiększania się poziomu trudności ;)
    • 24:
       
      CommentAuthorMq
    • CommentTime7 May 2019
     
    Może poprzez ograniczenie początkowo występowania niektórych obiektów? Czyli jest sobie kilka obiektów różnych, ale dostępnych jest tylko część z nich, a później wraz z kolejnym mostem zwiększa się dostępność tych obiektów o 1. Nie wiem czy tak jest, ale tak sobie myślę, bo w RR na XL/XE jest tak, że w pierwszych etapach nie ma balonów, strzelających helikopterków, przelatujących białych samolocików. Na samym początku nie ma też ruchomych obiektów, a później już raczej większość jest ruchoma. To narastanie stopnia trudności następuje na kilku pierwszych mostach, a później już wydaje się, że jest jednolicie pod tym względem.
    • 25: CommentAuthorPecet
    • CommentTime7 May 2019
     
    Wraz ze wzrostem numeru poziomu zwiększa się gestość wrogów, a zmniejsza się szerokość przesmyków. W początkowych levelach, nawet jak jest wyspa, to scieżka przelotu jest stosunkowo szeroka. Jednak z czasem ta szerokość się wyraźnie zmniejsza.
    • 26: CommentAuthorLiwiusz
    • CommentTime7 May 2019 zmieniony
     
    Zatem podsumowując - gra posiada (może posiadać) algorytm polegający na tym, że mając zadaną jakąś wartość początkową, na podstawie algorytmu zapisanego w skończonej ilości pamięci może generować nieskończoną i zawsze identyczną liczbę poziomów.

    Czy jest przykład takiego algorytmu do pokazania w trochę prostszy sposób?

    Nie wydaje mi się, aby mogło być w nim cokolwiek z losowości (wyklucza to identyczność leveli za każdym razem), i o ile mogę sobie wyobrazić rysowanie w nieskończoność figur w Logo, o tyle uzyskanie takiego efektu w River Raid, gdzie do symetrii i uchwycenia powtórzeń jest bardzo daleko, to IMHO jest niemałym osiągnięciem programistyczno-algorytmicznym.
    • 27: CommentAuthortebe
    • CommentTime7 May 2019
     
    odpowiedzią dla tej losowości może być Perlin Noise (Szum Perlina)
    z 1983

    ->link<-
    • 28: CommentAuthorLiwiusz
    • CommentTime7 May 2019
     
    RR - 1982
    Szum - 1983 (1985) :)
    • 29: CommentAuthorAdam
    • CommentTime7 May 2019
     
    @Liwiusz, poczytaj sobie, jak działa generator liczb pseudolosowych. On stara się "udawać" losowość, ale jest deterministyczny: startując od tego samego ziarna (seed) dostaje się zawsze ten sam ciąg wartości. Na małym Atari tego typu generator jest umieszczony w POKEY-u.

    Ostatnio np. przy "Druidarium" KK zrobił tak, że na starcie gry wybieramy tylko wartość ziarna zapisaną szesnastkowo, a na tej podstawie generowana jest cała zawartość danego levelu.
    • 30: CommentAuthormono
    • CommentTime7 May 2019
     
    @tebe: Dzięki.

    Jak generatory liczb pseudolosowych często używa się LFSR zarówno w wersji softwareowej, jak i sprzętowej, bo konstrukcja takiego generatora jest bardzo prosta.
    W asm wygląda to mniej więcej tak:
    lsr
    scc
    eor #$18

    dla generatora o wielomianie x5+x4+1. 0 jest wartością niedopuszczalną.
    • 31: CommentAuthormariuszw
    • CommentTime7 May 2019
     
    Na Atari 2600 jest LFSR:

    NextRandom16 SUBROUTINE
    ; implements a 16 bit LFSR which generates a new random number:
    LDA randomHi ; 3
    ASL ; 2
    ASL ; 2
    ASL ; 2
    EOR randomHi ; 3
    ASL ; 2
    ROL randomLo ; 5
    ROL randomHi ; 5
    ; (JTZ: randomHi is very random, randomLo is NOT when more than one bit is used,
    ; because: randomLo[x+1] = randomLo[x]*2 + 0/1, but randomLo is used more often,
    ; randomHi only for new enemy and which. This could make the game a bit predictable.)
    RTS ; 6


    Jeśli zmienić inicjalizację seed-a to można generować nowe plansze ;)

    ; initial values for the random number generator:
    SEED_LO = $14 ; change "to go, where no one has gone before" :)
    SEED_HI = $A8
    • 32: CommentAuthorPecet
    • CommentTime7 May 2019
     
    A ja mam inne pytanie. Czy jest możiwość 'hacka' polegającego na tym, że wpisujemy inną wartość ziarna generatora liczb pseudolosowych i uzyskać inne poziomy?
    • 33:
       
      CommentAuthorpirx
    • CommentTime7 May 2019
     
    tak
    • 34:
       
      CommentAuthormav
    • CommentTime7 May 2019
     
    Boulderdash także część obiektów umieszcza na planszach pseudolosowo :)
    • 35:
       
      CommentAuthorWolfen
    • CommentTime7 May 2019
     
    @mav,
    Boulder Dash? Pseudolosowo? Jakich? IMHO wszystkie plansze sa statycznymi mapami.
    • 36: CommentAuthorgorgh
    • CommentTime7 May 2019
     
    Wolfen: może tu chodzi o losowość kontrolowaną, to znaczy za każdym razem losowe liczby są takie same, btw. mav skąd masz te wieści?
    • 37:
       
      CommentAuthormav
    • CommentTime8 May 2019
     
    W pierwszej części mapki są efektem losowym. Losowo są wstawiane kamienie, diamenty i puste pola. Losowo ale powtarzalnie ocxywiscie. Podejrzewam, że metoda mrob i błędów autor testował kolejne hashe, aż mapka była grywalna. Są też instrukcjie 'prosta linia od pola xy do xy'. Naprawdę pomysłowe. Wieczorkiem podrzucę linka do artykułu z grubą analizą.
    • 38: CommentAuthorastrofor
    • CommentTime8 May 2019
     
    @mav: Super. Są gdzieś źródła river raid, czy to jest jakaś deasemblacja? W sensie gry i tak sa w asemblerze głównie więc to się jakoś inaczej nazywa. Tak czy inaczej, czy interesuje kogoś jakie są algorytmy do gry agent U.S.A, mnie to zawsze gryzło, jak rozprzestrzenia się epidemia, a przede wszystkim jak zrobiona jest sprawa pigułek-lekarstw(rozmnarzających się). Czy pigułki rozdane cywilom spowalniają rozwój epidemi, czy cywile też rozmnażają pigułki, czy lekarstwo jest rozprzestrzeniane przez cywili(na niektorych stacjach widac ze cywile rozdaja lekarstwo, bez interwancji gracza). Tak wiele pytań. Ktoś jeszcze się nad tym zastanawiał? Albo ktoś coś wie?
    • 39: CommentAuthorbruno_j
    • CommentTime8 May 2019 zmieniony
     
    @astrofor na pewno cywile rzucają kryształy gdy spotkają zarażonego. Aby tak się stało musisz rozdać cywilom kryształy, w ten sposób "fortyfikując" miasto. To jest też sposób na wykaraskanie się z zarażenia głównego bohatera. Podróżujesz losowo, aż trafisz na dobra duszę, która podrzuci ci kryształ. Tyle instrukcja.
    ->link<-

    [EDIT] Ilość kryształów w danym mieście jest podawana na mapie. OIDP to same z siebie się nie rozmnażają.
    • 40: CommentAuthorastrofor
    • CommentTime8 May 2019
     
    bruno_j: Dziekuje za cenna informacje, ze gdzies mozna sprawdzic ilosc krysztalkow w danym miescie. Pewnie w tym specjalnym info kiosku. Chyba tez krysztalki sie nie przemieszczaja do innych miast, chociaz na logikę powinny bo do pociagow wsiadaja tez ludzie z krysztalkami. Ciekawe tez czy ilosc krysztalkow w miescie jest dokladnie rowna ilosci krysztalkow jaka pozbierali ludzie w danym miescie. Jezeli tak, to czy licza sie tez krysztalki ktore ludzie zbieraja poza ekranem(mozna zostawic krysztalki na planszy i wyjsc do innej). Ciekawe tez jak wplywa rozwoj epidemi na ilosc krysztalkow w miescie. Czy na przyklad jak jest duzo krysztalkow to epidamia nie rozprzestrzenia sie w tym miescie. W sumie mala gra a sporo sie dzieje.
    • 41:
       
      CommentAuthormav
    • CommentTime8 May 2019
     
    O sztuczkach w boulderdashu przeczytałem tutaj:
    ->link<-
    Jest też link do opisu w pdf wszystkich poziomów.
    • 42: CommentAuthorgorgh
    • CommentTime8 May 2019
     
    Wow niesamowicie ciekawe, dzięki mav
    • 43: CommentAuthorilmenit
    • CommentTime9 May 2019
     
    to kto przerobi River Raid na losowy seed? ;)
    • 44: CommentAuthorPecet
    • CommentTime9 May 2019
     
    Dziwne, że do tej pory nikt tego jeszcze nie zrobił... No chyba, że zrobił;)
    Swoją drogą ta gra używa soft duszków, czy hardware'owe (rozmnożone jakoś)?
    • 45: CommentAuthormariuszw
    • CommentTime9 May 2019
     
    Gra używa duszków hardware'owych, rozmnażanych co sekcję.

    Gra na Atari800 jest w zasadzie nieco rozbudowanym portem z Atari 2600, więcej przeszkadzajek bo jest więcej duszków, i tło jest rozbudowane bo używana jest standardowa grafika.

    W wersji Atari800 jest tak jak na 2600 "kernel", który kontroluje wyświetlanie i co linię zmienia parametry duszków. Tło jest rysowane na vblank.
    • 46: CommentAuthorPecet
    • CommentTime9 May 2019
     
    Zawsze podziwiałem tą grę. A teraz, gdy mam w końcu jakieś blade pojęcie o ograniczeniach platformy, podziwiam jeszcze bardziej. RR otwiera moją listę wszechczasów (nr2 i nr3 to Hired Guns i pierwszy Quake).
    • 47:
       
      CommentAuthorCOR/ira4
    • CommentTime9 May 2019
     
    to w końcu ten River Raid ma zakończenie ,czy nie ?
    Niektóre gry Activision po prostu przekręcały licznik i to było niejako ichsze zakończenie .
    • 48: CommentAuthorastrofor
    • CommentTime9 May 2019
     
    bulder dash tez nie ma zakonczenia. Tu znalazlem dodatkowe info o generowaniu leveli. ->link<-
    A tu ktos uzywa gramatyki generatywnej, do tworzenia leveli w blderdashu,
    ->link<-
    Bardzo ciekawe.
    Ja rozumiem ze tworzenie leveli w orginalym bulder dashu wygladalo tak ze za pomoca jakiegos seeda, za pomoca generetora dalo sie wygenerowac odpowiednio dlugi ciag zawsze tych samych liczb, tworca boulder dasha zmienial tak dlugo seeda az ciag liczb, tworzyl level mozliwy do przejscia.
    Dobrze mysle ?
    • 49:
       
      CommentAuthormav
    • CommentTime9 May 2019
     
    Astrofor taką samą hipotezę postawiłem wcześniej.

    Co ciekawe, boulderdash constictor kit także posiadał możliwość losowego umieszczania obiektów. Jestem ciekawy, czy wtedy też używa tego triku, czy z racji już większej pamięci jednak po prostu tworzy statyczną mapę.

    Oczywiście za dzieciaka kompletnie nawet mi do głowy nie przyszło, że za tym stoi tak ciekawy mechanizm.
    • 50:
       
      CommentAuthorKaz
    • CommentTime10 Aug 2020 zmieniony
     
    Kolega Matías Dimitrov Albarrán podesłał swoje hacki, "River Raid 2600" oraz "River Raid Bold", są już w archiwum:

    ->link<-