Prince of Persia – modul statické grafiky pozadí

Tímto modulem začnu. Bude sdílet statickou část knihovny TriPlane, kterou jsem vyvinul při přepisu hry The Magician’s Curse a která se alespoň teoreticky jeví být řešením problému paměťové náročnosti hry Prince of Persia. Minimálně lze konstatovat, že má tento systém poloviční nároky na uložení animačních dat postavy hráče, kdy jak masku, tak i vlastní pixelová data lze uložit vždy pouze do jednoho bajtu namísto dvou (maska AND + data OR). Ovšem to je třeba chápat tak, že i když budou mít animační data poloviční objem, budou mít v zásadě stejnou délku jako originál. Kdybych měl na PMD-85 k dispozici barvy, byla by postava ohraničena rozhraním dvou barev. My však nemáme na PMD-85 k dispozici nezávislé barvy pixelů a tak bude hra striktně monochromatická a každá animační fáze postavy musí mít rovněž i masku, která ji oddělí od grafiky pozadí.

Z pohledu statických dat grafiky herní obrazovky pak tento systém umožňuje definovat kulisu hry, kde některé části se chovají jako pozadí a některé jako popředí. Postava hráče se pak z hlediska priority vykresluje mezi těmito rovinami. Inspirací k vytvoření tohoto systému tří bitových rovin byl (velmi) starý papírový rozkládací betlém, který při otevření „vysunul“ prostřižené části směrem k čtenáři (vidíte, jak je užitečné být dříve narozený) a vytvořil tak iluzi prostoru. Přitom se popředí a pozadí u tohoto betlému nekryje a může tak být vystřiženo z jednoho kusu papíru (ekvivalentem je uložení pozadí a popředí do jedné bitové roviny v paměti). Naštěstí je tento modul tak rychlý, že během předkreslování statické scény nezpomaluje přechod mezi místnostmi. Alespoň jedna dobrá zpráva..

Tolik předmluva k prvnímu kvartálu 2020 a vývoji první části hry Prince of Persia.

Když jsem v závěru roku 2015 napsal pro PMD-85 prohlížeč LEVELů, považoval jsem jej dlouho za slepou vývojovou větev. Momentálně jsem ve fázi, kdy porovnávám výchozí pozice jednotlivých možných řešení a tak pro osvěžení paměti uvádím ke stažení to demo. Grafiku si musíte přepnout do ČB výstupu, není kompatibilní s ColorACE.  Prohlížeč se spouští JUMP 0000 a nese sebou výchozí LEVEL 1. Pak už si můžete pod MONITORem dohrávat ostatní připojené LEVELy příkazem MGLD a prohlížeč restartovat opět příkazem JUMP 0000. LEVEL4 ještě nemá dokončeny všechny textury.

Prince of Persia level viewer – soubor virtuální MGF pásky pro emulátor PMD-85 od RM-TEAMu

 

10 komentářů u „Prince of Persia – modul statické grafiky pozadí

  1. Zdeněk

    Už z té předmluvy to ní jako zcela nová pohádka, tentokrát s názvem
    “ PoP: TriPlane“ ( volně přeloženo Princ z Persie: Tři pláňe ) 😆😉
    a to právě i vzhledem k již zmíněnemu “ betlémskému “ modulu.✌
    Je radost o ní číst i když jen zatím …

    … To se mi líbit … 👍

  2. Libor L.A.

    Do hlavního článku jsem dal ke stažení DEMO/prohlížeč levelů PoP z roku 2015/2016. Přeci jen mě napadla možnost jistého vytěžení této práce. Délka uvedeného prohlížeče (což je defacto grafická knihovna a sada bitmap grafiky) zabírá něco málo přes 7kB. Myslím, že ji dokážu stlačit na hodnotu kolem 4-5 kB, což ve srovnání s originálem Apple (jen grafika bez programu kolem 13kB) vypadá na celkem velký progres.

    Ale zatím je to ve stádiu porovnávání, co z které verze využít. Trochu mám obavy z toho, že pokud se zcela oprostím od originálního engine „Mechner“, nedokážu sesynchronizovat jednotlivé moduly hry. Nyní asi provedu analýzu originální procedury FRAMEADV a na ni navázaných zobrazovačů, nakolik je využitelná pro PMD-85.

    1. Zdeněk

      “ … když se kouknu na Tebe, tak tě musím pochválit … “ 😎
      Tak to je slušná práce, vypadá to dost dobře a to i vzhledem k té uvedené velikosti ( spíš malinkosti ).

      Analýza a srovnávání určitě není na škodu.
      Podle dosavadních výsledků na to rozhodně máš, aby jsi to dokázal ( vybereš ze všeho jen to nejlepší a je to 😉 )

      “ …kdo se bojí nesmí do lesa … „

      1. Libor L.A.

        Hned jak se vrátím domů, kouknu na ten druhý odkaz. Podle jména vypadá zajímavě. Jinak bych řekl, že jsi zarytý fanda kinematografie a to nejen té české.

        1. Zdeněk

          Jo, jo koukni to budeš teprve mrkat na drát, co tam na Tebe vykoukne ( ale tentokrát to Vetřelec nebude ).

          To víš, každej jsme nějak “ postiženej “ 😎
          Jestli to nebude tou “ fotografickou “ pamětí, pořád se tam něco “ samo“ ukládá a kolikrát to člověk ani nechce ( např. koukneš na “ pohádku “ MRAZÍK jednou a už se toho nezbavíš )

  3. Libor L.A.

    S PoP jsem se dostal do bodu, kdy začíná narůstat množství záplat. Proto jsem dnes zakonzervoval stávající verzi a na základě nabytých zkušeností přepisuji základní grafické rutiny, tak aby fungovaly bez těch záplat, byly univerzální a přitom rychlé. A pokud možno ještě rychlejší. A nejrychlejší kód je ten, který neexistuje.. Tím nemyslím nic filozofického. Tím myslím zavedení jistého stupně predikce: prostě včas určit, co se kreslit nemusí, když se následně kreslí to či ono. Zároveň bych ošetřil nějaké ty (dys)grafické anomálie.

Napsat komentář

Vaše emailová adresa nebude zveřejněna.