Conflicto de atributos

El conflicto o choque de atributos es un artefacto  gráfico que aparece en las computadoras domésticas antiguas y está asociado con limitaciones de hardware. Mejor conocido por los usuarios de ZX-Spectrum .

Las computadoras comerciales, a diferencia de las domésticas, redujeron la paleta de colores, pero no permitieron tales restricciones; cualquier píxel podría escribirse en cualquier color desde N . CGA tenía solo 4 colores, mientras que Apple Macintosh era generalmente monocromo.

Motivo

Para ahorrar memoria y agilizar el trabajo, los primeros ordenadores a color no permitían asignar ningún color a ningún píxel . En cambio, la pantalla se dividió en bloques, y cada bloque recibió dos colores: primer plano y fondo. En cada uno de los bloques, el píxel tenía uno de estos dos colores (y estaba codificado con un bit). Al intentar mostrar tres colores en un bloque, uno de estos tres colores se pierde, lo que genera artefactos específicos [1] .

En particular, el ZX-Spectrum asignó un atributo de 1 byte a cada espacio de caracteres de 8 × 8 píxeles: un color de primer plano de tres bits INK, un color de fondo de tres bits PAPER, 1 bit de brillo BRIGHTy 1 bit de parpadeo FLASH[2] [3 ] . Esto dio 15 colores (solo en ciertas combinaciones de "controlador de video + TV" , el negro se distingue de alguna manera del negro brillante) [3] . Así, a una resolución de 256×192, la memoria de vídeo ocupaba sólo 6912 bytes [2] [3] . Por cierto, el efecto de parpadeo se usó muy raramente, incluso debido al hecho de que el área de parpadeo claramente consiste en bloques cuadrados.

En MSX 1, el atributo se asigna a bloques horizontales de 8×1 píxeles. Además, había sprites de hardware que no entraban en conflicto entre sí ni con el fondo. Sin embargo, cuando se portaba desde el ZX-Spectrum , los bytes de atributo a menudo se multiplicaban, pero no se usaban sprites, lo que conducía a un juego casi indistinguible. En NES, la zona de conflicto es de 8 × 8 píxeles, pero con sprites de hardware, desplazamiento de hardware y una paleta amplia (52 colores en total, simultáneamente 8 paletas de 3 colores + base [4] ) esto apenas se nota.

Las imágenes estáticas, por supuesto, se construyen teniendo en cuenta las limitaciones de la memoria de video. En los juegos , la imagen se construye dinámicamente y el problema debe resolverse de alguna manera.

Formas de luchar

1. Utilice el atributo de fondo

Este es el método más fácil de programar: el programador solo manipula los píxeles sin tocar el plano de atributos. En este caso, no hay ningún "ladrillo" de color, pero el sprite se pierde en el fondo ( Double Dragon [1] [5] ).

Para que este método brinde resultados de alta calidad, se desarrolló un estilo especial ( Saboteur!, Bomb Jack , Cyclone , Strike Force Cobra ). El diseño del juego se basa en el negro , el color negro está en casi todas partes: en los patrones de las paredes, en las decoraciones, en la ropa de los enemigos... El color que no es negro juega el papel de la iluminación: por ejemplo, un ninja negro corriendo por un la pared amarilla se vuelve negra y amarilla, contra el fondo de un cielo azul que el ninja es negro y azul. Habrá un conflicto si se abandona el negro en alguna familiaridad (los respaldos de las sillas en Saboteur II: Avenging Angel ).

+ : estilo visual interesante; la imagen en color se combina con artefactos menores; sin gestión de atributos.

− : Requiere que los caracteres sean negros, con un mínimo de líneas claras, y que los fondos sean en blanco y negro. Si este no es el caso, la familiaridad será claramente visible.

2. Usa el atributo sprite

El sprite extiende su atributo al fondo, dando como resultado un "ladrillo" de color que sigue al héroe. Este mecanismo se usa con poca frecuencia, generalmente solo para el personaje principal, pero no para los enemigos; por ejemplo, Pac-Mania [6] o una serie de juegos sobre Wally ( Everyone's a Wally , etc.)

+ : el sprite está separado por color del fondo; sin restricciones de estilo o movimiento.

− : Los artefactos son claramente visibles.

3. Fondo sólido, sprites de colores

Una de las formas más populares. El fondo está pintado en un color (la mayoría de las veces negro), con un mínimo de decoración, y el juego está construido de tal manera que la probabilidad de colisión entre dos objetos de diferentes colores es mínima. La mayoría de los elementos del nivel son intransitables y no causan conflicto; pocos son transitables, ya sea en primer plano y superpuestos a los sprites ( Exolon , Rex ), o extienden su atributo al sprite ( Dizzy ).

La mayoría de los juegos tipo laberinto se muestran de esta manera: Manic Miner [5] , Monty series , Abu Simbel Profanation , Cybernoid , Into The Eagle's Nest . También es típico de los tiradores de desplazamiento espacial ( Zynaps , R-Type ), ya que un fondo negro con una pequeña cantidad de puntos es muy adecuado para representar el espacio.

+ : extrema sencillez.

− : Gráficos de fondo claros.

4. Imagen de dos colores

Dentro del campo de juego, toda la imagen se convierte en dos tonos ( Elite , Chimera , Head Over Heels , Robocop , Quazatron , Terra Cresta ). Sin embargo, el color en el que está pintado el campo de juego también puede contener alguna información. En el juego Robocop , estos son niveles diferentes, en Quazatron son ubicaciones diferentes, en Terra Cresta son zonas dentro del nivel. A menudo ( Draconus , Turbo Esprit ) la parte principal de la imagen es de dos tonos y solo algunos objetos importantes se representan en otros colores.

La mayoría de los juegos pseudo-3D (carreras) e isométricos se renderizan de esta manera.

+ : ausencia total de artefactos; sin restricciones de movimiento; sin gestión de atributos.

− : Se pierde la capacidad de dibujar en color.

5. Alineación de sprites por familiaridad

El paso de movimiento del sprite está limitado a una cuadrícula de 8 píxeles. Este método es muy adecuado para juegos que no requieren representación dinámica de escenas (estrategia, juegos de lógica), pero también se usa para juegos dinámicos: así es como logramos un juego rápido Centipede [5] . El movimiento de los sprites y el desplazamiento del fondo en incrementos de 8 píxeles se ven bien en Savage , Astro Marine Corps , Dan Dare III , Extreme .

Este mecanismo no siempre ayuda y, a menudo, se complementa con otros métodos. Por ejemplo, los juegos Trapdoor y Flunky usan sprites grandes con un relleno de color sólido, con la imagen de fondo grande mostrando su color en el color de fondo del sprite frontal.

En algunos casos, se utiliza el llamado desplazamiento de sprite , cuando solo se dibuja un sprite (y, posiblemente, el fondo) en una familiaridad de 8x8. En Savage y Astro Marine Corps , el sprite frontal reemplaza completamente al sprite trasero. El desplazamiento de Sprite es muy notable en el juego Golden Axe , lo que estropea la impresión general de los gráficos del juego.

+ : simplicidad; este paso por sí solo reduce seriamente los artefactos.

− : no siempre adecuado, en juegos dinámicos provoca movimientos bruscos.

6. Cambiando Atributos Dinámicamente

Algunas demostraciones cambian los atributos dinámicamente, sincronizándose con el escaneo horizontal del monitor. Los conflictos no desaparecen, pero la zona de conflicto se reduce a 8x1 píxeles.

+ : Intento de eludir los límites de la memoria de video.

− : El método consume mucho tiempo de CPU.

Notas

  1. 1 2 Arcade Color, Ilustración y Choque de atributos 1979-89 | David Surman-Academia.edu . Consultado el 23 de junio de 2022. Archivado desde el original el 23 de junio de 2022.
  2. 1 2 L Break Into Program - Diseño de memoria de pantalla de ZX Spectrum . Consultado el 23 de junio de 2022. Archivado desde el original el 3 de julio de 2022.
  3. 1 2 3 El diseño de la pantalla del ZX-Spectrum: Parte I - Superado por los eventos . Consultado el 23 de junio de 2022. Archivado desde el original el 31 de marzo de 2022.
  4. Paletas PPU - NESdev Wiki . Consultado el 23 de junio de 2022. Archivado desde el original el 29 de mayo de 2022.
  5. 1 2 3 Choque de colores: El milagro de la ingeniería del Sinclair ZX Spectrum - Paleotronic Magazine . Consultado el 23 de junio de 2022. Archivado desde el original el 18 de mayo de 2022.
  6. ¿Los tres Pac-Man más sofisticados del ZX Spectrum? - Youtube . Consultado el 27 de junio de 2022. Archivado desde el original el 27 de junio de 2022.