En el desarrollo de juegos AAA, los ingenieros usarán principalmente C++
, pero los diseñadores de juegos usarán principalmente lápices, pizarras blancas y un poco de «juramento» ( un lenguaje construido con un propósito especial para facilitar la comprensión del equipo)
Algunos del equipo de diseño de juegos podrían usar un lenguaje informático para especificar qué sucede cuando. En juegos como GTA5, este tipo de codificación a veces se llama scripting. No es programación hardcore. Es escribir guiones para eventos. Este cuadro activa este evento. Esto pasa si él muere, o si ella cae por el techo.
El scripting a veces se realiza en un lenguaje preexistente. A veces es un sistema interno.
- Lua se usa comúnmente para scripting.
Si no estás haciendo juegos AAA, y estás considerando el desarrollo móvil, mira.
- C++ (para Android e iOS)
- Java (para Android)
- C # (para aplicaciones de Unity en muchas plataformas)
- Objective – C o Swift (para iOS)
Y observe el aprendizaje de las diversas API que pueden acelerar el desarrollo de juegos
- OpenGL ES (API gráfica para todas las plataformas)
- Unity (una solución de motor de juegos para juegos 3D y 2D)
- Cocoa (para todas las aplicaciones iOS)
- Cocos2D (una API 2D)
Así que lo que aprendas depende de dónde quieras ir.
La mayoría de los ingenieros de juegos de alto nivel que he conocido conocen los sistemas informáticos de una manera que va de la sopa a la nuez. Son arquitectos que saben cómo se juntan cada clavo y ladrillo. (Y donde se hacen las uñas)
Son igualmente cómodos en ensamblador de bajo nivel. Lenguajes C y orientados a objetos de la vieja escuela, y puede escribir código de sombreado con la misma facilidad.
Los ingenieros más experimentados tienen la tarea de extraer un rendimiento milagroso de un hardware aparentemente lento o restringido. Pueden hacer esto porque saben intuitivamente qué funcionará, qué será lento y qué reducirá diez fotogramas por segundo de un bucle de renderizado.
Esa habilidad de optimización proviene de comprender realmente cómo se implementan los procesadores de GPU de anuncios de CPU en el hardware. Dónde están los cuellos de botella y los problemas de ancho de banda. Ese tipo de comprensión tiene poco que ver con los idiomas.
Si quieres aprender este oficio ….
Escribe algo trivial en ensamblador para ver cómo se convierte en opcodes. Y desvía cosas de la memoria principal a los registros de la CPU.
Escriba algo en C-y vea cómo se traduce ese lenguaje en ensamblador. Vea cómo algunos datos se mantienen en la pila, algunos en el montón, algunos en los registros.
Escriba algo en C++ y vea cómo se convierte en código.
Escriba algo en X Directa o GL Abierta que requiera sombreadores de vértices y fragmentos.
En otras palabras, revivir los últimos 30 años de desarrollo informático. Y puede que tengas una idea de cómo funciona todo.
Si puedes comprender cómo encajan todas estas cosas, es posible que desarrolles los sentidos de araña necesarios para ser un gran ingeniero de juegos.
Pero si odias todo esto. Y solo quiero que los sprites se muevan por la pantalla y hagan sonreír a la gente, entonces probablemente deberías ignorar mi consejo. Y usa cualquier API que puedas para facilitarte la vida , y los píxeles bailan a tu ritmo.