¿Qué parte de la programación de videojuegos no requiere conocimientos matemáticos avanzados?

Depende de lo que quieras decir con avanzado. La mayoría de la programación de videojuegos requiere conocimiento de álgebra lineal y cálculo, aunque muchos programadores aficionados no se dan cuenta. El álgebra lineal y el cálculo básico son matemáticas poco avanzadas para la mayoría de los matemáticos. Hay muchas personas que minimizan la importancia de las matemáticas en los videojuegos, y me molesta muchísimo. La programación es esencialmente una forma de matemática y puedes ver un videojuego como una fórmula compleja muy grande.

El álgebra lineal se usa todo el tiempo por los programadores de videojuegos. Cuando agrega dos vectores, o calcula la longitud de uno o la distancia entre dos puntos; cuando necesita proyectar un vector en otro (producto de puntos); cuando necesita calcular un normal a un plano (producto cruzado); Piénsalo…

Matemáticas avanzadas, tal vez no, pero álgebra lineal … Todo el tiempo.

En cuanto al cálculo, las cosas básicas son muy útiles. Puedes sobrevivir, pero va mucho mejor cuando tienes intuiciones sobre las cosas que cambian con el tiempo. Tales como movimiento y velocidad. Incluso Flappy Bird usa cálculo: cada videojuego con movimiento a lo largo del tiempo está realizando la integración.

¿Quieres hacer que un personaje atrape una pelota? Hola cálculo y álgebra lineal. ¿Quieres que la IA intercepte a un enemigo? Hola cálculo y álgebra lineal. ¿Desea ajustar un sistema complejo para obtener ciertos resultados cualitativos? Hola estadísticas Podría seguir.

Entonces … ¿Conocimientos matemáticos avanzados? Raramente, pero el álgebra lineal y el cálculo básico son extremadamente útiles en muchas partes de la programación de videojuegos, y no son temas avanzados.

Es una situación muy triste que muchos, que tal vez no saben mejor, consideran que el álgebra lineal y el cálculo son avanzados, y es aún más triste cuando la gente comienza a pensar que estas cosas no son importantes. Para mí es como sugerir que abrir los ojos no es una parte esencial de la pintura de bellas artes. Sin duda, incluso puedes pintar con los ojos cerrados y, si tienes suerte, hazte un nombre. Pero generalmente va mucho mejor si los abres, al menos de vez en cuando …

La mayoría de la programación de videojuegos no requiere matemáticas en el sentido en que estás pensando. Si está implementando la física o los gráficos, entonces eso no es cierto, pero si está utilizando un motor de física preexistente y una biblioteca de gráficos como OpenGL, el cálculo y el álgebra lineal ya se han solucionado.

Dicho esto, siempre hay matemáticas involucradas. Aparte de las manipulaciones algebraicas que son obvias en la programación básica, es posible que esté “implementando” más o menos, utilizando lo siguiente, sin siquiera saberlo:

  • análisis numérico : coma flotante, redondeo / aproximaciones, etc.
  • teoría de la información / codificación , especialmente si está alternando bits usted mismo
  • álgebra lineal : se podría decir que las manipulaciones de matriz tienen raíz en esto
  • teoría de grafos : algoritmos de búsqueda de caminos, estructuras de datos de casi cualquier tipo
  • combinatoria (básica) : bucles, recursión, tuplas, etc.
  • teoría de números – módulo (para obtener un resto), etc.
  • lógica
  • y más

http: //programmers.stackexchange

Al enseñarme a codificar descubrí que la mayor parte es solo barajar pequeños códigos. Literalmente “codificación”.

Todo lo que la computadora sabe son códigos binarios, 1 o 0, y puede unirlos para crear códigos más distintivos. Entonces, por ejemplo, el interruptor de la luz en su pared es la computadora más simple posible. Solo tiene un código, activado o desactivado. Algunas luces están conectadas a múltiples interruptores de modo que tengan un código más largo, como 01. Un código más largo permite un mayor número de distinciones. Simplemente sigue aplicando ese principio básico hasta que tenga suficientes códigos distintos para hacer lo que sea necesario.

Cuando quiere decirle a la computadora qué hacer, debe usar los códigos. Un código puede indicarle a la computadora que vaya a un lugar en la memoria y extraiga otro código. Un código diferente podría indicarle a la computadora que copie lo que está en una ubicación en otra.

Las computadoras no tienen absolutamente ninguna inteligencia en absoluto. Todo lo que hacen es la inteligencia almacenada de las personas que escribieron cómo convertir un código en otro. Por lo tanto, utiliza uno de esos marcos, como un lenguaje de programación, para manipular los códigos que son relevantes para lo que desea hacer.

En ese momento, la mayor parte de lo que está haciendo es encontrar códigos que son datos o son una forma lógica de manipular esos datos y combinarlos. Si lo hace correctamente, los datos con los que comenzó se convierten en los datos que desea. Entonces, la mayor parte de lo que hace es averiguar con qué datos está comenzando, cómo identificarlos y luego qué estructura lógica los convertirá de manera más eficiente. Todos esos son solo códigos diferentes. Puede volverse bastante tedioso. Es como construir una casa solo para que puedas cagar.

La mayor parte del motor del juego ya ha escrito matemáticas avanzadas para ti, solo tienes que usarlo. Como si quisiera que mi personaje siguiera a un enemigo, entonces tengo una función incorporada (como en unity3d MoveTowards) para hacer este trabajo, pero recuerde que como buen desarrollador debe conocer las matemáticas avanzadas. Las cosas que no requieren matemáticas avanzadas son

  1. Teoría de juego
  2. Interfaz de usuario del juego
  3. Trabajo de arte del juego / Diseño
  4. Diseño de nivel
  5. Seguridad del juego
  6. Soporte de backend del juego (como base de datos para perfil de usuario o puntaje alto, etc.)
  7. Redes (multijugador), etc.

La mayor parte no lo hace. No utilicé cálculo o álgebra lineal para ninguna de mis programaciones de videojuegos. En la industria de los juegos, algunas de las disciplinas de programación que utilizamos que no requieren muchas matemáticas son las redes, la seguridad, la base de datos, la interfaz de usuario, el audio, la mecánica principal y la programación de herramientas. Depende del género, por supuesto. Se requieren más matemáticas para la programación de gráficos 3D de alta gama y para simulaciones de vehículos realistas como simuladores de vuelo. Pero hay decenas de miles de juegos en dispositivos móviles que no usan nada más que aritmética.

Toneladas de lógica de juego no tienen ningún requisito real para las matemáticas avanzadas. Piensa en todas las cosas básicas que suceden en un juego de rol AAA. Claro que el motor de renderizado y la física probablemente requirieron muchas matemáticas sofisticadas. Sin embargo, probablemente no todo el equipo trabajó en ellos. A veces, incluso pueden ser completamente software de terceros. Pero, ¿qué pasa con la lógica detrás de una tienda de artículos? ¿Cuántas matemáticas requiere eso?

Tal lógica podría verse así. El npc debería vender artículos por 3.5x de lo que valen y los compra por 0.75x de lo que valen. Cuando el jugador compra y el artículo reduce las existencias del npc en uno, a menos que sea el último en stock, en cuyo caso retírelo. En cualquier caso, agréguelo al inventario de los jugadores (posiblemente apilándolo con elementos del mismo tipo).

Nada de eso requiere cálculo, álgebra lineal, matemática discreta o análisis de algoritmos. Es sobre todo solo si las declaraciones y otras construcciones básicas de programación. Equilibrar las reglas del juego en este caso sería mucho más difícil.

Mucha lógica del juego toma esta forma simple. Hay un montón de cosas que deben hacerse al programar un juego que los jugadores simplemente no notan. Los menús deben ser programados. Elaboración de sistemas creados. Misiones escritas. Hechizos y habilidades codificadas. La mayor parte no requiere de matemáticas avanzadas o consideraciones de rendimiento profundo.

Prácticamente todo lo que no está escribiendo el motor del juego, que no deberías estar haciendo de todos modos.

More Interesting

¿Qué se entiende por inversa modular de un número?

¿Cuál es la negación de min y max?

¿Se consideran [matemáticas] \ matemáticas O (n ^ {\ log n}) [/ matemáticas] y [matemáticas] \ matemáticas O (n ^ {1+ \ log n}) [/ matemáticas] las mismas clases de complejidad?

Sé que la función de devolución de llamada se ejecuta de forma asincrónica, pero ¿por qué es eso?

¿Cómo nos ayuda la informática a comprender mejor el universo?

Tienes 25 caballos y quieres elegir los 3 caballos más rápidos de esos 25. En cada carrera, solo 5 caballos pueden correr al mismo tiempo porque solo hay 5 pistas. ¿Cuál es el número mínimo de carreras requeridas para encontrar los 3 caballos más rápidos sin usar un cronómetro?

Cómo usar Excel para encontrar la mediana sin usar una función

¿Entender conceptos difíciles en matemáticas ayuda a tu habilidad de programación?

Cómo construir una computadora fuera del agua, y cómo ayuda esto con Navier-Stokes

¿Pueden todos estos números: -5, 2015.125, 4 ^ 100, 128 ^ -3 representados exactamente en una máquina de doble precisión? ¿Por qué y por qué no?

¿Para qué sirve la función explotar ()?

¿Cómo obtengo un límite superior para T (n) = T (n / 2) + n?

¿Qué procesos se modelan mejor mediante una distribución exponencial? ¿Cómo se relaciona la función exponencial con tales procesos?

¿Las matemáticas detienen a un programador o son las restricciones del lenguaje, o posiblemente un problema de eficiencia?

¿Por qué los programas de posgrado estadounidenses en matemáticas, estadística y CS están dominados por estudiantes internacionales?