Nacimiento |
20 de agosto de 1970 Roeland Park ( Kansas ) |
---|---|
Nacionalidad | americano |
Casa | Área metropolitana de Kansas City |
Capacitación |
Universidad de Missouri en Kansas City Shawnee Mission East High School ( en ) Raytown South High School ( en ) |
Ocupaciones | CTO , ingeniero aeroespacial , programador , informático , ingeniero , empresario , desarrollador de videojuegos |
Cónyuge | Katherine Anna Kang (desde2000) |
Trabajé para | Armadillo Aerospace , Softdisk (hasta1991) , software de identificación (1 st de febrero de de 1991 -22 de noviembre de 2013) , Oculus VR (desde7 de agosto de 2013) |
---|---|
Áreas | Videojuego , ingeniería y tecnología espacial , realidad virtual |
Premios | Salón de la Fama AIAS |
Condenación , Terremoto , Wolfenstein 3D |
John Carmack , nacido el20 de agosto de 1970en Roeland Park en Kansas , es ingeniero en computación estadounidense , también programador y desarrollador de videojuegos .
Es mejor conocido por haber sido el programador principal y cofundador (junto con varias personas, incluido John Romero ) de id Software , una empresa estadounidense de videojuegos. Su habilidad en la programación de computadoras le ha permitido convertirse en una celebridad en la comunidad de jugadores y desarrolladores de aplicaciones gráficas y motores de videojuegos 3D .
Desde que dejó id Software en 2013, se unió a Oculus VR como director técnico , que fue adquirida en 2014 por Facebook .
John Carmack está detrás de muchos juegos de disparos en primera persona (FPS) lanzados por id Software , como: Wolfenstein 3D (el primer juego de este tipo en lograr cierto éxito), Doom (reconocido como una revolución tecnológica y un gran éxito mundial) y Quake. (el primer FPS que presenta un entorno en tiempo real completamente 3D , que incluye objetos y personajes, y el primero en introducir el juego multijugador a través de Internet). Luego dirigió el desarrollo de Doom 3 , cuyo motor gráfico estaba a la vanguardia de la tecnología cuando fue lanzado. Su último proyecto en id Software es liderar el desarrollo de Rage y el motor gráfico id Tech 5 .
En 2001, se unió al Salón de la Fama de la Academia de Artes y Ciencias Interactivas .
Es, junto a su esposa Katherine Anna Kang , el fundador de la empresa Armadillo Aerospace , que se interesa por los cohetes utilizados para cohetes espaciales.
La 7 de agosto de 2013, John Carmack se convierte en director técnico de Oculus VR , fabricante de Oculus Rift , un visor de realidad virtual . También conserva su puesto en id Software por un tiempo. Pero22 de noviembre de 2013, definitivamente dejará id Software para trabajar a tiempo completo para Oculus VR. Se convierte en una subsidiaria de Facebook enMarzo del 2014.
El éxito de John Carmack se basa en particular en su capacidad para transponer de manera óptima los mejores algoritmos y técnicas de renderizado 3D a sistemas en tiempo real , sin dejar de estar extremadamente actualizado con los nuevos desarrollos en renderizado 3D. Es el desarrollador independiente más famoso capaz de producir motores gráficos que aprovechan al máximo los cambios en el hardware, en particular, tarjetas gráficas para PC . Inventó varios algoritmos , en particular el reverso de Carmack ; no es el primero en haber descubierto este principio, pero es el primero en haberlo utilizado de manera eficaz y extensa.
El Id Tech 3 (motor de renderizado 3D del juego Quake III Arena ) al estar bajo la licencia GNU GPL , es posible consultar el código fuente completo de este juego. Entre ellos, encontramos dos funciones largamente atribuidas a John Carmack y quien Se ha hablado mucho: uno para calcular una raíz cuadrada , el otro para calcular una raíz cuadrada invertida.
Escrita en C , la función que calcula una raíz cuadrada invertida es la siguiente:
float Q_rsqrt( float number ){ long i; float x2, y; const float threehalfs = 1.5F; x2 = number * 0.5F; y = number; i = * ( long * ) &y; // evil floating point bit level hacking i = 0x5f3759df - ( i >> 1 ); // what the fuck? y = * ( float * ) &i; y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration // y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed #ifndef Q3_VM #ifdef __linux__ assert( !isnan(y) ); // bk010122 - FPE? #endif #endif return y; }Esta función es al menos particular ya que no contiene ningún bucle, solo involucra una serie de cálculos elementales. Sin embargo, esto proporciona aproximaciones bastante aceptables (del orden de 10 -3 ). Es incluso hasta 4 veces más rápido que la función (float) 1.0/sqrt(x)y, por lo tanto, es perfecto para un videojuego.
En realidad, esta función se basa en un método extraído del análisis numérico : el método de Newton . La clave de su eficacia radica en el uso de una constante particular 0x5f3759df . Esta constante hexadecimal se utiliza como una primera aproximación y reduce notablemente el número de iteraciones necesarias para obtener una aproximación satisfactoria. Esta constante, llamada magia , es tan notable que una sola iteración de Newton da resultados suficientes en el contexto de la representación gráfica.
Chris Lomont de Purdue University ha investigado el tema desde entonces. Hay una constante que proporciona mejores aproximaciones: 0x5f375a86 . En su estudio, Chris Lomont también menciona el hecho de que el uso original de esta constante podría deberse a Gary Tarolli, entonces desarrollador de nVidia .
Esta función es ilegal en C ++ 03: los valores floatse almacenan en la FPU mientras que la CPU usa los números enteros .
Relación de los principales videojuegos en los que John Carmack ha colaborado como programador, desarrollador o director técnico.
Fecha de lanzamiento | Título | Desarrollador | Editor | Acreditado por |
---|---|---|---|---|
13 de mayo de 2016 | Doom ( reiniciar ) | software de identificación | Bethesda Softworks | Director técnico de formación, programador de motores de formación, desarrollador de formadores |
16 de octubre de 2012 | Edición Doom 3 BFG | software de identificación | Bethesda Softworks | Director técnico, programador de motores, desarrollador |
4 de octubre de 2011 | Furia | software de identificación | Bethesda Softworks | Director técnico, programador de motores, desarrollador |
28 de septiembre de 2007 | Territorio enemigo: Quake Wars | Daño por salpicadura | Activision | Programación |
1 st de mayo de de 2006 | Orcos y Elfos | Entretenimiento de Fountainhead | Artes electrónicas | Productor / programador / escritor |
18 de octubre de 2005 | Terremoto 4 | Software Cuervo | Activision, Bethesda Softworks (republicado en 2012) | Director técnico |
13 de septiembre de 2005 | Doom RPG (en) | Entretenimiento de Fountainhead | software de identificación | Productor / programa |
3 de abril de 2005 | Doom 3: Resurrección del mal | Software nervioso | Activision | Director técnico |
3 de agosto de 2004 | Doom 3 | software de identificación | Activision | Director técnico |
19 de noviembre de 2001 | Regreso al castillo de Wolfenstein | software de identificación | Activision | Director técnico |
18 de diciembre de 2000 | Quake III: Team Arena | software de identificación | Activision | Programación |
2 de diciembre de 1999 | Arena Quake III | software de identificación | Activision | Programación |
30 de noviembre de 1997 | Quake II | software de identificación | Activision | Programación |
31 de marzo de 1997 | Doom 64 | Juegos de mitad de camino | Juegos de mitad de camino | Programación |
22 de junio de 1996 | Terremoto | software de identificación | GT interactivo | Programación |
31 de mayo de 1996 | Condenación final | software de identificación | GT interactivo | Programación |
30 de octubre de 1995 | Hexen: más allá del hereje | Software Cuervo | software de identificación | Motor 3D |
23 de diciembre de 1994 | Hereje | Software Cuervo | software de identificación | Programador de motores |
30 de septiembre de 1994 | Doom II: Infierno en la Tierra | software de identificación | GT interactivo | Programación |
10 de diciembre de 1993 | Condenar | software de identificación | software de identificación | Programación |
1993 | ShadowCaster | Software Cuervo | Sistemas de origen | Motor 3D |
18 de septiembre de 1992 | Lanza del Destino | software de identificación | FormGen | Ingeniero de software |
5 de mayo de 1992 | Wolfenstein 3D | software de identificación | Software Apogee | Programación |
1991 | Catacumba 3-D | software de identificación | Softdisk | Programación |
1991 | ¡Ordene Keen en Aliens Ate My Babysitter! | software de identificación | FormGen | Programación |
15 de diciembre de 1991 | ¡Ordene Keen en Adiós, Galaxy! | software de identificación | Software Apogee | Programación |
1991 | Order Keen in Keen Dreams | software de identificación | Softdisk | Programación |
1991 | Caballeros de la sombra | software de identificación | Softdisk | Diseño / programación |
1991 | Rescue Rover 2 | software de identificación | Softdisk | Programa |
1991 | Rescue Rover | software de identificación | Softdisk | Programa |
1991 | Hovertank 3D | software de identificación | Softdisk | Programación |
1991 | Dave el peligroso en la mansión encantada | software de identificación | Softdisk | Programación |
1991 | Diseños oscuros III: Retribución | Softdisk | Softdisk | Programador / diseñador |
14 de diciembre de 1990 | Comandante interesado en la invasión de los vorticons | software de identificación | Software Apogee | Programación |
1990 | Slordax: El enemigo desconocido | Softdisk | Softdisk | Programación |
1990 | Catacumba II | Softdisk | Softdisk | Desarrollador |
1990 | Catacumba | Softdisk | Softdisk | Programa |
1990 | Dark Designs II: Cerrando la puerta | Softdisk | Softdisk | Programador / diseñador |
1990 | Diseños oscuros: bastón de Grelminar | John carmack | Softdisk | Desarrollador |
1990 | Tenis | John carmack | Softdisk | Desarrollador |
1990 | Wraith: La desaparición del diablo | John carmack | Producciones Nite Owl | Desarrollador |
1989 | Forja de las Sombras | John carmack | Producciones Nite Owl | Desarrollador |