Konflikt atributů

Konflikt nebo kolize atributů je grafický artefakt, který se  objevuje na starých domácích počítačích a je spojen s hardwarovými omezeními. Nejznámější uživatelům ZX-Spectrum .

Firemní počítače na rozdíl od domácích zužovaly barevnou paletu, ale neumožňovaly taková omezení; každý pixel může být zapsán libovolnou barvou z N . CGA měl pouze 4 barvy, zatímco Apple Macintosh byl obecně monochromatický.

Důvod

Aby se ušetřila paměť a urychlila práce, první barevné počítače neumožňovaly přiřadit žádnou barvu žádnému pixelu . Místo toho byla obrazovka rozdělena na bloky a každý blok dostal dvě barvy – popředí a pozadí. V každém z bloků měl pixel jednu z těchto dvou barev (a byl zakódován jedním bitem). Při pokusu o zobrazení tří barev v jednom bloku se jedna z těchto tří barev ztratí, což vede ke specifickým artefaktům [1] .

Konkrétně ZX-Spectrum přiřadilo každému znakovému prostoru 8×8 pixelů atribut 1 bajt – tříbitovou barvu popředí INK, tříbitovou barvu pozadí PAPER, 1 bit jasu BRIGHTa 1 bit blikání FLASH[2] [3 ] . Tím bylo získáno 15 barev (pouze na určitých kombinacích "video ovladač + TV" je černá nějak odlišitelná od světlé černé) [3] . Při rozlišení 256×192 tedy videopaměť zabírala pouze 6912 bajtů [2] [3] . Mimochodem, efekt blikání byl používán velmi zřídka, a to i kvůli skutečnosti, že oblast blikání jasně sestává ze čtvercových bloků.

V MSX 1 je atribut přiřazen horizontálním blokům 8×1 pixelů. Kromě toho existovaly hardwarové skřítky , které nekolidovaly mezi sebou ani s pozadím. Při portování ze ZX-Spectra se však bajty atributů často násobily, ale skřítci se nepoužívali, což vedlo k téměř nerozeznatelné hře. V NES je konfliktní zóna 8×8 pixelů – ale u hardwarových skřítků, hardwarového rolování a široké palety (celkem 52 barev, současně 8 palet po 3 barvách + základní [4] ) je to sotva patrné.

Statické obrázky jsou samozřejmě vytvářeny s ohledem na omezení video paměti. Ve hrách se obraz buduje dynamicky a problém je třeba nějak řešit.

Způsoby boje

1. Použijte atribut pozadí

Toto je nejjednodušší způsob programování - programátor pouze manipuluje s pixely, aniž by se dotkl roviny atributů. V tomto případě zde není žádná barevná "cihla", ale sprite se ztrácí v pozadí ( Double Dragon [1] [5] ).

Aby tato metoda podávala vysoce kvalitní výsledky, byl vyvinut speciální styl ( Saboteur!, Bomb Jack , Cyclone , Strike Force Cobra ). Design hry je založen na černé , černá barva je téměř všude: ve vzorech na stěnách, v dekoracích, v oblečení nepřátel ... Nečerná barva hraje roli osvětlení: například černý ninja běžící podél žlutá stěna se změní na černou a žlutou, na pozadí modré oblohy je ninja černomodrý. Dojde ke konfliktu, pokud se v nějakém známém opustí černá (záda židlí v Saboteur II: Avenging Angel ).

+ : zajímavý vizuální styl; barevný obraz je kombinován s drobnými artefakty; žádná správa atributů.

− : Vyžaduje, aby znaky byly černé, s minimem světlých čar a pozadí bylo černobílé. Pokud tomu tak není, bude známost jasně viditelná.

2. Použijte atribut sprite

Sprite rozšiřuje svůj atribut na pozadí, což má za následek barevnou "cihlu", která následuje hrdinu. Tento mechanismus se používá zřídka, obvykle pouze pro hlavní postavu, ale ne pro nepřátele - například Pac-Mania [6] nebo série her o Wallym ( Everyone's a Wally atd.)

+ : sprite je barevně oddělen od pozadí; bez omezení stylu nebo pohybu.

− : Artefakty jsou jasně viditelné.

3. Pevné pozadí, barevné skřítky

Jeden z nejoblíbenějších způsobů. Pozadí je vybarveno jednobarevně (nejčastěji černou), s minimem zdobení a hratelnost je postavena tak, aby pravděpodobnost kolize dvou objektů různých barev byla minimální. Většina prvků úrovně je neprůchodná a nezpůsobuje konflikt; jen málo z nich je pochozích skřítků v popředí a překrývají se ( Exolon , Rex ), nebo rozšiřuje svůj atribut na skřítka ( Dizzy ).

Většina her typu bludiště se zobrazuje tímto způsobem: Manic Miner [5] , Monty series , Abu Simbel Profanation , Cybernoid , Into The Eagle's Nest . Typické také pro vesmírné rolovací střílečky ( Zynaps , R-Type ), protože černé pozadí s malým počtem bodů se dobře hodí pro zobrazení vesmíru.

+ : extrémní jednoduchost.

− : Světlá grafika na pozadí.

4. Dvoubarevný obrázek

V rámci herního pole se celý obraz stává dvoubarevným ( Elite , Chimera , Head Over Heels , Robocop , Quazatron , Terra Cresta ). Určitou informaci však může nést i barva, kterou je hrací pole vymalováno. Ve hře Robocop jsou to různé úrovně, v Quazatronu jsou to různé lokace, ve hře Terra Cresta jsou to zóny v rámci úrovně. Často ( Draconus , Turbo Esprit ) je hlavní část obrazu dvoubarevná a pouze některé důležité objekty jsou vykresleny v jiných barvách.

Většina pseudo-3D (závodních) a izometrických her je vykreslena tímto způsobem.

+ : úplná absence artefaktů; žádné omezení pohybu; žádná správa atributů.

− : Schopnost kreslit barevně je ztracena.

5. Uspořádání skřítků podle známosti

Krok pohybu sprite je omezen na 8pixelovou mřížku. Tento způsob se dobře hodí pro hry, které nevyžadují dynamické vykreslování scén (strategie, logické hry), ale používá se i pro dynamické hry - tak jsme dosáhli rychlé hry Stonožka [5] . Pohyb sprite a rolování pozadí v krocích po 8 pixelech je dobře vidět v Savage , Astro Marine Corps , Dan Dare III , Extreme .

Tento mechanismus ne vždy pomáhá a často je doplňován jinými metodami. Například hry Trapdoor a Flunky používají velké sprity s plnou barevnou výplní, přičemž velký obrázek na pozadí vykresluje svou barvu v barvě pozadí předního spritu.

V některých případech se používá tzv. posunutí sprajtu , kdy je v jedné známosti 8x8 nakreslen pouze jeden sprite (a případně pozadí). V Savage a Astro Marine Corps přední sprite zcela nahrazuje zadní sprite. Posun sprite je ve hře Golden Axe velmi patrný , což kazí celkový dojem z grafického zpracování hry.

+ : jednoduchost; tento krok sám o sobě vážně snižuje artefakty.

− : ne vždy vhodné, v dynamických hrách vede k trhavým pohybům.

6. Dynamická změna atributů

Některá ukázky mění atributy dynamicky a synchronizují se s horizontálním skenováním monitoru. Konflikty nezmizí, ale konfliktní zóna se zmenší na 8x1 pixelů.

+ : Pokus o překročení limitů video paměti.

− : Metoda zabírá hodně času CPU.

Poznámky

  1. 1 2 Arkádová střet barev, ilustrací a atributů 1979-89 | David Surman - Academia.edu . Získáno 23. června 2022. Archivováno z originálu dne 23. června 2022.
  2. 1 2 L Break Into Program - Rozložení paměti obrazovky ZX Spectrum . Získáno 23. června 2022. Archivováno z originálu dne 3. července 2022.
  3. 1 2 3 Rozvržení obrazovky ZX-Spectrum: Část I – Předběhnutí událostmi . Získáno 23. června 2022. Archivováno z originálu dne 31. března 2022.
  4. Palety PPU - NESdev Wiki . Získáno 23. června 2022. Archivováno z originálu dne 29. května 2022.
  5. 1 2 3 Color Clash: The Engineering Miracle of the Sinclair ZX Spectrum - Paleotronic Magazine . Získáno 23. června 2022. Archivováno z originálu dne 18. května 2022.
  6. Tři nejpropracovanější Pac-Many na ZX Spectru? - Youtube . Získáno 27. června 2022. Archivováno z originálu dne 27. června 2022.