motor sísmico | |
---|---|
Tipo de | Motor de juego ( Lista ) |
Desarrollador | Software de identificación |
programadores clave | John CarmackMichael Abrash |
Parte de una serie de motores | Identificación de tecnología |
Motor anterior de la serie | motor fatalidad |
El siguiente motor de la serie. | Identificación de tecnología 2 |
plataforma de hardware |
computadora personal playstation |
SO compatible | DOS , ventanas |
Escrito en lenguas | C , lenguaje ensamblador |
Licencia | libre , GNU GPL |
www.idsoftware.com |
Quake Engine (" Quake Engine ") es un motor de juego desarrollado en 1996 por la compañía estadounidense id Software para su uso en el juego de disparos en primera persona Quake . El motor Quake fue uno de los primeros motores capaces de procesar en tiempo real gráficos completamente en 3D . La empresa aplicó los desarrollos del motor en el desarrollo de motores de juegos de próxima generación: id Tech 2 e id Tech 3 , que se crearon para los juegos Quake II y Quake III Arena , respectivamente.
De acuerdo con la tradición de id Software , algún tiempo después de la exitosa licencia comercial, el motor se puso a disposición para su uso gratuito bajo los términos de la Licencia pública general de GNU , lo que implica el derecho a copiar, modificar y distribuir su contenido. Esto tuvo un gran impacto en el desarrollo del mundo del código abierto y también dio lugar a una gran cantidad de bifurcaciones : motores de juegos de terceros basados en el motor Quake .
Similar al motor de Doom , el motor de Quake utiliza un sistema de árboles BSP . El motor también utiliza sombreado gouraud para objetos en movimiento y mapas de luz para objetos estáticos.
La versión inicial del motor es compatible con los sistemas operativos DOS y Windows , sin embargo, el código fuente abierto y el uso del estándar OpenGL brindan amplias oportunidades para migrar el programa a otros sistemas operativos o plataformas (por ejemplo, a una consola de juegos ).
El motor fue escrito por el programador estadounidense John Carmack en 1996 en C específicamente para Quake . Michael Abrash también estuvo involucrado en el desarrollo , quien ayudó a Carmack con los algoritmos y la optimización del código ensamblador [1] .
El desarrollo del motor tuvo un gran impacto en el desarrollo de la industria de los juegos de computadora, así como en la forma en que se desarrollan. . De hecho, fue uno de los primeros motores en tener una arquitectura abierta. Esto significa que los desarrolladores tienen la flexibilidad de usar y modificar juegos, porque todos los recursos usados están contenidos en archivos separados con una extensión .PAK. Además, el motor contiene una consola que utiliza su propio sistema de comandos. Una característica notable es también el uso de archivos de configuración especiales para la personalización, que el usuario puede abrir en cualquier editor de texto . Estos archivos de texto contienen parámetros del juego relacionados con el procesamiento de gráficos y los controles. Al cambiar los parámetros en el archivo de texto, el usuario puede personalizar el juego a su gusto.
Gracias a la arquitectura abierta del motor del juego Quake , se desarrollaron una gran cantidad de modificaciones , algunas de las cuales pudieron cambiar el juego más allá del reconocimiento, agregar nuevas ubicaciones, armas, personajes e introducir sus propias reglas en el juego . Muchos modders de Quake establecieron posteriormente sus propias empresas en el mercado. Un ejemplo es el estudio Ritual Entertainment , que desarrolló el complemento oficial para la primera parte de Quake , y posteriormente otros proyectos independientes, como el shooter SiN . Al mismo tiempo, la creación de Quake condujo a una nueva etapa en el desarrollo de la industria de los juegos de computadora, prácticamente acabando con la era en la que un solo entusiasta podía desarrollar un juego de computadora comercial en poco tiempo .
El principal competidor de Quake en ese momento era Duke Nukem 3D , que usaba el motor de juego Build [2] . Esta tecnología usaba modelos de sprites y métodos de modelado de niveles obsoletos, lo que la hacía muy inferior al motor de Quake en términos de gráficos y, por lo tanto, no tuvo tanto éxito cuando los desarrolladores externos tenían licencia. El motor Quake fue la base para el desarrollo de GoldSource , la tecnología sobre la que se creó el juego Half-Life [1] [3] . Los juegos y las modificaciones en este motor todavía se lanzan activamente.
El juego de computadora Quake fue uno de los primeros juegos tridimensionales "completos" del mundo.
El juego utiliza un sistema especial de diseño de mapas que realiza un preprocesamiento y prerenderizado del entorno 3D para reducir la potencia necesaria para el procesamiento de imágenes durante el proceso del juego. Esta función tenía demanda, ya que en el momento en que se lanzó el juego, los procesadores estándar tenían una frecuencia de 50-75 MHz. El entorno 3D en el que se desarrolla el juego se refiere al mapa, aunque el entorno es de naturaleza 3D y no un espacio 2D plano. El programa de edición de mapas utiliza muchos objetos geométricos tridimensionales convexos simples, conocidos como "pinceles" (del cepillo inglés - cepillo ruso ), que tienen la capacidad de establecer su tamaño y grado de rotación; varios objetos del entorno pueden ser tales objetos.
Los cepillos se colocan y giran para crear espacios cerrados, vacíos y voluminosos. Cuando finaliza el diseño de un mapa, ese mapa pasa por el preprocesador de renderizado . Este preprocesador se utiliza para localizar dos tipos de espacios vacíos en el mapa: el espacio vacío creado por los pinceles en los que estará el jugador durante el juego; y otro espacio vacío que está fuera de los pinceles y que el jugador nunca verá. Luego, el preprocesador elimina las superficies invisibles de los pinceles individuales que están fuera del espacio del juego y deja solo aquellos polígonos que definen solo el perímetro exterior del espacio interior del juego; de esta manera, se logra una optimización significativa del motor y, como resultado, su se acelera el trabajo.
El archivo de mapa procesado puede tener significativamente menos polígonos que el archivo sin procesar original. En las computadoras de esa época, cuyos procesadores centrales tenían una frecuencia en la región de 50-70 MHz, era normal que la operación de clipping tomara muchas horas.
El proceso de preprocesamiento no se puede realizar si hay incluso un pequeño agujero o "fuga" ( filtración en inglés ) que conecta el espacio de juego interno con el espacio vacío externo. Este problema era común en mapas complejos con muchos objetos de construcción, ya que el diseñador de niveles no podía realizar un seguimiento de todas las fugas en el mapa. Para evitar fugas, los cepillos tenían que superponerse y penetrar un poco entre sí. Intentar alinear perfectamente los pinceles con formas extrañas a lo largo de sus bordes y caras podía generar espacios muy pequeños que eran muy difíciles de encontrar.
El cielo con nubes en los mapas del juego Quake en realidad no está abierto, pero está cubierto y cerrado desde el espacio exterior vacío con pinceles grandes, y también está texturizado con una textura especial de palco que siempre se ve igual desde cualquier punto de vista. Esto crea la ilusión de un horizonte sin fin.
Una vez que se ha preprocesado un mapa, ya no se puede modificar. En su lugar, los datos originales del editor de mapas, junto con los pinceles, se guardan y se utilizan para crear nuevas versiones del mapa. A pesar de esto, es posible editar el mapa procesado abriéndolo en un editor de vértices especial y editar los datos de vértice sin procesar, o agregar o eliminar polígonos específicos. Los tramposos usaban esta técnica para crear "ventanas" en las paredes para ver los movimientos de los oponentes durante el juego en línea . En los juegos modernos, es difícil hacer esto, ya que los juegos generalmente verifican la suma de verificación de cada archivo usando un programa anti-trampas, y si el archivo no coincide con el original, no se permite la entrada al juego en red.
El motor de Quake también hace uso de mapas de luz y luces 3D, a diferencia de la iluminación estática basada en sectores utilizada en juegos anteriores. Esta innovadora técnica de id Software comenzó a usarse en muchos juegos que se lanzaron después de Quake , especialmente en los juegos de disparos en primera persona. Al mismo tiempo, el propio id Software pasó a utilizar un nuevo modelo unificado de iluminación y sombras , aplicándolo en el motor id Tech 4 (el primer juego basado en él fue Doom 3 ) [4] .
Después de que el mapa se deshiciera de los polígonos adicionales, se utilizó un segundo sistema de preprocesamiento, que calculó e implementó mapas ligeros en el mapa del juego, lo que redujo aún más la carga en la CPU durante el juego.
Para optimizar el renderizado, se ha desarrollado una técnica que permite no procesar aquellas partes del espacio que actualmente no son visibles para el jugador (por ejemplo, están detrás de una pared). Si el jugador durante el juego no puede ver algún área del mapa que está cerca, entonces el motor puede de antemano no incluir objetos invisibles en el proceso de renderizado, lo que reduce significativamente la carga de la CPU.
Un motor 3D sin este tipo de optimización se vería obligado a dibujar cada parte del espacio del juego y luego tratar de determinar qué polígonos son los más cercanos. El motor no optimizado ocultaría todos los polígonos colocados detrás de los más cercanos (una técnica conocida como Z-buffering ).
Este efecto se puede ver en el juego como pequeños túneles con curvas en ángulo recto que conducen de un espacio grande a otro espacio grande (este truco de diseño es especialmente notable en el juego Half-Life , donde pequeños corredores en ángulo recto ocultan el siguiente nivel de juego) . Se usa un pequeño túnel para bloquear la vista en el espacio adyacente no renderizado, y se usa un tipo especial de pincel transparente (llamado visportal ) para definir los bordes donde el motor debe dejar de renderizar el espacio adyacente. En un juego de Quake , la capacidad de ver a través de la longitud total del mapa es bastante rara, los espacios abiertos suelen ser muy estrechos y altos, utilizando principalmente distancias "por encima" del cielo abierto y "por debajo" de la lava (en lugar de "más anchas" y " más lejos"); por lo tanto, se crea una ilusión de espacio abierto de baja poli.
RendimientoEl árbol de partición de espacio binario ( BSP ) creado a partir del mapa simplifica la búsqueda de un polígono a O (número de polígonos) . Cada hoja del árbol BSP crea una parte del espacio 3D (como cortar un pastel en rebanadas). Las hojas de este árbol binario tienen asociados los polígonos del mapa original, que luego se utilizan para calcular la visibilidad de cada área. Para cada área, el algoritmo VSD busca aquellas partes del mapa para las que hay una línea de visión. Esto se llama el Conjunto Potencialmente Visible ( PVS ) .
El proceso usa mucha memoria ya que tiene que tomar O (número de polígonos * número de polígonos) bits (solo se necesita información visible/oculta). John Carmack se dio cuenta de que una región solo ve una pequeña parte de otras regiones y comprimió esta información usando codificación de longitud de ejecución ( codificación RLE). Esto es lo que permitió que gráficos tan complejos para esa época funcionaran bastante rápido en el hardware de esa época.
El motor de Quake, además de ser uno de los primeros motores 3D del mundo, también fue el primer motor compatible con la aceleración de hardware 3D (aceleración). Inicialmente, el juego Quake (y por extensión el motor) solo tenía soporte para renderizado por software . Sin embargo, John Carmack creó más tarde una versión del motor que aprovechó el chip gráfico Vérité 1000 de Rendition (esta versión del motor se denominó internamente VQuake).
Pronto se agregó compatibilidad con OpenGL al motor para Windows 95 y superior (el nombre interno de esta versión es GLQuake). Muchos creen que esto fue lo que creó una especie de revolución en la producción y venta de tarjetas de video especializadas , que luego se necesitaban para cambiar el procesamiento de gráficos desde el procesador central, y GLQuake fue la primera aplicación que realmente demostró las capacidades del conjunto de chips de gráficos Voodoo. de 3dfx . Solo otras dos tarjetas fueron capaces de renderizar en GLQuake: la tarjeta Intergraph 3D OpenGL y la tarjeta PowerVR . Ambas tarjetas eran profesionales y muy caras.
A diferencia de los juegos de disparos en primera persona modernos , en los que el jugador controla por completo la mirada del protagonista con los movimientos del mouse de la computadora , Quake usa el teclado de forma predeterminada para girar a la izquierda y a la derecha, así como para moverse hacia adelante y hacia atrás. Puedes usar el mouse para hacer estos mismos movimientos, similar al juego Doom . Los movimientos del personaje eran bastante incómodos y requerían opciones como el nivel automático, que ajustaría automáticamente el punto de vista en función de los movimientos del jugador, y el objetivo automático para disparar a las cosas por debajo o por encima del personaje. El diseño de la ubicación en Quake fue simplificado y similar a los entornos pseudo- 3D (2.5D) en Doom. Solo unos pocos niveles del juego tenían un monstruo capaz de atacar un nivel por encima o por debajo del jugador.
Quake tenía la capacidad de seleccionar un mouse para el control de la mirada y un teclado para el movimiento, pero esta opción estaba deshabilitada de manera predeterminada. En el juego posterior de la serie Quake III Arena , esta posibilidad se tuvo en cuenta de inmediato.
Los jugadores experimentados usaban el control de visión del mouse y el movimiento del teclado tanto en modo individual como multijugador , ya que les permitía controlar mejor al personaje y realizar movimientos de rotación que podían esquivar disparos.
Inicialmente, el motor de Quake solo admitía el multijugador LAN y dos modos en línea, cooperativo y combate a muerte . Tal juego de red funcionaba según el principio cliente-servidor .
Esto significa que todos los jugadores, para iniciar un juego conjunto, se conectan a un servidor dedicado , que les envía una respuesta a los eventos del juego. Además, el uso de dicho principio protege a los jugadores de la desincronización del servidor. Dependiendo de la ruta específica al servidor, diferentes clientes tienen diferentes pings (la velocidad a la que se transmite un paquete de información en la red local). El ping alto de un jugador provoca un retraso , lo que dificulta su movimiento y lo hace más vulnerable a otros jugadores.
Se rediseñó el código de red del motor del juego y se lanzó un complemento independiente para Quake , QuakeWorld , que permitía a los jugadores jugar unos contra otros a través de una conexión a Internet utilizando modos de juego que se convertirían en clásicos. El modo multijugador del Quake original adquirió posteriormente el nombre LAN-Quake (del inglés Local Area Network, LAN - red local) en la comunidad de jugadores.
Una de las innovaciones de QuakeWorld es la predicción del lado del cliente . Este modo permite que la computadora del jugador prediga el movimiento de los objetos antes de que el servidor responda, lo que reduce significativamente los requisitos de velocidad de conexión a Internet, lo que abre el acceso al juego simultáneo en el servidor a una gran cantidad de personas.
Además de tener un gran impacto en los métodos de desarrollo de juegos y en la industria del juego en general, el motor Quake ha tenido un gran impacto en los métodos de diseño de juegos. Muchas de las tecnologías que se utilizan en el motor de Quake todavía tienen demanda en los motores de juegos modernos .
Prácticamente todos los juegos posteriores al terremoto y todos los juegos modernos usan una optimización 3D llamada preprocesamiento para aumentar la velocidad del juego en las PC y consolas de juegos de los usuarios . Es por eso que los juegos 3D pueden mostrar imágenes y efectos de tan alta calidad: la mayoría de los datos adicionales se eliminaron incluso antes de que el jugador pudiera verlos. La esencia del preprocesamiento es que los objetos innecesarios se descargan de la RAM después de que se usan, por ejemplo, un jugador dispara un arma y los cartuchos usados que salen volando desaparecen inmediatamente (mientras se descargan de la memoria).
Todos los juegos difieren significativamente de los paquetes profesionales de modelado 3D ( CAD ). Los programas profesionales no tienen límites de tiempo para renderizar una imagen. No se puede eliminar nada para acelerar la representación de un modelo técnico 3D , ya que cualquier parte del diseño de ese modelo puede cambiar en cualquier momento. Por esta razón, las tarjetas gráficas profesionales eran significativamente más caras y potentes que las tarjetas gráficas que se usaban en las computadoras domésticas para ejecutar juegos de computadora. Las tarjetas gráficas profesionales deben tener una potencia de procesamiento considerablemente mayor, ya que se ocupan de la complejidad total del espacio 3D en bruto.
Dado que Quake fue el primer juego completamente en 3D de este tipo, tenía que poder ejecutarse en una computadora que no tuviera un acelerador de video, por lo que incluía amplias oportunidades en cuanto al procesamiento de imágenes del software, es decir, el proceso de salida de gráficos no falla. en la tarjeta de video, sino en la CPU.
En ese momento, los aceleradores de video constituían un mercado nuevo e impredecible, y había incertidumbre sobre si tendrían demanda o no. Las tarjetas gráficas son ahora un mercado bien conocido y altamente desarrollado y son un componente necesario de cualquier computadora nueva. La gran mayoría de los juegos de computadora modernos no pueden ejecutarse en absoluto a menos que esté disponible la aceleración 3D de hardware, es decir, una tarjeta de video , mientras que los juegos de la época usaban predominantemente el procesador para generar gráficos.
La siguiente es una lista de juegos comerciales que usan el motor Quake [5] .
Los juegos creados con motores basados en Quake (como DarkPlaces ) no se incluyen en la lista.
Se han lanzado numerosos editores de mapas para el motor Quake y los modders los utilizan .
Muchos de los editores a continuación también son compatibles con versiones posteriores del motor: id Tech 2 e id Tech 3 , así como sus modificaciones.
El motor Quake fue la base para el desarrollo de otra tecnología de id Software , el motor id Tech 2 (anteriormente conocido como motor Quake 2). Los motores posteriores de la empresa, como Id Tech 3 (para el juego Quake III Arena ) e id Tech 4 (utilizado por primera vez en Doom 3 ), probablemente también contengan pequeños fragmentos de código fuente del primer motor de la serie , porque fueron basado en versiones anteriores. También se ha abierto el código fuente de id Tech 2, id Tech 3 e id Tech 4.
Valve usó el motor de juego Quake con código de red QuakeWorld incorporado durante el desarrollo de Half-Life . Al ser reescrito en gran medida, se denominó GoldSrc (GoldSource) [1] [3] . Anteriormente , las publicaciones de juegos describían el motor de Half-Life como basado en la tecnología unificada de Quake . Según algunos informes, algunos desarrollos del motor Id Tech 2 también se integraron en el motor . En las capturas de pantalla antiguas del juego, realizadas en el período de desarrollo, se puede ver que el motor utiliza activamente las sombras dinámicas de los objetos [6] . Su soporte probablemente se eliminó de la versión final del juego, ya que los desarrolladores decidieron que las computadoras domésticas de esa época aún no estaban listas para un procesamiento tan complejo.
El motor del juego Half-Life 2 ( Fuente ) se basa en el motor de Half-Life y, por lo tanto, contiene pequeñas secciones del código del motor de Quake [7] .
El código abierto del motor Quake el 21 de diciembre de 1999 resultó en una gran cantidad de bifurcaciones y también permitió a los entusiastas portar el motor a otras plataformas como el sistema operativo móvil Symbian o Java .
Los motores de juegos gratuitos más conocidos basados en el motor Quake son DarkPlaces [8] y Tenebrae . Ambas tecnologías admiten efectos de sombreado complejos, mapeo de relieve , iluminación compleja y otros efectos visuales avanzados, como la representación HDR , así como sombras dinámicas.
Software de identificación | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Juegos |
| ||||||||||||||||
Empleados |
| ||||||||||||||||
Compañía |
| ||||||||||||||||
Tecnología | |||||||||||||||||
Otro |
|