Conflict de atribute

Conflictul de atribute sau ciocnirea este un artefact  grafic care apare pe computerele vechi de acasă și este asociat cu limitări hardware. Cel mai bine cunoscut utilizatorilor ZX-Spectrum .

Calculatoarele de afaceri, spre deosebire de cele de acasă, au restrâns paleta de culori, dar nu au permis astfel de restricții; orice pixel ar putea fi scris orice culoare din N . CGA avea doar 4 culori, în timp ce Apple Macintosh era în general monocrom.

Motivul

Pentru a economisi memorie și a accelera munca, primele computere color nu permiteau alocarea vreunei culori unui pixel . În schimb, ecranul a fost împărțit în blocuri, iar fiecărui bloc i s-au dat două culori - prim-plan și fundal. În fiecare dintre blocuri, pixelul avea una dintre aceste două culori (și era codificat cu un bit). Când se încearcă afișarea a trei culori într-un bloc, una dintre aceste trei culori se pierde, ceea ce duce la artefacte specifice [1] .

În special, ZX-Spectrum a atribuit un atribut de 1 octet fiecărui spațiu de caractere de 8×8 pixeli - o culoare de prim-plan de INKtrei biți, o culoare de fundal de trei biți PAPER, 1 bit de luminozitate BRIGHTși 1 bit de clipire FLASH[2] [3 ] . Aceasta a dat 15 culori (doar pe anumite combinații de „controller video + televizor” negrul se distinge cumva de negrul strălucitor) [3] . Astfel, la o rezoluție de 256×192, memoria video a ocupat doar 6912 octeți [2] [3] . Apropo, efectul de clipire a fost folosit extrem de rar, inclusiv din cauza faptului că zona de clipire este în mod clar formată din blocuri pătrate.

În MSX 1, atributul este atribuit blocurilor orizontale de 8×1 pixeli. În plus, au existat sprite -uri hardware care nu intrau în conflict între ele și cu fundalul. Cu toate acestea, la portarea din ZX-Spectrum , octeții de atribut au fost adesea înmulțiți, dar sprite-urile nu au fost folosite, ceea ce a condus la un joc aproape de nediferențit. În NES, zona de conflict este de 8×8 pixeli - dar cu sprite-uri hardware, derulare hardware și o paletă largă (52 de culori în total, simultan 8 palete de 3 culori + bază [4] ) acest lucru este greu de observat.

Imaginile statice, desigur, sunt construite ținând cont de limitările memoriei video. În jocuri , imaginea este construită dinamic și problema trebuie rezolvată cumva.

Modalități de a lupta

1. Folosiți atributul de fundal

Aceasta este cea mai ușoară metodă de programat - programatorul manipulează doar pixelii fără a atinge planul atributului. În acest caz, nu există o „cărămidă” de culoare, dar sprite-ul se pierde în fundal ( Double Dragon [1] [5] ).

Pentru ca această metodă să dea rezultate de înaltă calitate, a fost dezvoltat un stil special ( Saboteur!, Bomb Jack , Cyclone , Strike Force Cobra ). Designul jocului se bazează pe negru , culoarea neagră este aproape peste tot: în modelele de perete, în decorațiuni, în hainele inamicilor... Culoarea non-neagră joacă rolul luminii: de exemplu, un ninja negru care alergă de-a lungul unui peretele galben devine negru și galben, pe fundalul unui cer albastru în care ninja este negru și albastru. Va exista un conflict dacă negrul este abandonat într-o anumită familiaritate (spătarul scaunelor din Saboteur II: Avenging Angel ).

+ : stil vizual interesant; imaginea color este combinată cu artefacte minore; nici un management al atributelor.

− : Necesită caracterele să fie negre, cu un minim de linii luminoase, iar fundalul să fie alb-negru. Dacă nu este cazul, familiaritatea va fi clar vizibilă.

2. Utilizați atributul sprite

Sprite-ul își extinde atributul pe fundal, rezultând o „cărămidă” colorată care urmează eroul. Acest mecanism este folosit rar, de obicei doar pentru personajul principal, dar nu și pentru inamici - de exemplu, Pac-Mania [6] sau o serie de jocuri despre Wally ( Everyone's a Wally , etc.)

+ : sprite-ul este separat prin culoare de fundal; fără restricții privind stilul sau mișcarea.

− : Artefactele sunt clar vizibile.

3. Fundal solid, sprite colorate

Una dintre cele mai populare moduri. Fundalul este vopsit într-o singură culoare (cel mai adesea negru), cu un minim de decor, iar gameplay-ul este construit în așa fel încât probabilitatea unei coliziuni între două obiecte de culori diferite să fie minimă. Majoritatea elementelor nivelului sunt impracticabile și nu provoacă conflicte; puțini pot fi plimbați fie în prim-plan și se suprapun sprite ( Exolon , Rex ), fie își extind atributul către sprite ( Dizzy ).

Cele mai multe jocuri de tip labirint sunt afișate astfel: Manic Miner [5] , seria Monty , Abu Simbel Profanation , Cybernoid , Into The Eagle's Nest . De asemenea, tipic pentru shootere cu derulare în spațiu ( Zynaps , R-Type ), deoarece un fundal negru cu un număr mic de puncte este foarte potrivit pentru a reprezenta spațiul.

+ : simplitate extremă.

− : Grafică de fundal deschisă.

4. Imagine în două culori

În cadrul terenului de joc, întreaga imagine devine bicoloră ( Elite , Chimera , Head Over Heels , Robocop , Quazatron , Terra Cresta ). Cu toate acestea, culoarea în care este vopsit terenul de joc poate purta și unele informații. În jocul Robocop acestea sunt niveluri diferite, în Quazatron acestea sunt locații diferite, în Terra Cresta sunt zone din cadrul nivelului. Adesea ( Draconus , Turbo Esprit ) partea principală a imaginii este în două tonuri și doar unele obiecte importante sunt redate în alte culori.

Majoritatea jocurilor pseudo-3D (curse) și izometrice sunt redate în acest fel.

+ : absența totală a artefactelor; fără restricții de mișcare; nici un management al atributelor.

− : Se pierde capacitatea de a desena în culoare.

5. Alinierea sprite-urilor după familiaritate

Pasul de mișcare a sprite-ului este limitat la o grilă de 8 pixeli. Această metodă este potrivită pentru jocurile care nu necesită redarea dinamică a scenelor (jocuri de strategie, logică), dar este folosită și pentru jocurile dinamice - așa am realizat un joc rapid Centipede [5] . Mișcarea spritelor și derularea fundalului în trepte de 8 pixeli sunt bine văzute în Savage , Astro Marine Corps , Dan Dare III , Extreme .

Acest mecanism nu ajută întotdeauna și este adesea completat de alte metode. De exemplu, jocurile Trapdoor și Flunky folosesc sprite-uri mari cu o umplere de culoare solidă, imaginea mare de fundal redându-și culoarea în culoarea de fundal a sprite-ului din față.

În unele cazuri, se folosește așa-numita deplasare sprite , atunci când doar un sprite (și, eventual, fundalul) este desenat într-o familiaritate 8x8. În Savage și Astro Marine Corps , sprite-ul din față îl înlocuiește complet pe cel din spate. Deplasarea sprite-ului este foarte vizibilă în jocul Golden Axe , care strică impresia generală a graficii jocului.

+ : simplitate; numai acest pas reduce serios artefactele.

− : nu întotdeauna potrivit, în jocurile dinamice duce la mișcare sacadată.

6. Schimbarea atributelor în mod dinamic

Unele demonstrații își schimbă atributele în mod dinamic, sincronizându-se cu scanarea orizontală a monitorului. Conflictele nu dispar, dar zona de conflict este redusă la 8x1 pixeli.

+ : Încercați să ocoliți limitele memoriei video.

− : Metoda necesită mult timp CPU.

Note

  1. 1 2 Arcade Colour, Illustration and Attribute Clash 1979-89 | David Surman - Academia.edu . Preluat la 23 iunie 2022. Arhivat din original la 23 iunie 2022.
  2. 1 2 L Break Into Program - ZX Spectrum Screen Layout Memory . Preluat la 23 iunie 2022. Arhivat din original la 3 iulie 2022.
  3. 1 2 3 Aspectul ecranului ZX-Spectrum: Partea I - Depășit de evenimente . Preluat la 23 iunie 2022. Arhivat din original la 31 martie 2022.
  4. Paletele PPU - NESdev Wiki . Preluat la 23 iunie 2022. Arhivat din original la 29 mai 2022.
  5. 1 2 3 Color Clash: The Engineering Miracle of the Sinclair ZX Spectrum - Paleotronic Magazine . Preluat la 23 iunie 2022. Arhivat din original la 18 mai 2022.
  6. Cele trei cele mai sofisticate Pac-Man de pe ZX Spectrum? - Youtube . Preluat la 27 iunie 2022. Arhivat din original la 27 iunie 2022.