id Tech 4 , conocido popularmente como motor Doom 3 , es un motor de juego desarrollado por id Software y utilizado por primera vez en el videojuego Doom 3 . El motor fue diseñado por John Carmack , quien también creó motores de juegos anteriores, como los de Doom y Quake , que son ampliamente reconocidos como avances significativos en este campo. Este motor de juego basado en OpenGL también se ha utilizado en Quake 4 , Prey , Enemy Territory: Quake Wars , Wolfenstein y Brink . id Tech 4 está licenciado según los términos de la Licencia Pública General GNU v3.0 o posterior .
id Tech 4 comenzó como una mejora de id Tech 3 . Durante el desarrollo, inicialmente fue solo una reescritura completa del renderizador del motor , manteniendo al mismo tiempo otros subsistemas, como el acceso a archivos y la administración de memoria. La decisión de cambiar del lenguaje de programación C al C++ requirió una reestructuración y reescritura del resto del motor; Hoy en día, aunque id Tech 4 contiene código de id Tech 3, gran parte ha sido reescrito. [3]
En la QuakeCon 2007, John Carmack , desarrollador líder de motores gráficos en id, dijo a LinuxGames : "Quiero decir, no me comprometeré con una fecha, pero el material de Doom 3 será de código abierto". Y al igual que sus predecesores, John Carmack ha dicho que id Tech 4 se lanzará como código abierto . [4]
En la QuakeCon 2009, Carmack dijo que planeaba solicitar a ZeniMax Media que publicara la fuente de id Tech 4 tras el lanzamiento de Rage . [5] Como parte de su discurso de apertura en la QuakeCon 2011, confirmó que el código fuente de Doom 3 saldría a finales de año, después del lanzamiento de Rage . [6]
El 16 de noviembre de 2011, Carmack anunció en Twitter que estaba escribiendo un nuevo código para el lanzamiento de código abierto de Doom 3, porque "los abogados todavía están nerviosos por la cuestión de las patentes en torno al 'reverso de Carmack'". [7] Esto se refiere a una implementación de algoritmos de volumen de sombras almacenados en búfer de plantilla .
El 22 de noviembre de 2011, Carmack lanzó el código fuente de Doom 3 bajo GNU GPL-3.0 o posterior en GitHub . [8] La fuente no incluye ningún código de 'Carmack's Reverse'. Según Carmack, se realizaron pequeños ajustes al código para evitar cualquier infracción. [9] Desde entonces, se han lanzado varios proyectos de código abierto, como dhewm3, Dante y RBDOOM-3-BFG. [10] [11] [12] En 2021, las DLL del juego Quake 4 se adaptaron para su uso con el motor de código abierto dhewm3 derivado del código fuente publicado de Doom 3 (y el trabajo también comenzó en Prey ); Desde entonces, esto se ha utilizado para portar el juego a AmigaOS 4 . [13]
El requisito original de id Tech 4 era que necesitaba una unidad de procesamiento de gráficos (GPU) de alta gama con sombreadores de píxeles y vértices totalmente programables, como la Nvidia GeForce 3 o ATI Radeon 8500 , con al menos 64 MB de VRAM. En el E3 de 2002, la GPU recomendada era "100% compatible con DirectX 9.0b", como la Radeon 9700 con 128 MB de VRAM. Si bien las funciones DirectX 9.0 de la Radeon 9700 no son necesarias para renderizar el juego, se necesitaba su arquitectura avanzada, bus de memoria de 256 bits y eficiencia para ejecutar Doom 3 con gran detalle y velocidad jugable. [14] El modo de gráficos "Ultra" incluido en Doom 3 ni siquiera funcionaba en tarjetas gráficas de alta gama en 2004, ya que el motor requería al menos 512 MB de memoria de vídeo para mostrarse correctamente y a velocidades reproducibles. [15]
id Tech 4 provocó la obsolescencia de los chips gráficos DirectX 7, como los populares GeForce 2 y Radeon 7200 , así como de los conjuntos de chips más antiguos como RIVA TNT2 y Rage 128 , y el renderizado por software (con un Intel GMA integrado ). Hasta la llegada de id Tech 4, una CPU potente podía compensar en cierta medida una tarjeta de video más antigua. Si bien John Carmack inicialmente advirtió a los jugadores que no compraran la GeForce 4 MX [16] (que los consumidores ocasionales a menudo confundían con la GeForce 4 Ti con capacidad DirectX 8, aunque en el mejor de los casos era una GeForce 2 mejorada ) [ cita requerida ] , su adopción algo generalizada Obligó a id Software a agregarlo a la lista de tarjetas compatibles. Ha habido casos de entusiastas que obligaron a Doom 3 a ejecutarse en chips gráficos no compatibles, como el obsoleto Voodoo 2 , pero estos no pueden renderizar la iluminación por píxel y el mapeo de relieve. [17]
Id Tech 4 agregó varias características gráficas nuevas ausentes en su predecesor, id Tech 3 . Estos incluían mapeo normal y resaltado especular . Se agregaron más funciones en el desarrollo de juegos sucesivos.
La principal innovación de id Tech 4 fue el uso de iluminación por píxel completamente dinámica , mientras que anteriormente, los motores 3D se habían basado principalmente en iluminación por vértice precalculada o mapas de luz y sombreado Gouraud . Si bien los efectos dinámicos habían estado disponibles antes (como luces dinámicas en movimiento), este efecto simplemente cambió el brillo de los vértices del polígono, y los colores del píxel simplemente se interpolaron entre los tres colores de los vértices de su polígono.
Este enfoque totalmente en tiempo real utilizado en Doom 3 , combinado con el uso de volúmenes de sombras, permitió luces y sombras más realistas [18] que en la generación anterior de motores de id. El método utilizado para crear los volúmenes de sombras es objeto de una patente de Creative , a la que Creative concedió permiso a id para utilizarlo en el motor de Doom 3 , a cambio de admitir las avanzadas tecnologías de sonido EAX de Creative. [19]
Los modelos utilizados en los juegos del motor id Tech 4 están animados mediante animación esquelética . El motor puede combinar varias animaciones para producir una máscara que se mueva correctamente para esas animaciones. Debido a que esto requiere un uso intensivo de la CPU, id trabajó un poco para optimizarlo mediante el uso de Streaming SIMD Extensions (SSE) de Intel . [20]
La versión original del motor id Tech 4 fue diseñada para ambientes algo oscuros y fue criticada por su aparente incapacidad para manejar áreas exteriores diurnas extremadamente grandes. La tecnología MegaTexture (una forma de clipmapping ) abordó este problema. Al pintar una única textura masiva (32,768×32,768 píxeles , aunque se ha extendido a dimensiones mayores en versiones recientes de la tecnología MegaTexture) que cubra todo el mapa poligonal y el terreno altamente detallado, se pueden lograr los efectos deseados. La MegaTextura también puede almacenar información física sobre el terreno, como la cantidad de tracción en ciertas áreas o indicar qué efecto de sonido se debe reproducir al caminar sobre partes específicas del mapa. es decir, caminar sobre roca sonará diferente a caminar sobre hierba. [21] El primer juego que utiliza MegaTexture es Enemy Territory: Quake Wars , basado en el motor Tech 4. Todos los juegos de id Tech 5 e id Tech 6 usan MegaTexture, con la excepción de The Evil Within , que usa un nuevo renderizador. [22] [23] Brink , que utiliza una versión muy modificada de id Tech 4, también utiliza texturas virtuales. [24] [25] Si bien la implementación es diferente de MegaTexture, se inspiró en ella. [26] [27]
id Tech 4 tiene un lenguaje de secuencias de comandos integral que se puede usar al crear mods y se usa en Doom 3 para controlar monstruos, armas y eventos de mapas. Este lenguaje de programación es similar a C++. [29]
Además del lenguaje de secuencias de comandos principal, idTech 4 también tiene otro lenguaje de secuencias de comandos que se utiliza para las GUI , tanto los menús como el HUD , y también para las GUI integradas en el mundo del juego. [30] Estas GUI del juego son lo suficientemente potentes como para que puedas, por ejemplo, ejecutar otro juego como el Doom original dentro del mundo del juego. [31]
A pesar de este nivel adicional de secuencias de comandos, también es posible crear modificaciones usando C++ para crear código nativo. [32]
Como resultado del acuerdo con Creative sobre la patente de los volúmenes de sombra, el motor id Tech 4 es compatible con OpenAL , incluidas las extensiones EAX específicas de Creative Technology . El trabajo para incluir el soporte de OpenAL fue realizado por Creative Technology, no por id. [33]
El motor utiliza un modelo tradicional cliente-servidor . Inicialmente se planeó tener un modelo de red peer-to-peer . [34] Esta parte del motor funciona de forma fundamentalmente similar al equivalente del id Tech 3 ; sin embargo, id Tech 4 expone mucho más protocolo de red a los desarrolladores de mods. [32]
Aunque Doom 3 solo admite 4 jugadores (y 8 en el paquete de expansión Resurrection of Evil ), el motor id Tech 4 se puede usar con más jugadores, y Quake 4 y Enemy Territory: Quake Wars admiten muchos más jugadores.
En comparación con los anteriores y ampliamente utilizados id Tech 3 ( motor Quake III Arena ) e id Tech 2 ( motor Quake II ), id Tech 4 ha tenido menos éxito en la concesión de licencias a terceros. [35] Esto es especialmente evidente en comparación con sus contemporáneos más cercanos, Unreal Engine 2 (2002) y Unreal Engine 3 (2006) de Epic Games . [36] id Software no estaba dispuesto a otorgar la licencia de su motor más nuevo antes de que se completara su "juego principal", Doom 3 . Sin embargo, el tiempo de desarrollo inesperadamente largo de Doom 3 entre 2002 y 2004 significó que no pudieron competir con el Unreal Engine 2 de Epic Games durante ese período. Muchos de los que obtuvieron la licencia de Unreal Engine 2 pudieron así hacer el cambio a Unreal Engine 3 más fácilmente.
Si bien id Tech 4 había tomado una nueva dirección con su iluminación dinámica por píxel , esta característica poco convencional tenía requisitos de hardware más elevados e inicialmente solo era útil en "juegos espeluznantes" (hasta la incorporación de MegaTexture ), mientras que un número cada vez mayor de desarrolladores preferían motores convencionales. que podrían renderizar grandes áreas al aire libre. También fue notable la relativa falta de escalabilidad descendente de id Tech 4 en comparación con los motores FPS de la competencia; id Tech 4 generalmente requería una GPU compatible con DirectX 8.0, como una GeForce 3 . El motor Source rival [a] aún podría ejecutarse en las GPU DirectX 7 más antiguas y extendidas, aunque sin el uso de sombreadores .
{{cite web}}
: Mantenimiento CS1: URL no apta ( enlace ){{cite web}}
: Mantenimiento CS1: copia archivada como título ( enlace )