¿Qué área de programación de juegos está más matemáticamente involucrada y es adecuada para una especialización en matemáticas?

Solo tengo una pequeña familiaridad con la programación de juegos específicamente, pero según mi experiencia en la programación general, tengo una buena suposición. Supongo que estás preguntando porque sabes que, especialmente en estos días, MUCHO trabajo es creativo y visual. Y gran parte de la programación general no es de naturaleza especialmente matemática.

Diseño visual / gráfico: pequeñas matemáticas

Como puede suponer, este es un ejercicio mucho más artístico e incluso la implementación de modelos no es especialmente matemática. Advertencia: cualquier juego en el que el movimiento es guiado por un motor de física arroja por completo esta afirmación por la ventana. Eso es altamente matemático, aunque para ese trabajo le serviría mejor específicamente un título de física que un título de matemática.

Código central (estructuras, servidores, entornos de ejecución, etc.): algo matemático

Este es el código más amplio que tiene un propósito más general y sigue muchos de los mismos patrones de diseño en proyectos de juegos, así como en proyectos que no son de juegos. Descubrí que existe una cierta aplicabilidad de los procesos de pensamiento matemático para el diseño de códigos. Especialmente a la forma en que los matemáticos piensan acerca de las pruebas. La repetibilidad, el conocimiento para usar los resultados anteriores de otros y la precisión absoluta son igualmente importantes para programar y escribir pruebas. Sin embargo, esto es casi un enlace metafórico; Los procesos de pensamiento son similares pero siguen siendo habilidades distintas.

AI: intensamente matemático

Por mi dinero, esto es probablemente donde un fondo matemático puro sería bienvenido en un equipo de software, incluso sin experiencia en programación. Obviamente, ambas habilidades son necesarias para producir un producto terminado, pero diseñar un sistema inteligente para un juego determinado es difícil. Como realmente difícil y, además, cuanto más único es el juego, menos aplica los algoritmos establecidos para que funcione y la caída para esto es muy aguda. Para los géneros, piense en la estrategia en tiempo real (por ejemplo, Starcraft, Supreme Commander), estrategia por turnos (Final Fantasy), tácticas por turnos (Final Fantasy Tactics, Fire Emblem, XCom), estrategia basada en cartas (Hearthstone, Duels of the Planeswalkers) en el extremo superior de la abstracción y la estrategia. Todo esto depende absolutamente de una IA lo suficientemente inteligente como para desafiar al menos a un jugador humano (para aspectos que no son pvp). Esto es increíblemente difícil. Por supuesto, hay muchos juegos con IA enemiga básica, cualquier juego de rol (en línea o no) o tirador, por ejemplo. Estos son a menudo (en mi experiencia) mucho más limitados en términos de inteligencia, por lo que, si bien siguen siendo un tanto desafiantes, no serían tan profundos como mis primeros ejemplos.

Creo que 3 campos: implementación física, desarrollo de sombreadores, IA.

Física: todos los juegos modernos necesitan un motor físico capaz de gestionar al menos la colisión, pero cada vez que se agregan la mayoría de los aspectos en cada nueva generación de juegos. Emulación de la mecánica, de la masa de líquidos, fuego, etc.… para cada uno de estos elementos, el gran problema es traducir fórmulas físicas precisas en una emulación eficiente y rápida, lo suficientemente ligera como para ejecutarse en tiempo de ejecución.

Si está interesado, mire este artículo donde se analiza la ley de fluidos y se propone una implementación eficiente, ¡19 artículos! (También me encantan las matemáticas y para mí es sorprendente ver cómo una ecuación finalmente se traduce en la animación de un hermoso río o un mar o una columna de humo): Simulación de fluidos para videojuegos (parte 1) y aquí puedes ver una aplicación de estos algoritmos:

Shaders: este es el nombre del programa ejecutado en la Unidad de procesamiento gráfico (GPU), también conocido como Tarjetas de video 🙂

Las GPU son máquinas multiprocesador masivas (no es inusual que un jugador extremo tenga una máquina GPU múltiple con un total de más de 1000 elementos de procesamiento).

Los sombreadores se usan tanto para la simulación física como para la representación y los efectos de luz. Este es solo otro campo de simulación física, sombreadores, que reciben como entrada la escena a renderizar, calculan la aproximación de la ley de la luz para obtener una imagen de la escena desde el punto de vista del jugador.

¡El fotorrealismo requiere bajar el nivel de aproximación de la ley de la luz! Más: el desarrollador de Shaders necesita resolver este problema al retorcer algoritmos capaces de aprovechar el paralelismo masivo de una GPU (las técnicas de optimización son básicamente un problema de análisis de topología).

Última IA: el elemento controlado por la computadora debe comportarse de manera inteligente. ¡Más inteligentes son los más agradables que será el juego! Aquí los problemas son variados: autoaprendizaje (teoría de redes neuronales y makovianas: aquí una referencia a un trabajo antiguo que leí durante mi tesis hace mucho … mucho tiempo: http://papers.nips.cc/paper/393- …), búsqueda de caminos, teoría de juegos (parece una broma :)), etc.

Hay tantos campos en los que las matemáticas y los videojuegos funcionan juntos que ciertamente olvidé algo pero …

El trabajo diario del tipo promedio en el campo del juego utiliza el resultado de todo este trabajo de matemáticas, pero no lo modifica ni lo enriquece, ¡solo los principales desarrolladores e investigadores académicos trabajan activamente para mejorar la teoría y lograr nuevos algoritmos!

Es un campo muy fascinante, pero es solo para el mejor jugador (… ciertamente no es para mí 🙂)

Esto depende de lo que entiendas por “matemática mayor”.

Si eres un estudiante de matemáticas en términos de “matemática pura” que pasó años en cosas de tipo teorema sobre análisis y resolución de problemas que suenan como “Cualquier conjunto convexo en el espacio vectorial de la enésima dimensión que es simétrico con respecto al origen y un volumen superior a 2 ^ n contiene un punto de red distinto de cero ”, entonces tendrá dificultades para encontrar un trabajo en el desarrollo del juego. La mejor esperanza para ti aquí es que complementes con un puente CompSci y hagas un trabajo con algoritmos o IA o teoría.

Pero, si eres un matemático con especialidad en matemáticas aplicadas o ingeniería matemática +, entonces harás que llueva. Básicamente puedes hacer cualquier cosa que toque matemáticas. Puede hacer inteligencia artificial, aprendizaje automático, algoritmos para compartir recursos, física, gráficos, etc. Aunque, para un motor de FÍSICA, probablemente tendrá que aprender un poco de FÍSICA (¿qué, realmente?) Pero será mucho más fácil tiempo que el tipo de matemática pura que se sienta en una oficina y escribe pruebas de matemáticas que tienen más palabras que números.

Hoy en día desea tener mundos físicamente reactivos: capacidad de separarse y ver caer cualquier cosa, ver fluir el agua, cuerpos blandos y deformables, etc. Además de una representación lo más realista posible (materiales, agua, cielo y nubes …).
Todo esto está bastante cerca de las simulaciones de ingeniería, con las restricciones contradictorias de la alta resolución y el paso de tiempo << 1/60 de segundo.

Los gráficos 3D se basan en matemáticas bastante avanzadas que incluyen álgebra lineal, trigonometría y cálculo más física. Otra opción es también la animación por computadora. Los motores de física son otra opción, pero necesitaría una sólida formación al menos en mecánica newtoniana.

More Interesting

Cómo comenzar en la investigación matemática

¿Puede C (lenguaje de programación) tratar con grandes números?

¿Cuáles son las ventajas de tener un título en matemáticas y trabajar como programador?

¿Cuál es la relevancia de la computación cuántica para el problema NP = P?

¿Qué tan buena o mala es una idea para comenzar un doctorado teórico de CS a la edad de 27 años?

¿Cuál es la forma más rápida de determinar si una serpiente tiene un camino hacia su cola?

¿La investigación colaborativa dificulta el uso de mejores herramientas (por ejemplo, TeXmacs en lugar de TeX / LaTeX)?

¿Cuáles son las aplicaciones de las matemáticas en la programación?

¿Qué problemas abiertos en matemáticas tendrían aplicaciones prácticas inmediatas si se resolvieran?

Si la caja de sugerencias contiene lo siguiente, ¿cuál es la contraseña: 4 uvas, 1 manzana, 7 plátanos, 7 mangos, 2 piñas, 1 naranja, 8 granadas?

¿Ha habido alguna investigación relacionada con la coinducción y el patrón de observación?

¿Cuáles son los conceptos matemáticos necesarios para la inclinación de la máquina y la programación?

¿Cuál es la mejor manera de obtener una estimación numérica de la cantidad de conocimiento científico en el mundo? Sabemos con certeza que está aumentando, pero ¿cuánto más es ahora que, por ejemplo, en 1970?

Cómo abordar problemas de cobertura de conjuntos en la programación de enteros

¿Cuántas veces es más rápida la búsqueda binaria que la búsqueda secuencial cuando se busca el elemento 592 en una lista de 1024 elementos?