En gráficos por computadora , un sprite es un mapa de bits bidimensional que se integra en una escena más grande, con mayor frecuencia en un videojuego 2D . Originalmente, el término sprite se refería a objetos de tamaño fijo compuestos por hardware, con un fondo. [1] Desde entonces, el uso del término se ha vuelto más general.
La composición de hardware de los sprites ocurre cuando cada línea de escaneo se prepara para el dispositivo de salida de video, como un tubo de rayos catódicos , sin la participación de la CPU principal y sin la necesidad de un búfer de cuadros de pantalla completa . [1] Los sprites se pueden posicionar o modificar configurando los atributos utilizados durante el proceso de composición del hardware. La cantidad de sprites que se pueden mostrar por línea de escaneo suele ser menor que la cantidad total de sprites que admite un sistema. Por ejemplo, el chip Texas Instruments TMS9918 admite 32 sprites, pero solo cuatro pueden aparecer en la misma línea de escaneo.
Las CPU de las computadoras, consolas de videojuegos y dispositivos móviles modernos son lo suficientemente rápidas como para que los mapas de bits se puedan dibujar en un búfer de cuadros sin asistencia especial de hardware. Más allá de eso, las GPU pueden representar una gran cantidad de imágenes escaladas, rotadas, suavizadas, parcialmente translúcidas y de muy alta resolución en paralelo con la CPU.
Etimología
Según Karl Guttag, uno de los dos ingenieros del procesador de visualización de vídeo Texas Instruments TMS9918 de 1979 , este uso de la palabra sprite provino de David Ackley, gerente de TI. [2] También fue utilizado por Danny Hillis en Texas Instruments a finales de los años 1970. [3] El término se deriva del hecho de que los sprites "flotan" sobre la imagen de fondo sin sobrescribirla, muy parecido a un fantasma o un sprite mitológico .
Algunos fabricantes de hardware usaban términos diferentes, especialmente antes de que los sprites se volvieran comunes:
Player/Missile Graphics era un término utilizado por Atari, Inc. para los sprites de hardware en las computadoras Atari de 8 bits (1979) y la consola Atari 5200 (1982). [4] El término refleja el uso tanto de personajes ("jugadores") como de objetos asociados más pequeños ("misiles") que comparten el mismo color. El anterior Atari Video Computer System y algunos juegos arcade de Atari utilizaban jugador , misil y pelota .
Stamp se utilizó en algunos equipos de arcade a principios de la década de 1980, incluido Ms. Pac-Man . [5]
Movable Object Block , o MOB , se utilizó enla literatura sobre chips gráficos de MOS Technology . Commodore , el principal usuario de chips MOS y propietario de MOS durante la mayor parte de la vida del fabricante de chips, utilizó en su lugar el término sprite para el Commodore 64.
OBJ (abreviatura de objetos ) se utiliza en los manuales de desarrollador de NES , Super NES y Game Boy . La región de la RAM de video utilizada para almacenar atributos y coordenadas de sprites se llama OAM (Memoria de atributos de objetos). Esto también se aplica a Game Boy Advance y Nintendo DS .
Historia
videojuegos arcade
El uso de sprites se originó con los videojuegos arcade . A Nolan Bushnell se le ocurrió el concepto original cuando desarrolló el primer videojuego arcade, Computer Space (1971). ¡Las limitaciones técnicas dificultaron la adaptación del primer juego para mainframe Spacewar! (1962), que realizaba una actualización completa de la pantalla para cada pequeño movimiento, por lo que se le ocurrió una solución al problema: controlar cada elemento individual del juego con un transistor dedicado . Los cohetes eran esencialmente mapas de bits cableados que se movían por la pantalla independientemente del fondo, una innovación importante para producir imágenes de pantalla de manera más eficiente y proporcionar la base para gráficos de sprites. [6]
Los primeros videojuegos que representaron personajes de jugadores como sprites de jugadores humanos fueron videojuegos de deportes arcade , comenzando con TV Basketball de Taito , [7] [8] [9] lanzado en abril de 1974 y con licencia de Midway Manufacturing para su lanzamiento en Norteamérica. [10] Diseñado por Tomohiro Nishikado , quería ir más allá de los simples rectángulos estilo Pong a gráficos de personajes, reorganizando las formas de los rectángulos en objetos que parecen jugadores de baloncesto y aros de baloncesto . [11] [12] Ramtek lanzó otro videojuego de deportes en octubre de 1974, Baseball , [10] que mostraba de manera similar personajes parecidos a humanos. [13]
El Atari VCS , lanzado en 1977, tiene una implementación de sprites de hardware donde se pueden mover cinco objetos gráficos independientemente del campo de juego. El término sprite no se utilizaba en ese momento. Los sprites del VCS se denominan objetos móviles en el manual de programación, identificados además como dos jugadores , dos misiles y una pelota . [16] Cada uno de ellos consta de una sola fila de píxeles que se muestran en una línea de escaneo . Para producir una forma bidimensional, el mapa de bits de una sola fila del objeto se modifica mediante software de una línea de escaneo a la siguiente.
Las computadoras domésticas Atari 400 y 800 de 1979 tienen circuitos similares, pero más elaborados, capaces de mover ocho objetos de un solo color por línea de escaneo: cuatro reproductores de 8 bits de ancho y cuatro misiles de 2 bits de ancho . Cada uno ocupa toda la altura de la pantalla: una franja larga y delgada. DMA de una tabla en la memoria establece automáticamente los registros de patrones de gráficos para cada línea de escaneo. Los registros de hardware controlan la posición horizontal de cada jugador y misil. El movimiento vertical se logra moviendo los datos del mapa de bits dentro de la franja de un jugador o misil. Atari llamó a la característica gráficos de jugador/misil .
Texas Instruments desarrolló el chip TMS9918 con soporte para sprites para su computadora doméstica TI-99/4 de 1979. Se utiliza una versión actualizada en la TI-99/4A de 1981 .
Sistemas con sprites de hardware
Estas son especificaciones de hardware básicas y no incluyen técnicas de programación adicionales, como el uso de interrupciones ráster para reutilizar sprites a mitad del fotograma.
Ver también
2.5D
Referencias
^ ab La Haya, James. "¿Por qué existen las consolas de juegos dedicadas?". Programación en el siglo XXI . Archivado desde el original el 23 de abril de 2018 . Consultado el 2 de septiembre de 2019 .
^ Guttag, KArl (6 de diciembre de 2011). "Primero, sea útil (computadoras domésticas y proyectores Pico)". KGOnTech .
^ Johnstone, Bob (2003). No importa las computadoras portátiles: los niños, las computadoras y la transformación del aprendizaje. iUniverso. pag. 108.ISBN978-0595288427.
^ "De Re Atari". 1981. Archivado desde el original el 31 de julio de 2017 . Consultado el 10 de agosto de 2017 .
^ ab Steve Golson (2016). Postmortem del juego clásico: 'Ms. Pac-Man' (Conferencia). Conferencia de desarrolladores de juegos . El evento ocurre a las 20:30 . Consultado el 26 de enero de 2017 . […] 6 personajes en movimiento, lo que hoy llamarías "sprites" nosotros en aquel entonces los llamábamos "sellos", […].
^ Swalwell, Melanie; Wilson, Jason (12 de mayo de 2015). Los placeres de los juegos de computadora: ensayos sobre historia, teoría y estética cultural. McFarland y compañía . págs. 109-10. ISBN978-0-7864-5120-3. Archivado desde el original el 16 de mayo de 2021 . Consultado el 16 de mayo de 2021 .
^ Colby, Richard; Johnson, Mateo SS; Colby, Rebekah Shultz (27 de enero de 2021). La ética de jugar, investigar y enseñar juegos en el aula de escritura. Naturaleza Springer . pag. 130.ISBN978-3-030-63311-0. Archivado desde el original el 3 de mayo de 2021 . Consultado el 3 de mayo de 2021 .
^ Novedades en videojuegos Archivado el 5 de noviembre de 2017 en Wayback Machine , The Golden Age Arcade Historian (22 de noviembre de 2013)
^ Basketball Flyer Archivado el 8 de julio de 2014 en Wayback Machine (1974), Arcade Flyer Museum
^ ab Akagi, Masumi (13 de octubre de 2006). アーケードTVゲームリスト国内•海外編(1971-2005 ) [ Lista de juegos de Arcade TV: Edición nacional • Extranjera (1971-2005) ] (en japonés). Japón: Agencia de noticias de atracciones. págs. 40-1, 51, 129. ISBN978-4990251215.
^ Smith, Alexander (19 de noviembre de 2019). Crean mundos: la historia de las personas y empresas que dieron forma a la industria de los videojuegos, vol. Yo: 1971-1982. Prensa CRC . págs. 191–95. ISBN978-0-429-75261-2. Archivado desde el original el 2 de mayo de 2021 . Consultado el 16 de mayo de 2021 .
^ "スペースインベーダー・今明かす開発秘話――開発者・西角友宏氏、タイトー・和田洋一社.長対談" [Space Invader, historia secreta de desarrollo revelada ahora: entrevista con el desarrollador Tomohiro Nishikado y el presidente de Taito, Yoichi Wada]. El Nikkei (en japonés). 21 de marzo de 2008. Archivado desde el original el 23 de marzo de 2008 . Consultado el 3 de mayo de 2021 .
"Space Invaders - Entrevista al desarrollador del 30 aniversario". Shmulación .
^ Thorpe, Nick (marzo de 2014). "Los años 70: la génesis de una industria". Jugador retro . Núm. 127, págs. 24–7.
^ Dillon, Roberto (19 de abril de 2016). La edad de oro de los videojuegos: el nacimiento de una industria multimillonaria. Prensa CRC. ISBN9781439873243- a través de libros de Google.
^ Hacer realidad la Famicom, Nikkei Electronics (12 de septiembre de 1994)
^ Wright, Steve (3 de diciembre de 1979). "Guía del programador de Stella" (PDF) . Archivado (PDF) desde el original el 27 de marzo de 2016 . Consultado el 14 de abril de 2016 .
^ "Más - CPCWiki". Cpcwiki.eu. Archivado desde el original el 20 de julio de 2011 . Consultado el 29 de noviembre de 2009 .
^ "Adaptador de interfaz de televisión". AtariArchives.com. Archivado desde el original el 25 de agosto de 2010 . Consultado el 6 de febrero de 2011 .
^ "Preguntas frecuentes sobre Atari 5200: descripción general del hardware". AtariHQ.com. Archivado desde el original el 14 de mayo de 2011 . Consultado el 6 de febrero de 2011 .
^ "El controlador de vídeo MOS 6567/6569 (VIC-II) y su aplicación en el Commodore 64". Archivado desde el original el 30 de agosto de 2006 . Consultado el 8 de enero de 2006 .{{cite web}}: Mantenimiento CS1: bot: estado de la URL original desconocido ( enlace )
^ "Manual de referencia de hardware de Amiga 4: hardware de sprites". 1989. Archivado desde el original el 14 de agosto de 2017 . Consultado el 23 de mayo de 2017 .
^ "Especificaciones de Gameduino". excamera.com. Archivado desde el original el 13 de diciembre de 2021 . Consultado el 13 de junio de 2011 .
^ "STIC - Wiki de Intellivision". wiki.intellivision.us . Archivado desde el original el 9 de julio de 2018 . Consultado el 15 de marzo de 2018 .
^ TEXAS INSTRUMENTS 9900: Procesadores de visualización de vídeo TMS9918A/TMS9928AITMS9929A (PDF) . Archivado desde el original (PDF) el 14 de agosto de 2017 . Consultado el 5 de julio de 2011 .
^ Montfort, Nick; Bogost, Ian (9 de enero de 2009). Racing the Beam: el sistema informático de vídeo Atari. Prensa del MIT. ISBN9780262261524- a través de libros de Google.
^ "Aprenda la programación de ensamblaje 6502 multiplataforma ... ¡Para monstruos! Serie específica de plataforma". Archivado desde el original el 4 de diciembre de 2021 . Consultado el 4 de diciembre de 2021 .
^ "Hardware de vídeo derivado de galaxias". GitHub . MAME . Archivado desde el original el 30 de noviembre de 2017 . Consultado el 23 de octubre de 2018 .
^ "Hardware derivado de galaxias". GitHub . MAME . Archivado desde el original el 5 de septiembre de 2018 . Consultado el 23 de octubre de 2018 .
^ "Familia de hardware galáctico". GitHub . MAME . Archivado desde el original el 24 de febrero de 2021 . Consultado el 23 de octubre de 2018 .
^ Nathan Altice (2015), Soy un error: la plataforma del sistema de entretenimiento/computadora de la familia Nintendo, páginas 53 y 69 Archivado el 12 de noviembre de 2016 en Wayback Machine , MIT Press
^ "Especificaciones". Nocash.emubase.de. Archivado desde el original el 21 de junio de 2009 . Consultado el 29 de noviembre de 2009 .
^ "Microsoft Word - NESDoc.doc" (PDF) . Archivado (PDF) desde el original el 30 de septiembre de 2011 . Consultado el 29 de noviembre de 2009 .
^ "GameBoy - Spielkonsolen Online Lexikon". En-mix.de. 2004-06-22. Archivado desde el original el 6 de mayo de 2010 . Consultado el 29 de noviembre de 2009 .
^ "Especificaciones". Nocash.emubase.de. Archivado desde el original el 21 de junio de 2009 . Consultado el 29 de noviembre de 2009 .
^ Charles MacDonald. "Documentación de Sega Master System VDP". Archivado desde el original el 18 de marzo de 2014 . Consultado el 5 de julio de 2011 .
^ "Información técnica de Sega Master System" (TXT) . SMSpower.org . Archivado desde el original el 24 de junio de 2019 . Consultado el 28 de noviembre de 2016 .
^ "Preguntas frecuentes sobre programación de Sega, 18 de octubre de 1995, sexta edición - final". Archivado desde el original el 22 de enero de 2005 . Consultado el 10 de diciembre de 2015 .
^ Personal, Polígono (3 de febrero de 2015). "Cómo Sega construyó el Génesis". Polígono. Archivado desde el original el 3 de noviembre de 2015 . Consultado el 28 de noviembre de 2016 .
^ "Hardware Sega Out Run (Sega)". Sistema 16. 2016-03-31. Archivado desde el original el 28 de noviembre de 2016 . Consultado el 28 de noviembre de 2016 .
^ "mame/segaorun.c en master · mamedev/mame · GitHub". github.com . 21 de noviembre de 2014. Archivado desde el original el 21 de noviembre de 2014 . Consultado el 15 de marzo de 2018 .
^ "Salir corriendo". 2001-02-27. Archivado desde el original el 27 de febrero de 2001 . Consultado el 28 de noviembre de 2016 .
^ "Hardware fuera de ejecución (Sega)". Sistema 16. Archivado desde el original el 28 de noviembre de 2016 . Consultado el 29 de noviembre de 2009 .
^ "Versión 0.3 - 7 de febrero de 1998". Coinop.org . Archivado desde el original el 14 de mayo de 2016 . Consultado el 28 de noviembre de 2016 .
^ "Hardware común de Sega de 16 bits". Archivado desde el original el 25 de enero de 2016 . Consultado el 9 de febrero de 2016 .
^ Notas de hardware de "Sega" X-Board ". Archivado desde el original (TXT) el 18 de marzo de 2014 . Consultado el 28 de noviembre de 2016 .
^ "X68000-Museo de la Computación". Museo.ipsj.or.jp . Archivado desde el original el 2 de octubre de 2014 . Consultado el 28 de noviembre de 2016 .
^ "mame/x68k.c en master · mamedev/mame · GitHub". github.com . 21 de noviembre de 2014. Archivado desde el original el 21 de noviembre de 2014 . Consultado el 15 de marzo de 2018 .
^ Yoshida, Koichi (12 de septiembre de 2001). "超連射68K 開発後記". Página web de Yosshin (en japonés). Archivado desde el original el 12 de mayo de 2019 . Consultado el 28 de noviembre de 2016 .(Traducción de Shmuplations. Archivado el 2 de julio de 2019 en Wayback Machine ).
^ "Notas sobre el hardware de Neo-Geo MVS" (TXT) . Furrtek.free.fr . Archivado desde el original el 16 de septiembre de 2018 . Consultado el 28 de noviembre de 2016 .
^ "Manual de programación Neo-Geo" (PDF) . Furrtek.free.fr . Archivado (PDF) desde el original el 6 de diciembre de 2016 . Consultado el 28 de noviembre de 2016 .
^ "Gran lista de interruptores DIP de depuración". Neo-Geo. 2014-07-09. Archivado desde el original el 28 de noviembre de 2016 . Consultado el 28 de noviembre de 2016 .
^ "guía de diseño del motor snes sprite". 30 de marzo de 2021. Archivado desde el original el 4 de diciembre de 2021.