SVGAlib , cuyo nombre significa "Linux SuperVGA Graphics Library", es una biblioteca gráfica de bajo nivel de código abierto heredada para acceder al hardware SuperVGA en sistemas compatibles con PC que se ejecutan en Linux , con versiones posteriores para AmigaOS y FreeBSD . SVGAlib permitía a los programas cambiar el modo de vídeo para mostrar gráficos a pantalla completa, sin utilizar un sistema de ventanas . [ 3 ] [ 4 ] Junto con X11 y la Interfaz Gráfica General , fue una de las primeras bibliotecas que permitieron videojuegos gráficos en Linux .
Aunque todavía está disponible en línea, SVGAlib no ha tenido actualizaciones de código desde julio de 2006 ( hace 20 años ) y se considera obsoleto y descontinuado.
Historia
La primera versión de SVGAlib se basó en la versión 1.2 de otra biblioteca, VGAlib de Tommy Frandsen. [ 5 ] SVGAlib agregó soporte para muchos más conjuntos de chips SuperVGA y modos de video.
Varios juegos como Maelstrom de Ambrosia Software por Sam Lantinga , los juegos en primera persona Freaks! y Space Plumber [ 6 ] [ 7 ] que usan la biblioteca QDGDF, [ 8 ] [ 9 ] y, más famosos aún, Doom de id Software (junto con una versión X11 ) y Quake (después de la presentación de un parche de terceros basado en código fuente filtrado [ 10 ] ) fueron portados para usar SVGAlib de otros sistemas operativos, [ 11 ] al igual que Abuse del porter de Doom Dave Taylor .
Wolfenstein 3D también fue adaptado tras la publicación de su código fuente en 1995, [ 12 ] así como Heretic , Hexen y Hexen II producidos por id después de 1999, [ 13 ] y Descent y Descent II por Parallax Software después de 1998. [ 14 ] Ciertos ports de código fuente para Doom , Quake y Abuse mantuvieron la compatibilidad con SVGAlib. [ 15 ] La biblioteca también es compatible con el emulador MAME / MESS . [ 16 ]
Los juegos de Linux de primera parte que lo han soportado incluyen Alizarin Tetris , [ 17 ] Bdash , [ 18 ] Fleuch , [ 19 ] Hatman , [ 20 ] Intelligent FRAC , [ 21 ] Koules , [ 22 ] LinCity , [ 23 ] [ 24 ] Linberto , [ 25 ] Quadra , [ 26 ] Repton , [ 27 ] SABRE , [ 28 ] Thrust (también soporta GGI ), [ 29 ] Zarch , [ 30 ] y Zblast , [ 31 ] entre otros. [ 32 ] [ 33 ] [ 34 ]
SVGAlib fue popular a mediados y finales de la década de 1990. [ 35 ] [ 36 ] Jay Link escribió un libro de referencia, Linux Graphics Programming with SVGAlib , en 2000. [ 37 ] Alrededor del cambio de milenio, muchas aplicaciones que lo usaban migraron a X11 y SDL , [ 38 ] que podían (hasta SDL 2.0) usar SVGAlib como controlador de video. [ 39 ] [ 40 ] Esto se debió en parte a los riesgos de escalada de privilegios debido a que SVGAlib requería que las aplicaciones se ejecutaran como el usuario 'root' . [ 41 ] [ 42 ] [ 43 ]
Referencias
- ↑ Pitzel, Brad (1994-02-12). "Lanzamiento de Sasteroids v1.0 (juego arcade vga)" . Recuperado el 2023-10-01 .
Esto comenzó como una adaptación directa de xasteroids para ejecutarse bajo svgalib (biblioteca gráfica super-vga de Harm Hanemaayer).
- 1 2 "SVGALIB" . Consultado el 16 de octubre de 2022 .
- ↑ Link, Jay. "Tutoriales de SVGAlib" . www.svgalib.org . Consultado el 16 de octubre de 2022 .
- ↑ Link, Jay (30 de septiembre de 1999). "Gráficos fáciles: una guía para principiantes de SVGAlib" . Developer.com . Consultado el 29 de septiembre de 2023 .
- ↑ "svgalib(7): biblioteca gráfica de bajo nivel para - página man de Linux" . linux.die.net . Consultado el 16 de octubre de 2022 .
- ↑ Wilson, Hamish (2024-09-03). "Construyendo una computadora de juegos Linux retro Parte 43: Demonios y ángeles" . GamingOnLinux . Recuperado el 2024-09-04 .
- ↑ "Reseña de Space Plumber 1.1.0 RC1" . Nixbit . Consultado el 29 de septiembre de 2023 .
- ↑ Equipo de desarrollo de TTC (01/01/2001). "Marco de desarrollo de juegos rápido y sencillo" . Recuperado el 07/06/2024 .
- ↑ "Reseña rápida y sencilla de Game Development Framework 0.9.1" . Nixbit . Consultado el 7 de junio de 2024 .
- ↑ Wilson, Hamish (27 de febrero de 2023). "Construyendo una computadora de juegos Linux retro - Parte 27: Almas perdidas" . GamingOnLinux . Recuperado el 27 de febrero de 2023 .
- ↑ Karim, Jawed. "Porting MS-DOS Graphics Applications" . ACM . Consultado el 29 de septiembre de 2023 .
- ↑ DarkOne (10-04-2005). "Wolfenstein3D Links" . NewWolf . SourceForge . Consultado el 26-09-2023 .
Linux Wolf: se ejecuta en una ventana (xwolf3d) o con svgalib (swolf3d).
- ↑ Wilson, Hamish (15 de marzo de 2022). "Construyendo una computadora de juegos Linux retro - Parte 16: Todos estamos condenados" . GamingOnLinux . Recuperado el 29 de septiembre de 2023 .
- ↑ ptesone (06-04-2004). "¡Solo se puede ejecutar d1x como root!" . Preguntas sobre Linux . Consultado el 04-10-2023 .
- ↑ Wilson, Hamish (2023-11-06). "Construyendo una computadora de juegos Linux retro Parte 34: Abusando del sistema" . GamingOnLinux . Recuperado el 2023-11-07 .
- ↑ "Ayuda de SVGAlib" . Easy MAMECab . Consultado el 07/12/2023 .
- ↑ "Alizarin Tetris" . El hogar de los desvalidos . Archivado del original el 3 de enero de 2006. Consultado el 29 de septiembre de 2023 .
- ↑ "Clones gratuitos de Boulder Dash - Unix" . Boulderdash - Sitio web de fans de Boulder Dash de Martijn . Consultado el 7 de noviembre de 2023. Un
clon de Boulder Dash para Linux con gráficos de 256 colores y sonidos digitalizados. Requiere la biblioteca svgalib.
- ↑ Kroll, Jason (31 de enero de 2000). "ENFOQUE EN LOS JUEGOS" . Linux Journal . Recuperado el 18 de diciembre de 2023 .
- ↑ Wilson, Hamish (12/12/2023). "Construyendo una computadora de juegos retro Linux Parte 36: Entretenimiento para X Windows" . GamingOnLinux . Recuperado el 15/12/2023 .
Hatman - The Game of Kings es un impresionante pero poco pulido clon SVGAlib de Pacman que tiene un paquete RPM en el disco pero lamentablemente tenía el soporte de sonido deshabilitado en la compilación. Hubo varios otros clones de Pacman presentados, pero este tenía el mayor potencial.
- ↑ "FRAC inteligente" . Caminantes sobre hielo . 2003-11-20 . Consultado el 2023-09-29 .
- ↑ "Impresiona a tus amigos con RPM" . Preguntas frecuentes oficiales de Red Hat Linux . Instituto Tecnológico de Massachusetts . Consultado el 29 de septiembre de 2023 .
- ↑ Heuser, Werner; Hampton, Wade W. (27-02-2003). "Juegos" . Linux Ecology HOWTO . Recuperado el 29-09-2023 .
lincity construye y mantiene una ciudad/país. Debes construir y mantener una ciudad. Debes alimentar, alojar, proporcionar empleos y bienes a tus residentes. Puedes construir una economía sostenible con la ayuda de energía renovable y reciclaje, o puedes arriesgarte y construir cohetes para escapar de un planeta plagado de contaminación y escasez de recursos, depende de ti. Debido a los recursos finitos disponibles en cualquier lugar, este no es un juego que puedas dejar por largos períodos de tiempo. Este juego es similar al juego de simulación comercial con un nombre similar. Este paquete proporciona archivos comunes a las versiones X y SVGALIB del juego.
- ↑ Wilson, Hamish (04/09/2023). "Construyendo una computadora de juegos Linux retro Parte 32: Dos pasos adelante, uno atrás" . Recuperado el 29/09/2023 .
Además de no estar en consonancia con la estética, la pantalla LCD también tenía la molesta costumbre de mostrar una advertencia de estar fuera de rango sobre lo que de otro modo parecía ser una pantalla funcional, especialmente al jugar juegos que utilizaban SVGAlib para gráficos. Podía evitar esto ejecutando ciertos juegos de SVGAlib más compatibles, como la versión final de LinCity, antes de iniciar las aplicaciones problemáticas, ya que por alguna razón esto parecía calmar los nervios de la pantalla, pero estaba más que feliz de dejar atrás esos dolores de cabeza.
- ↑ "Linberto" . The Linux Game Tome . 5 de abril de 2001. Consultado el 29 de septiembre de 2023 .
- ↑ "Qundra" . Caminantes sobre hielo . 26 de febrero de 2012. Consultado el 29 de septiembre de 2023 .
- ↑ Marten, Jonathan (2015-12-08). "KRepton versión 4" . Recuperado el 29-09-2023 .
KRepton fue escrito originalmente por Sandro Sigala para Linux usando la biblioteca SVGAlib, y luego reescrito completamente usando las bibliotecas QT y KDE para la versión 1.0 de KDE.
- ↑ Ayers, Larry (1998-07-01). "Sabre: Un simulador de vuelo Svgalib" . Linux Gazette . Recuperado el 29 de septiembre de 2023 .
- ↑ Payne, Dennis (2021-09-20). "Open Game Source: Inertia Blast" . LinkedIn . Recuperado el 29/09/2023 .
Cuando instalé Linux por primera vez, me topé con una nueva versión de Thrust. Era brutalmente difícil, pero disfruté del juego. En ese momento lo ejecutaba con svgalib, un antiguo sistema gráfico de consola que requería acceso de superusuario.
- ↑ Van Os, Thom. "Software" . Thom's Toys . Archivado del original el 3 de marzo de 2016. Consultado el 18 de diciembre de 2023 .
- ↑ "zblast-svgalib" . Linux Mint . Consultado el 29 de septiembre de 2023 .
- ↑ "Índice de /pub/Linux/games/video" . ibiblio . Consultado el 29 de septiembre de 2023 .
- ↑ Weller, Michael. "svgalib(7) - Página man de Linux" . die.net . Consultado el 29 de septiembre de 2023 .
- ↑ "Juegos" . Preguntas frecuentes oficiales de Red Hat Linux . Instituto Tecnológico de Massachusetts . Consultado el 29 de septiembre de 2023 .
- ↑ Pranevich, Joseph (1999-04-01). "Linux 2.2 y el software de consola de búfer de fotogramas" . Linux Journal . Consultado el 29 de septiembre de 2023. Dejando
a un lado sus limitaciones, SVGAlib ha demostrado ser una solución estable y popular al problema de la consola y es la interfaz principal utilizada en Quake y otros juegos.
- ↑ Wallis, Alistair (26 de mayo de 2008). "Entrevista extra: '¿Cuál es el estado de... los juegos en Linux?'"" . Desarrollador de juegos . Consultado el 29/09/2023 .
Siempre he sido un friki de los videojuegos, así que era importante para mí ver cuánto podía jugar en este nuevo sistema. Recuerdo lo emocionante que fue hacer funcionar Doom en pantalla completa: [la biblioteca gráfica] svgalib era un monstruo que estoy seguro de que nadie echa de menos hoy en día. También me impresionó bastante Maelstrom, una versión para Linux de un elegante clon de Asteroids para Mac.
- ↑ timothy (26-10-2000). "Programación gráfica en Linux con SVGAlib" . Slashdot . Consultado el 29-09-2023 .
- ↑ "SDL Sasteroids" . The Linux Game Tome . 1 de abril de 2005. Consultado el 29 de septiembre de 2023. SDL
Sasteroids es una revisión importante del juego original Sasteroids para que pueda ejecutarse en sistemas modernos. Además de ofrecer una jugabilidad muy similar a la del juego original Sasteroids, se han añadido algunas sorpresas y actualizaciones para que resulte divertido tanto para los nuevos como para los antiguos fans.
:) Sasteroids era originalmente un juego de Asteroids escrito para svgalib.
- ↑ "Preguntas frecuentes: Uso de SDL" . wiki.libsdl.org .
- ↑ Armstrong, Ryan (18 de noviembre de 2020). "Old X Games" . Zerk Zone . Consultado el 29 de septiembre de 2023.
Dicho esto, probablemente publicaré información sobre los juegos de SVGAlib en el futuro, ya que fueron un paso fascinante y olvidado hacia SDL.
- ↑ "Itetris 1.6.1/1.6.2 - Ejecución de comandos arbitrarios privilegiados" . Base de datos de exploits . 19/12/2000 . Consultado el 29/09/2023 .
- ↑ Wilson, Hamish (27 de febrero de 2023). "Construyendo una computadora de juegos Linux retro - Parte 27: Almas perdidas" . GamingOnLinux . Recuperado el 29 de septiembre de 2023 .
- ↑ Zimbinski, Bob (1998-08-30). "Linux Quake HOWTO" . 0.1.14 . Recuperado el 29-09-2023 .
Los servidores Quake y QuakeWorld pueden ser ejecutados por cualquier usuario. Sin embargo, los clientes Quake necesitan acceso a las tarjetas de sonido y gráficas, lo que requiere privilegios que los usuarios normales no tienen. Una forma (mala) de lidiar con esto es ejecutar siempre Quake como root. Los administradores de sistemas responsables se estremecerán ante esta sugerencia tan desagradable. Hacer que los binarios de Quake sean setuid root es una solución más aceptable. Quake puede entonces ser ejecutado por usuarios normales y aún así tener los privilegios que necesita para acceder a los dispositivos de sonido y gráficos. Sin embargo, setuid presenta un riesgo de seguridad. Un usuario astuto podría explotar un error o una vulnerabilidad de seguridad en Quake para obtener acceso root a su sistema. Por supuesto, si no ejecuta un sistema multiusuario, esto puede no ser una gran preocupación.
Enlaces externos
- Página principal de SVGAlib
- La página de SVGAlib de Matan Ziv-Av es un reflejo de la página de "desarrollo" del sitio principal de SVGAlib.
- SVGAlib - Lista universal de videojuegos
- Bibliotecas informáticas gratuitas
- Bibliotecas gráficas
- Software de desarrollo de videojuegos para Linux