stringtranslate.com

identificación tecnología 3

Star Trek: Elite Force II fue uno de los últimos juegos en utilizar el motor id Tech 3.

id Tech 3 , conocido popularmente como motor Quake III Arena , es un motor de juego desarrollado por id Software para su videojuego Quake III Arena . Ha sido adoptado por numerosos juegos. En su época, compitió con Unreal Engine ; Ambos motores tenían amplias licencias.

Si bien id Tech 3 se basa en el motor id Tech 2 , se reescribió una gran cantidad del código. El sucesor id Tech 4 se derivó de id Tech 3, al igual que el motor IW de Infinity Ward utilizado en Call of Duty 2 en adelante.

En la QuakeCon 2005, John Carmack anunció que el código fuente de id Tech 3 se publicaría bajo la licencia pública general GNU v2.0 o posterior , y se publicó el 19 de agosto de 2005. Distribuido originalmente por id a través de FTP , [ 1] El código ahora se puede descargar desde la cuenta de GitHub de id .

Características

Gráficos

A diferencia de la mayoría de los otros motores de juegos lanzados en ese momento, incluido su principal competidor, Unreal Engine , id Tech 3 requiere un acelerador de gráficos compatible con OpenGL para funcionar. El motor no incluye un renderizador de software .

id Tech 3 introdujo superficies curvas basadas en splines además de volúmenes planos, que son responsables de muchas de las superficies presentes en el juego. [2]

Sombreadores

La tecnología gráfica del juego se basa estrechamente en un sistema de " sombreadores " donde la apariencia de muchas superficies se puede definir en archivos de texto denominados "scripts de sombreado". Los sombreadores se describen y representan como varias capas, cada capa contiene una textura, un "modo de fusión" que determina cómo superponerla sobre la capa anterior y modos de orientación de la textura, como mapeo del entorno, desplazamiento y rotación. Estas características se pueden ver fácilmente dentro del juego con muchas superficies brillantes y activas en cada mapa e incluso en los modelos de personajes. El sistema de sombreado va más allá de la apariencia visual, definiendo el contenido de los volúmenes (por ejemplo, un volumen de agua se define aplicando un sombreador de agua a sus superficies), la emisión de luz y qué sonido se reproducirá cuando se pise un volumen. [3] Para ayudar en el cálculo de estos sombreadores, id Tech 3 implementa una función de raíz cuadrada inversa rápida específica , que atrajo una gran cantidad de atención en la comunidad de desarrollo de juegos por su uso inteligente de operaciones con números enteros. [4] [5]

Video

Todos los vídeos del juego utilizan un formato propietario llamado "RoQ", que fue creado originalmente por Graeme Devine , el codiseñador de Quake 3 , para el juego The 11th Hour . Internamente, RoQ utiliza cuantificación vectorial para codificar vídeo y DPCM para codificar audio. Si bien el formato en sí es propietario, se le realizó ingeniería inversa con éxito en 2001, [6] y el decodificador RoQ real está presente en la versión del código fuente de Quake 3 . RoQ ha tenido poco uso fuera de los juegos basados ​​en los motores id Tech 3 o id Tech 4 , pero es compatible con varios reproductores de vídeo (como MPlayer ) y existen varios codificadores de terceros. Una excepción notable es el juego Postal 2: Apocalypse Weekend , basado en Unreal Engine , que utiliza archivos RoQ para sus escenas de introducción y cierre, así como para una escena de broma que se reproduce después de una misión al final de la primera parte.

Modelos

id Tech 3 carga modelos 3D en formato MD3. El formato utiliza movimientos de vértice (a veces llamado animación por vértice ) en lugar de animación esquelética para almacenar animación. Las funciones de animación en el formato MD3 son superiores a las del formato MD2 de id tech 2.5 porque un animador puede tener un número variable de fotogramas clave por segundo en lugar de los 10 fotogramas clave por segundo estándar de MD2. Esto permite animaciones más complejas que son menos "vibrantes" que los modelos que se encuentran en Quake II .

Otra característica importante del formato MD3 es que los modelos se dividen en tres partes diferentes que están ancladas entre sí. Normalmente, esto se utiliza para separar la cabeza, el torso y las piernas para que cada parte pueda animarse de forma independiente con el fin de combinar la animación (es decir, una animación de carrera en las piernas y una animación de disparo en el torso). Cada parte del modelo tiene su propio conjunto de texturas.

Los modelos de personajes se iluminan y sombrean usando sombreado Gouraud, mientras que los niveles (almacenados en formato BSP ) se iluminan con mapas de luz o sombreado Gouraud, según las preferencias del usuario. El motor es capaz de tomar luces de colores de la rejilla de luz y aplicarlas a los modelos, lo que da como resultado una calidad de iluminación que era, para su época, muy avanzada.

En la versión GPL del código fuente, faltaba la mayor parte del código relacionado con los archivos de animación esquelética MD4. [ cita necesaria ] Se supone que id simplemente nunca terminó el formato, [7] aunque casi todos los licenciatarios derivaron sus propios sistemas de animación esquelética a partir de lo que estaba presente. Ritual Entertainment hizo esto para usarlo en el juego Heavy Metal: FAKK² , el SDK que formó la base del soporte MD4 completado por alguien que usó el seudónimo Gongo. [8]

Sombras dinámicas

El motor es capaz de generar tres tipos diferentes de sombras. Simplemente se coloca un círculo con bordes descoloridos a los pies de los personajes, comúnmente conocida como la técnica de la "sombra de manchas". Los otros dos modos proyectan una sombra poligonal precisa sobre el suelo. La diferencia entre los dos últimos modos es la dependencia de sombras negras sólidas y opacas, mientras que el otro modo intenta (con éxito desigual) proyectar sombras de volumen de sombra de plantilla de paso profundo en un negro medio transparente. Ninguna de estas técnicas recorta los volúmenes de sombra, lo que hace que las sombras se extiendan por las paredes y a través de la geometría.

Otras características de renderizado

Otras características visuales incluyen niebla volumétrica , espejos, portales, calcomanías y distorsión de vértices en forma de onda.

Sonido

El sistema de sonido de id Tech 3 emite a dos canales utilizando un búfer de salida en bucle, mezclado a partir de 96 pistas con espacialización estéreo y efecto Doppler . Toda la mezcla de sonido se realiza dentro del motor, lo que puede crear problemas para los licenciatarios que esperan implementar EAX o soporte de sonido envolvente . [ cita necesaria ] Varios efectos populares, como los ecos, también están ausentes.

Un defecto importante del sistema de sonido es que el mezclador no tiene su propio hilo, [9] por lo que si el juego se detiene durante demasiado tiempo (especialmente mientras navega por los menús o se conecta a un servidor), el pequeño búfer de salida comenzará a repetirse. , un artefacto muy notable. Este problema también estaba presente en los motores Doom 3 , Quake y Quake II . [ cita necesaria ]

Redes

id Tech 3 utiliza un sistema de "instantáneas" para transmitir información sobre los "marcos" del juego al cliente a través de UDP . El servidor actualiza la interacción de objetos a una velocidad fija independiente de la velocidad que los clientes actualizan el servidor con sus acciones y luego intenta enviar el estado de todos los objetos en ese momento (el marco actual del servidor) a cada cliente. El servidor intenta omitir la mayor cantidad de información posible sobre cada cuadro, transmitiendo solo las diferencias con respecto al último cuadro que el cliente confirmó como recibido ( codificación Delta ). Todos los paquetes de datos se comprimen mediante codificación Huffman con datos de frecuencia estáticos precalculados para reducir aún más el uso del ancho de banda. [10]

Quake 3 también integró un sistema de protección contra trampas relativamente elaborado llamado "servidor puro". Cualquier cliente que se conecte a un servidor puro tiene automáticamente habilitado el modo puro y, mientras el modo puro está habilitado, solo se puede acceder a los archivos dentro de los paquetes de datos. Los clientes se desconectan si sus paquetes de datos no superan una de varias comprobaciones de integridad. El cgame.qvmarchivo, con su alto potencial de modificación relacionada con trampas, está sujeto a controles de integridad adicionales. [ cita necesaria ] Los desarrolladores deben desactivar manualmente el servidor puro para probar mapas o modificaciones que no están en paquetes de datos utilizando el formato de archivo PK3. Las versiones posteriores complementaron el servidor puro con soporte para PunkBuster , aunque todos los enlaces están ausentes en la versión del código fuente porque PunkBuster es un software de código cerrado e incluir soporte para él en la versión del código fuente habría causado que cualquier redistribuidor/reutilizador del código violara la GPL . [11]

Máquina virtual

id Tech 3 utiliza una máquina virtual para controlar el comportamiento de los objetos en el servidor, los efectos y la predicción en el cliente y la interfaz de usuario. Esto presenta muchas ventajas ya que los autores de mods no necesitan preocuparse por bloquear todo el juego con código incorrecto, los clientes podían mostrar efectos y menús de juego más avanzados de lo que era posible en Quake II y la interfaz de usuario para mods era completamente personalizable.

Los archivos de máquinas virtuales se desarrollan en ANSI C , utilizando LCC para compilarlos en un formato de pseudoensamblaje RISC de 32 bits . Luego, una herramienta llamada q3asm los convierte en archivos QVM, que son archivos multisegmentados que constan de datos estáticos e instrucciones basadas en un conjunto reducido de códigos de operación de entrada. A menos que se utilicen operaciones que requieran un endianismo específico , un archivo QVM se ejecutará igual en cualquier plataforma compatible con Quake 3.

La máquina virtual también contenía compiladores de código de bytes para las arquitecturas x86 y PowerPC , ejecutando instrucciones QVM a través de un intérprete .

terremoto3

Mapeo especular y normal automático en ioQuake3, cliente preliminar de Tremulous 1.3

Ioquake3 es un proyecto de motor de juego que tiene como objetivo aprovechar la versión del código fuente de id Tech 3 [12] [13] para eliminar errores, limpiar el código fuente y agregar características gráficas y de audio más avanzadas a través de SDL y OpenAL . ioquake3 también pretende actuar como un paquete base limpio, sobre el cual se pueden construir otros proyectos. El motor del juego admite el formato Ogg Vorbis y la captura de vídeo de demostraciones en formato .avi . [14]

El proyecto se inició poco después del lanzamiento del código fuente con el objetivo de crear una distribución de código fuente del motor Quake III mejorada y libre de errores en la que se puedan basar nuevos juegos y proyectos. Además, el proyecto tiene como objetivo proporcionar un entorno mejorado en el que se pueda jugar Quake III: Arena , el paquete de expansión Team Arena y todos los mods populares . [15] [16] [17] [18] Las características notables agregadas por el proyecto incluyen soporte VoIP incorporado , renderizado estéreo Anaglifo (para visualización con gafas 3D) y numerosas correcciones de seguridad. Una lista de algunas de las características está disponible en el sitio web del proyecto.

Ioquake3 ha sido la base de varios proyectos de juegos basados ​​en el motor id Tech 3, como OpenArena (imitando Quake III Arena ), [19] [20] Tremulous , [21] [22] Smokin' Guns , [23] Urban Terror , [24] [25] Turtle Arena y World of Padman [26] [27], así como proyectos de motores de juegos como efport (un proyecto de recreación del motor Star Trek: Voyager – Elite Force Holomatch ), ioJedi Outcast, [28] ioJedi Academia, [29] ioDoom3 [30] y OpenMoHAA . [31] El motor y sus juegos asociados se han incluido en varias distribuciones de Linux y BSD . [32] [33] [34] [35] [36] El motor cMod derivado del puerto Elite Force anterior se utilizó para empaquetar el lanzamiento de software gratuito del vigésimo aniversario del juego para Windows y Linux . [37]

El código fuente de los motores Return to Castle Wolfenstein y Wolfenstein: Enemy Territory se publicó bajo GNU GPL-3.0 o posterior el 12 de agosto de 2010. [38] Los desarrolladores de ioquake3 anunciaron el inicio de los respectivos proyectos de motor (iortcw, [39 ] [40] iowolfet, ET: Legacy [41] ) poco después. [42]

El proyecto ioquake3 también se ha utilizado en el ámbito académico como base para una variedad de investigaciones en instituciones como el Centro de Investigación Informática en Música y Acústica (CCRMA) de la Universidad de Stanford, [43] [44] Notre Dame como base para la realidad virtual. investigación, [45] y el Centro de Arquitecturas Avanzadas de Internet de la Universidad Tecnológica de Swinburne. [46] [47] Incluso hay esfuerzos de colaboración de investigadores de la Universidad Carnegie Mellon y la Universidad de Toronto que utilizan ioquake3 como plataforma para sus investigaciones publicadas. [48] ​​[49] Los estudiantes también han utilizado ioquake3 como base para trabajos gráficos avanzados para sus tesis, como el trabajo de Stephan Reiter [50] [51] que incluso se ha destacado en el proyecto LLVM [52] debido a su Síntesis del motor ioquake3, técnica de renderizado de trazado de rayos y LLVM.

Aunque el nombre "ioquake3" se basa en el sitio icculus.org de Ryan "Icculus" Gordon , Ryan no lidera el proyecto. En cambio, mantiene un rol de mentor y proporciona alojamiento para las listas de correo y el repositorio SVN utilizado por el proyecto. [53] Desde entonces, el proyecto se ha dividido en derivados como Quake3e y Spearmint.

Juegos usando el motor.

Juegos basados ​​en la versión original.

Juegos que utilizan una licencia propietaria

Ver también

Referencias

  1. ^ terremoto3-1.32b-source.zip
  2. ^ Jennell Jaquays , Brian Hook. "Manual de sombreador de arena de Quake III". pag. 5. Archivado desde el original el 14 de abril de 2006 . Consultado el 1 de octubre de 2006 .
  3. ^ Jennell Jaquays , Brian Hook. "Manual de sombreador de arena de Quake III". pag. 1. Archivado desde el original el 4 de septiembre de 2006 . Consultado el 1 de octubre de 2006 .
  4. ^ Eberly, David (2002). "Raíz cuadrada inversa rápida" (PDF) . Herramientas geométricas. pag. 2. Archivado desde el original (PDF) el 24 de febrero de 2009.
  5. ^ Sommefeldt, Rys (29 de noviembre de 2006). "Origen de Fast InvSqrt() de Quake3". Más allá de 3D . Archivado desde el original el 9 de febrero de 2009 . Consultado el 12 de febrero de 2009 .
  6. ^ Tim Ferguson (2001). "Formato de archivo de vídeo .RoQ de Id Software". Archivado desde el original el 1 de septiembre de 2006 . Consultado el 1 de octubre de 2006 .
  7. ^ ioquake3 md4-léame.txt
  8. ^ gongó. "Especificaciones del archivo md4 v4, por gongo". Archivado desde el original el 15 de julio de 2011 . Consultado el 11 de agosto de 2012 .
  9. «Sonido en el hilo principal» . Consultado el 16 de enero de 2009 .
  10. ^ "Libro de Hook: el modelo de red de Quake3". Archivado desde el original el 27 de octubre de 2006 . Consultado el 1 de octubre de 2006 .
  11. ^ "Página de ayuda de Ioquake3". Archivado desde el original el 11 de enero de 2016 . Consultado el 17 de febrero de 2007 .
  12. ^ "Guía completa: configurar y personalizar ioQuake3 en Linux". Linux hoy. Archivado desde el original el 9 de marzo de 2012 . Consultado el 3 de enero de 2010 .
  13. ^ "Quake 3 trasladado al iPod Touch con controles de inclinación - Betanews". 14 de abril de 2008 . Consultado el 4 de enero de 2010 .
  14. ^ Valich, Theo (3 de abril de 2007). "Se lanzan dos juegos gratuitos basados ​​​​en el motor Quake 3". El Indagador . Archivado desde el original el 28 de agosto de 2010 . Consultado el 12 de enero de 2010 .{{cite web}}: Mantenimiento CS1: URL no apta ( enlace )
  15. ^ "ioquake3 para OS X: dentro de los juegos de Mac". Archivado desde el original el 24 de septiembre de 2015 . Consultado el 3 de enero de 2010 .
  16. ^ "ioquake3 para Mac OS X disponible para descargar - Macsimum News". Archivado desde el original el 12 de septiembre de 2006 . Consultado el 3 de enero de 2010 .
  17. ^ "IOQuake3 OSX: Clon de Quake III (gratuito) - MaxiApple.com". 10 de mayo de 2009 . Consultado el 3 de enero de 2010 .
  18. ^ "IOQuake3 1.34 – Jogue Quake 3 sin Mac OS X – Maclivre.net". Archivado desde el original el 23 de julio de 2011 . Consultado el 4 de enero de 2010 .
  19. ^ "Abrir Arena acerca de la página" . Consultado el 3 de noviembre de 2009 .
  20. ^ "Juegos XP". Archivado desde el original el 20 de julio de 2012 . Consultado el 3 de noviembre de 2009 .
  21. ^ "Trémulo por la página". Archivado desde el original el 10 de diciembre de 2015 . Consultado el 4 de noviembre de 2009 .
  22. ^ "Quake, conozca la GPL; GPL, conozca Quake - Linux Journal". Archivado desde el original el 1 de octubre de 2020 . Consultado el 4 de enero de 2010 .
  23. ^ "Entretien avec l'équipe de Smokin'Guns - JeuxLinux". Archivado desde el original el 19 de marzo de 2021 . Consultado el 4 de noviembre de 2009 .
  24. «Manual de Terror Urbano» . Consultado el 18 de mayo de 2015 .
  25. ^ "Dos juegos gratuitos basados ​​en el motor Quake 3: The Inquirer". Archivado desde el original el 28 de agosto de 2010 . Consultado el 4 de enero de 2010 .{{cite web}}: Mantenimiento CS1: URL no apta ( enlace )
  26. ^ "Una mirada a los juegos gratuitos basados ​​en el motor Quake3: Slashdot". Archivado desde el original el 19 de marzo de 2021 . Consultado el 3 de enero de 2010 .
  27. ^ "Comparación de shooters de software libre - linuX-gamers.net" . Consultado el 4 de enero de 2010 .[ enlace muerto ]
  28. ^ "GitHub - ioquake/Jedi-marginado". GitHub . 16 de enero de 2020. Archivado desde el original el 19 de marzo de 2021 . Consultado el 24 de octubre de 2015 .
  29. ^ "Academia ioJedi". GitHub . Archivado desde el original el 19 de marzo de 2021 . Consultado el 24 de octubre de 2015 .
  30. ^ "Yodoom3". GitHub . Archivado desde el original el 19 de marzo de 2021 . Consultado el 24 de octubre de 2015 .
  31. ^ "AbrirMOHAA". Archivado desde el original el 19 de marzo de 2021 . Consultado el 24 de octubre de 2015 .
  32. ^ "Actualización de Fedora 12: quake3-1.36-5.fc12 - anuncio-del-paquete-fedora". Archivado desde el original el 19 de marzo de 2021 . Consultado el 4 de enero de 2010 .
  33. ^ "ioquake3-1.36-1mdv2010.0 RPM para i586 - Búsqueda de RPM". Archivado desde el original el 21 de febrero de 2014 . Consultado el 4 de enero de 2010 .
  34. ^ "Paquete: openarena-data (0.8.1-2) - Debian". Archivado desde el original el 19 de marzo de 2021 . Consultado el 4 de enero de 2010 .
  35. ^ "ioquake3 1.36 compilación 3 - FreshPorts". Archivado desde el original el 19 de marzo de 2021 . Consultado el 5 de febrero de 2010 .
  36. ^ "igames/ioquake3: colección de paquetes de NetBSD". Archivado desde el original el 10 de junio de 2011 . Consultado el 4 de enero de 2010 .
  37. ^ Procter, Lewie (13 de agosto de 2020). "Star Trek: Voyager Elite Force Holomatch obtiene un relanzamiento gratuito por su vigésimo aniversario". wePC . Consultado el 25 de marzo de 2023 .
  38. ^ ftp://ftp.idsoftware.com/idstuff/source/ [ enlace muerto permanente ]
  39. ^ Paquete compilado Iortcw
  40. ^ "Código fuente de Iortcw". GitHub . Archivado desde el original el 19 de marzo de 2021 . Consultado el 24 de octubre de 2015 .
  41. ^ "Código fuente de ET Legacy". GitHub . Archivado desde el original el 19 de marzo de 2021 . Consultado el 24 de octubre de 2015 .
  42. ^ Larabel, Michael (13 de junio de 2010). "ID Software de código abierto ET, RTCW". Forónix . Archivado desde el original el 16 de agosto de 2010 . Consultado el 13 de agosto de 2010 .
  43. ^ "Trabajo de investigación Q3osc" (PDF) . Archivado (PDF) desde el original el 19 de marzo de 2021 . Consultado el 9 de enero de 2010 .
  44. ^ "Wiki de Q3osc" . Consultado el 9 de enero de 2010 .
  45. ^ "Una encuesta sobre tecnologías de entornos virtuales colaborativos" (PDF) . Archivado desde el original (PDF) el 10 de octubre de 2015 . Consultado el 9 de enero de 2010 .
  46. ^ "Especificaciones de entrada y salida de L3DGEWorld 2.1" (PDF) . Archivado (PDF) desde el original el 5 de octubre de 2011 . Consultado el 9 de enero de 2010 .
  47. ^ "L3DGEWorld 2.3". Archivado desde el original el 5 de octubre de 2011 . Consultado el 9 de enero de 2010 .
  48. ^ "Aceleración de gráficos independiente de VMM" (PDF) . Archivado desde el original (PDF) el 9 de octubre de 2009 . Consultado el 9 de enero de 2010 .
  49. ^ Artículo de VMM en ACM. 13 de junio de 2007. págs. 33–43. doi :10.1145/1254810.1254816. ISBN 978-1-59593-630-1. S2CID  655357 . Consultado el 9 de enero de 2010 .
  50. ^ "Rastreo de rayos en tiempo real de escenas dinámicas" . Consultado el 22 de abril de 2012 .
  51. ^ "Generación de código en tiempo de ejecución para materiales" . Consultado el 22 de abril de 2012 .
  52. ^ "Usuarios de LLVM, proyectos de código abierto". Archivado desde el original el 23 de febrero de 2021 . Consultado el 9 de enero de 2010 .
  53. ^ "Miscelánea de ioquake3 - Juegos de Linux". Archivado desde el original el 14 de junio de 2011 . Consultado el 4 de enero de 2010 .
  54. ^ "OpenArena: aplicaciones de Android en Google Play". Google Play . Archivado desde el original el 25 de septiembre de 2015 . Consultado el 22 de enero de 2018 .
  55. ^ Bougard, Guillaume (alias Tequila) (22 de enero de 2009). "Reportaje de Smokin'Guns ioquake3". Producciones Smokin'Guns . Consultado el 26 de enero de 2010 .

enlaces externos