stringtranslate.com

Programador de videojuegos

Un programador de juegos es un ingeniero de software , programador o científico informático que desarrolla principalmente bases de código para videojuegos o software relacionado , como herramientas de desarrollo de juegos . La programación de juegos tiene muchas disciplinas especializadas, todas las cuales caen bajo el término general de "programador de juegos". [1] [2] Un programador de juegos no debe confundirse con un diseñador de juegos , que trabaja en el diseño de juegos . [3]

Historia

La serie Apple II fue una plataforma de videojuegos popular durante la era de los ordenadores domésticos . A pesar de que sistemas posteriores la superaron, siguió siendo popular hasta principios de los años 90.

En los primeros tiempos de los videojuegos (desde principios de los años 1970 hasta mediados de los años 1980), un programador de juegos también asumía el trabajo de diseñador y artista . Esto se debía generalmente a que las capacidades de las primeras computadoras eran tan limitadas que era innecesario tener personal especializado para cada función. Los conceptos de los juegos eran generalmente ligeros y los juegos solo estaban pensados ​​para jugarse durante unos minutos a la vez, pero lo más importante es que el contenido artístico y las variaciones en el juego estaban limitadas por la potencia limitada de las computadoras.

Más tarde, a medida que el hardware especializado de las salas de juegos y los sistemas domésticos se volvieron más potentes, los desarrolladores de juegos pudieron desarrollar historias más profundas y pudieron incluir características como gráficos de alta resolución y a todo color, física , inteligencia artificial avanzada y sonido digital . La tecnología ha avanzado a tal grado que los juegos contemporáneos suelen contar con gráficos en 3D y videos de movimiento completo utilizando recursos desarrollados por artistas gráficos profesionales . Hoy en día, el término despectivo " arte de programador " ha llegado a implicar el tipo de colores brillantes y diseño en bloques que eran típicos de los primeros videojuegos.

El deseo de añadir más profundidad y recursos a los juegos requirió una división del trabajo . Inicialmente, la producción artística quedó relegada a los artistas a tiempo completo . Luego , la programación de juegos se convirtió en una disciplina separada del diseño de juegos . Ahora, solo algunos juegos, como el juego de rompecabezas Bejeweled , son lo suficientemente simples como para requerir solo un programador a tiempo completo. Sin embargo, a pesar de esta división, la mayoría de los desarrolladores de juegos (artistas, programadores e incluso productores ) tienen algo que decir sobre el diseño final de los juegos contemporáneos.

Disciplinas

Un videojuego contemporáneo puede incluir física avanzada, inteligencia artificial, gráficos en 3D, sonido digitalizado, una banda sonora original, estrategia compleja y puede utilizar varios dispositivos de entrada (como ratones , teclados , gamepads y joysticks ) y puede jugarse contra otras personas a través de Internet o de una LAN . Cada aspecto del juego puede consumir todo el tiempo de un programador y, en muchos casos, de varios programadores. Algunos programadores pueden especializarse en un área de la programación de juegos , pero muchos están familiarizados con varios aspectos. La cantidad de programadores necesarios para cada característica depende en cierta medida de las habilidades de los programadores, pero en su mayoría está determinada por el tipo de juego que se está desarrollando.

Programador de motores de juego

Los programadores de motores de juego crean el motor base del juego, incluidas las disciplinas de física y gráficos simulados. [4] Cada vez más, los videojuegos utilizan motores de juego existentes , ya sean comerciales, de código abierto o gratuitos . A menudo se personalizan para un juego en particular, y estos programadores se encargan de estas modificaciones.

Programador de motor de física

El programador de física de un juego se dedica a desarrollar la física que empleará un juego. [5] Normalmente, un juego solo simulará algunos aspectos de la física del mundo real. Por ejemplo, un juego espacial puede necesitar simular la gravedad , pero no tendría ninguna necesidad de simular la viscosidad del agua .

Como los ciclos de procesamiento son siempre escasos, los programadores de física pueden emplear "atajos" que son computacionalmente económicos, pero que se ven y actúan "lo suficientemente bien" para el juego en cuestión. En otros casos, se emplean físicas poco realistas para facilitar el juego o para lograr un efecto dramático. A veces, se especifica un subconjunto específico de situaciones y el resultado físico de dichas situaciones se almacena en un registro de algún tipo y nunca se calcula en tiempo de ejecución.

Algunos programadores de física pueden incluso adentrarse en las difíciles tareas de cinemática inversa y otros movimientos atribuidos a los personajes del juego, pero cada vez más estos movimientos se asignan a través de bibliotecas de captura de movimiento para no sobrecargar la CPU con cálculos complejos.

Programador de motores gráficos

Históricamente, este título solía pertenecer a un programador que desarrollaba algoritmos especializados de blitter y optimizaciones inteligentes para gráficos 2D . Sin embargo, hoy en día se aplica casi exclusivamente a programadores que se especializan en desarrollar y modificar renderizadores gráficos 3D complejos . Sin embargo, algunas habilidades de gráficos 2D han vuelto a ser útiles recientemente para desarrollar juegos para la nueva generación de teléfonos móviles y consolas de juegos portátiles .

Un programador de gráficos 3D debe tener un conocimiento sólido de conceptos matemáticos avanzados como matemáticas vectoriales y matriciales , cuaterniones y álgebra lineal .

Los programadores expertos que se especializan en esta área de desarrollo de juegos pueden exigir salarios altos y, por lo general, son un bien escaso. [ cita requerida ] Sus habilidades se pueden utilizar para videojuegos en cualquier plataforma .

Programador de inteligencia artificial

Un programador de IA desarrolla la lógica del tiempo para simular la inteligencia en enemigos y oponentes. [6] Recientemente ha evolucionado hasta convertirse en una disciplina especializada, ya que estas tareas solían ser implementadas por programadores que se especializaban en otras áreas. Un programador de IA puede programar sistemas de búsqueda de rutas , estrategia y tácticas enemigas. Este es uno de los aspectos más desafiantes de la programación de juegos y su sofisticación se está desarrollando rápidamente. Los juegos contemporáneos dedican aproximadamente entre el 10 y el 20 por ciento de su personal de programación a la IA. [7]

Algunos juegos, como los de estrategia como Civilization III o los videojuegos de rol como The Elder Scrolls IV: Oblivion , utilizan la IA de forma intensiva, mientras que otros, como los juegos de rompecabezas , la utilizan con moderación o no la utilizan en absoluto. Muchos desarrolladores de juegos han creado lenguajes completos que se pueden utilizar para programar su propia IA para juegos a través de scripts . Estos lenguajes suelen ser menos técnicos que el lenguaje utilizado para implementar el juego y, a menudo, los utilizan los diseñadores del juego o de los niveles para implementar el mundo del juego. Muchos estudios también ponen a disposición de los jugadores los scripts de sus juegos y, a menudo, los utilizan ampliamente los desarrolladores de mods de terceros .

La tecnología de IA utilizada en la programación de juegos no debe confundirse con la programación y la investigación académicas sobre IA . Aunque ambas áreas se inspiran entre sí, suelen considerarse disciplinas distintas, aunque hay excepciones. Por ejemplo, el juego Black & White de Lionhead Studios de 2001 presenta un enfoque de IA único para una criatura controlada por el usuario que utiliza el aprendizaje para modelar comportamientos durante el juego. [8] En los últimos años, se han dirigido más esfuerzos a intervenir en campos prometedores de la investigación de IA y la programación de IA para juegos. [9] [10] [11] [12]

Programador de sonido

La programación de sonido, que no siempre ha sido una disciplina independiente, ha sido un pilar de la programación de juegos desde los días de Pong . La mayoría de los juegos utilizan audio y muchos tienen una banda sonora completa. Los juegos de audio para computadora evitan por completo los gráficos y utilizan el sonido como su principal mecanismo de retroalimentación. [13]

Muchos juegos utilizan técnicas avanzadas, como el sonido posicional 3D , lo que hace que la programación de audio sea una cuestión nada trivial. En estos juegos, uno o dos programadores pueden dedicar todo su tiempo a crear y perfeccionar el motor de sonido del juego, y los programadores de sonido pueden estar capacitados o tener una formación formal en procesamiento de señales digitales .

Los programadores de sonido suelen crear o mantener herramientas de scripting para que las utilicen los diseñadores de sonido . Estas herramientas permiten a los diseñadores asociar sonidos con personajes, acciones, objetos y eventos, a la vez que asignan música o sonidos atmosféricos para los entornos de juego (niveles o áreas) y configuran variables ambientales como la reverberación.

Programador de juegos

Aunque todos los programadores contribuyen al contenido y la experiencia que ofrece un juego, un programador de jugabilidad se centra más en la estrategia del juego, la implementación de la mecánica y la lógica del juego y la "sensación" del mismo. Por lo general, no se trata de una disciplina independiente, ya que lo que hace este programador suele variar de un juego a otro y, inevitablemente, se ocupará de áreas más especializadas del desarrollo del juego, como los gráficos o el sonido.

Este programador puede implementar tablas de estrategias, modificar el código de entrada o ajustar otros factores que alteren el juego. Sin embargo, muchos de estos aspectos pueden ser modificados por programadores que se especializan en estas áreas (por ejemplo, las tablas de estrategias pueden ser implementadas por programadores de IA).

Guionista

En los primeros videojuegos, los programadores de jugabilidad escribían código para crear todo el contenido del juego: si se suponía que el jugador debía disparar a un enemigo en particular y debía aparecer una tecla roja junto con algún texto en la pantalla, entonces toda esta funcionalidad era escrita como parte del programa central en C o lenguaje ensamblador por un programador de jugabilidad.

En la actualidad, el motor de juego central suele estar separado de la programación del juego, lo que tiene varias ventajas para el desarrollo. El motor de juego se ocupa de la representación de los gráficos, el sonido, la física, etc., mientras que un lenguaje de programación se ocupa de aspectos como los eventos cinemáticos, el comportamiento de los enemigos y los objetivos del juego. Los proyectos de juegos grandes pueden contar con un equipo de programadores para implementar este tipo de contenido de juego.

Los programadores suelen ser también diseñadores de juegos. Suele ser más fácil encontrar un diseñador de juegos cualificado al que se le pueda enseñar un lenguaje de programación que encontrar un diseñador de juegos cualificado que domine C++ .

Programador de interfaz de usuario

Este programador se especializa en la programación de interfaces de usuario (UI) para juegos. [14] Aunque algunos juegos tienen interfaces de usuario personalizadas, es más probable que este programador desarrolle una biblioteca que se pueda usar en varios proyectos. La mayoría de las IU tienen un aspecto 2D, aunque las IU contemporáneas suelen utilizar la misma tecnología 3D que el resto del juego, por lo que es útil tener algunos conocimientos de matemáticas y sistemas 3D para esta función. Los sistemas de IU avanzados pueden permitir la creación de scripts y efectos especiales, como transparencia, animación o efectos de partículas para los controles.

Programador de entrada

El joystick fue el principal dispositivo de entrada para los juegos de la década de 1980. Ahora, los programadores de juegos deben tener en cuenta una amplia gama de dispositivos de entrada, pero hoy en día el joystick es compatible con relativamente pocos juegos, aunque sigue siendo dominante en los simuladores de vuelo .

La programación de entrada, aunque no suele ser un puesto de trabajo, ni siquiera un puesto de tiempo completo en un proyecto de juego en particular, sigue siendo una tarea importante. Este programador escribe el código que especifica cómo los dispositivos de entrada, como un teclado , un ratón o un joystick, afectan al juego. Estas rutinas suelen desarrollarse al principio de la producción y se ajustan continuamente durante el desarrollo. Normalmente, un programador no necesita dedicar todo su tiempo al desarrollo de estos sistemas. Un juego controlado por movimiento en tiempo real que utilice dispositivos como el mando de Wii o Kinect puede necesitar un sistema de entrada muy complejo y de baja latencia, mientras que los requisitos de HID de un juego de estrategia por turnos controlado por ratón como Heroes of Might and Magic son significativamente más simples de implementar.

Programador de red

Este programador escribe código que permite a los jugadores competir o cooperar, conectados a través de una LAN o Internet (o en casos más raros, conectados directamente a través de un módem ). [15] Los programadores que implementan estas características del juego pueden pasar todo su tiempo en este único rol, que a menudo se considera uno de los más desafiantes técnicamente. La latencia de la red , la compresión de paquetes y las conexiones caídas o interrumpidas son solo algunas de las preocupaciones que uno debe considerar. Aunque las funciones multijugador pueden consumir toda la línea de tiempo de producción y requieren que los otros sistemas del motor se diseñen teniendo en cuenta la red, los sistemas de red a menudo se posponen hasta los últimos meses de desarrollo, lo que agrega dificultades adicionales a esta función. Algunos títulos han tenido sus funciones en línea (a menudo consideradas de menor prioridad que el juego principal) recortadas meses antes del lanzamiento debido a preocupaciones como la falta de gestión, previsión de diseño o escalabilidad. Virtua Fighter 5 para PS3 es un ejemplo notable de esta tendencia. [16]

Programador de herramientas de juego

El programador de herramientas [17] puede ayudar al desarrollo de un juego escribiendo herramientas personalizadas para él. Las herramientas de desarrollo de juegos a menudo contienen características como la compilación de scripts, la importación o conversión de recursos artísticos y la edición de niveles. Si bien algunas herramientas utilizadas pueden ser productos COTS como un IDE o un editor de gráficos, los programadores de herramientas crean herramientas con funciones específicas adaptadas a un juego específico que no están disponibles en productos comerciales. Por ejemplo, un desarrollador de juegos de aventuras podría necesitar un editor para ramificar los diálogos de la historia , y un desarrollador de juegos de deportes podría usar un editor propietario para administrar los jugadores y las estadísticas del equipo. Estas herramientas generalmente no están disponibles para los consumidores que compran el juego.

Programador de portabilidad

La migración de un juego de una plataforma a otra siempre ha sido una actividad importante para los desarrolladores de juegos. Algunos programadores se especializan en esta actividad, convirtiendo el código de un sistema operativo para que funcione en otro. A veces, el programador es responsable de hacer que la aplicación funcione no solo para un sistema operativo, sino en una variedad de dispositivos, como teléfonos móviles . Sin embargo, a menudo, la "migración" puede implicar reescribir todo el juego desde cero, ya que los lenguajes , herramientas o hardware propietarios hacen que la conversión del código fuente sea una tarea inútil.

Este programador debe estar familiarizado con los sistemas operativos y lenguajes originales y de destino (por ejemplo, convertir un juego escrito originalmente en C++ a Java ), convertir recursos, como ilustraciones y sonidos, o reescribir código para teléfonos con poca memoria. Este programador también puede tener que evitar implementaciones de lenguaje con errores, algunas con poca documentación, refactorizar código , supervisar múltiples ramas de código, reescribir código para escalar para una amplia variedad de tamaños de pantalla e implementar pautas especiales para operadores. También puede tener que corregir errores que no se descubrieron en la versión original de un juego.

Programador de tecnología

Es más probable encontrar al programador tecnológico en estudios de desarrollo más grandes con departamentos específicos dedicados exclusivamente a I+D . A diferencia de otros miembros del equipo de programación, el programador tecnológico normalmente no está vinculado a un proyecto específico o tipo de desarrollo durante un período prolongado de tiempo, y normalmente reportará directamente a un CTO o jefe de departamento en lugar de a un productor de juegos. Como lo indica el título del puesto, este puesto es extremadamente exigente desde una perspectiva técnica y requiere un conocimiento profundo del hardware de la plataforma de destino. Las tareas cubren una amplia gama de temas, incluida la implementación práctica de algoritmos descritos en artículos de investigación, optimización de ensamblaje de muy bajo nivel y la capacidad de resolver problemas desafiantes relacionados con los requisitos de memoria y problemas de almacenamiento en caché durante las últimas etapas de un proyecto. Hay una cantidad considerable de superposición entre este puesto y algunos de los otros, en particular el programador gráfico.

Generalista

En equipos más pequeños, uno o más programadores suelen ser descritos como "generalistas", quienes asumirán otras funciones según sea necesario. Los generalistas suelen estar involucrados en la tarea de rastrear errores y determinar qué experiencia del subsistema se requiere para solucionarlos.

Programador principal del juego

El programador principal es el responsable último de toda la programación del juego. Su trabajo consiste en asegurarse de que los distintos submódulos del juego se implementen correctamente y de realizar un seguimiento del desarrollo desde el punto de vista de la programación. Una persona que desempeña este puesto suele pasar de otros aspectos de la programación de juegos a este puesto después de varios años de experiencia. A pesar del título, esta persona suele tener menos tiempo para escribir código que otros programadores del proyecto, ya que debe asistir a reuniones e interactuar con el cliente u otros responsables del juego. Sin embargo, se espera que el programador principal programe al menos una parte del tiempo y también que tenga conocimientos en la mayoría de las áreas técnicas del juego. Suele haber un terreno común considerable en el papel de director técnico y programador principal, de modo que los trabajos suelen estar cubiertos por una sola persona.

Plataformas

Los programadores de juegos pueden especializarse en una u otra plataforma, como Wii U o Windows . Por lo tanto, además de especializarse en una disciplina de programación de juegos, un programador también puede especializarse en el desarrollo en una plataforma determinada. Por lo tanto, el título de un programador de juegos podría ser "Programador de gráficos 3D de PlayStation 3". Algunas disciplinas, como la IA, son transferibles a varias plataformas y no necesitan adaptarse a un sistema u otro. Además, los principios generales de desarrollo de juegos, como los conceptos de programación de gráficos 3D, la ingeniería de sonido y el diseño de la interfaz de usuario, son transferibles entre plataformas.

Educación

Cabe destacar que hay muchos programadores de juegos que no tienen una educación formal en la materia, que comenzaron como aficionados y programaron mucho por su cuenta, por diversión, y finalmente tuvieron éxito debido a su aptitud y experiencia adquirida en casa. Sin embargo, la mayoría de las ofertas de trabajo para programadores de juegos especifican una licenciatura (en matemáticas, física, informática o "experiencia equivalente").

Cada vez más universidades están empezando a ofrecer cursos y títulos en programación de juegos. Estos títulos tienen una superposición considerable con los títulos en ciencias de la computación e ingeniería de software . [ cita requerida ]

Salario

Los salarios de los programadores de juegos varían de una empresa a otra y de un país a otro. Sin embargo, en general, el salario por programar juegos suele ser similar para trabajos comparables en el sector empresarial. Esto es así a pesar de que la programación de juegos es una de las más difíciles de cualquier tipo y suele requerir más horas que la programación convencional.

Los resultados de una encuesta realizada en 2010 en Estados Unidos indican que el salario medio anual de un programador de juegos es de 95.300 dólares estadounidenses . Los programadores menos experimentados, con menos de 3 años de experiencia, ganan un salario medio anual de más de 72.000 dólares. Los programadores más experimentados, con más de 6 años de experiencia, ganan un salario medio anual de más de 124.000 dólares. [18]

En general, los programadores principales son los que reciben una remuneración más alta, aunque algunos programadores de gráficos 3D pueden competir o superar sus salarios. Según la misma encuesta anterior, los programadores principales ganan en promedio $127,900 al año. [19]

Seguridad laboral

Aunque las ventas de videojuegos rivalizan con las de otras formas de entretenimiento, como las películas , la industria de los videojuegos es extremadamente volátil. Los programadores de juegos no están aislados de esta inestabilidad, ya que sus empleadores atraviesan dificultades financieras.

Los desarrolladores de terceros, el tipo más común de desarrolladores de videojuegos , dependen de un flujo constante de fondos del editor del videojuego . Si no se cumple un hito o una fecha límite (o por una serie de otras razones, como la cancelación del juego), los fondos pueden escasear y el desarrollador puede verse obligado a despedir empleados o declararse en quiebra y salir del negocio. Los programadores de juegos que trabajan para grandes editores están algo aislados de estas circunstancias, pero incluso los grandes editores de juegos pueden salir del negocio (como cuando Hasbro Interactive se vendió a Infogrames y se cancelaron varios proyectos; o cuando The 3DO Company se declaró en quiebra en 2003 y cesó todas sus operaciones). Los currículos de algunos programadores de juegos consisten en períodos cortos que no duran más de un año, ya que se ven obligados a saltar de un estudio condenado a otro. [20] Esta es la razón por la que algunos prefieren consultar y, por lo tanto, están algo protegidos de los efectos del destino de los estudios individuales.

Idiomas y herramientas

La mayoría de los juegos comerciales de computadora y video están escritos principalmente en C++ , C y algo de lenguaje ensamblador . Muchos juegos, especialmente aquellos con mecánicas de juego interactivas complejas, exigen al hardware hasta su límite. Por lo tanto, se requiere un código altamente optimizado para que estos juegos se ejecuten a una velocidad de cuadros aceptable. Debido a esto, el código compilado se usa generalmente para componentes críticos para el rendimiento, como la representación visual y los cálculos físicos. Casi todos los juegos de PC también usan las API de DirectX , OpenGL o alguna biblioteca contenedora para interactuar con dispositivos de hardware.

Varios lenguajes de script , como Ruby , Lua y Python , también se utilizan para la generación de contenido como jugabilidad y especialmente IA. Los scripts generalmente se analizan en el momento de la carga (cuando el juego o el nivel se carga en la memoria principal) y luego se ejecutan en tiempo de ejecución (a través de ramas lógicas u otros mecanismos similares). Generalmente no son ejecutados por un intérprete , lo que daría como resultado una ejecución mucho más lenta. Los scripts tienden a usarse de forma selectiva, a menudo para la IA y la lógica de juego de alto nivel. Algunos juegos están diseñados con una alta dependencia de los scripts y algunos scripts se compilan en formato binario antes de la ejecución del juego. En la fase de optimización del desarrollo, algunas funciones de script a menudo se reescribirán en un lenguaje compilado.

Java se utiliza en muchos juegos basados ​​en navegadores web porque es multiplataforma , no suele requerir instalación por parte del usuario y presenta menos riesgos de seguridad que un programa ejecutable descargable. Java también es un lenguaje popular para juegos basados ​​en teléfonos móviles . Adobe Flash , que utiliza el lenguaje ActionScript , y JavaScript son herramientas de desarrollo populares para juegos basados ​​en navegadores.

A medida que los juegos han crecido en tamaño y complejidad, el middleware se está volviendo cada vez más popular dentro de la industria. El middleware proporciona una funcionalidad mayor y de nivel superior y conjuntos de características más amplios que las API estándar de nivel inferior como DirectX y OpenGL , como la animación esquelética . Además de proporcionar tecnologías más complejas, algunos middleware también hacen intentos razonables de ser independientes de la plataforma , lo que hace que las conversiones comunes de, por ejemplo, Microsoft Windows a PS4 sean mucho más fáciles. Esencialmente, el middleware tiene como objetivo eliminar la mayor cantidad posible de redundancia en el ciclo de desarrollo (por ejemplo, escribir nuevos sistemas de animación para cada juego que produce un estudio), lo que permite a los programadores concentrarse en contenido nuevo.

Otras herramientas también son esenciales para los desarrolladores de juegos: los paquetes 2D y 3D (por ejemplo, Blender , GIMP , Photoshop , Maya o 3D Studio Max ) permiten a los programadores ver y modificar los recursos generados por los artistas u otro personal de producción. Los sistemas de control de código fuente mantienen el código fuente seguro y optimizan la fusión. Los IDE con depuradores (como Visual Studio ) hacen que escribir código y rastrear errores sea una experiencia menos dolorosa.

Véase también

Notas

  1. ^ Bates 2004, págs. 165-192.168.11 cc1
  2. ^ Moore, Novak 2010, págs. 78-84
  3. ^ Moore, Novak 2010, págs. 74-75
  4. ^ Moore, Novak 2010, pág. 79
  5. ^ Moore, Novak 2010, pág. 80
  6. ^ Moore, Novak 2010, págs. 80-81
  7. ^ "Número de programadores de IA dedicados en un equipo de desarrollo de juegos". AIGameDev . 26 de febrero de 2008. Archivado desde el original el 7 de junio de 2008.
  8. ^ Evans 2002, Capítulo 11.2: Variedades de aprendizaje, págs. 567-578
  9. ^ "Simposio IEEE sobre inteligencia computacional y juegos" . Consultado el 26 de marzo de 2010 .
  10. ^ "Red de investigación en inteligencia artificial y juegos". Archivado desde el original el 26 de septiembre de 2009. Consultado el 26 de marzo de 2010 .
  11. ^ "El grupo GAMES de la Universidad de Alberta" . Consultado el 26 de marzo de 2010 .
  12. ^ Epstein, Susan L. "Juegos y rompecabezas". AITopics . Archivado desde el original el 1 de mayo de 2010 . Consultado el 26 de marzo de 2010 .
  13. ^ Moore, Novak 2010, pág. 83
  14. ^ Moore, Novak 2010, pág. 81
  15. ^ Moore, Novak 2010, pág. 82
  16. ^ TVG: AM2: Virtua Fighter 5 PS3 podría actualizarse para noticias en línea Archivado el 18 de enero de 2008 en Wayback Machine .
  17. ^ Moore, Novak 2010, pág. 78
  18. ^ Principales estudios, escuelas y salarios de videojuegos, Big Fish Games, julio de 2013
  19. ^ Fleming, Jeffrey (abril de 2010). "Novena encuesta anual sobre salarios". Desarrollador de juegos . 17 (4). United Business Media: 8.
  20. ^ "La crisis de las ciencias, la tecnología, la ingeniería y las matemáticas es un mito". 30 de agosto de 2013.

Referencias

Enlaces externos