¿En qué lenguajes de programación los programadores de juegos generalmente deben dominar?
1. Conocimientos básicos
El primero es el lenguaje de programación. El lenguaje principal para el desarrollo de juegos actualmente es C. C es un lenguaje complejo después de aprenderlo durante tantos años, no me atrevo a decir que domino C. Usarlo bien requiere un esfuerzo a largo plazo. Se debe prestar especial atención al hecho de que STL es una parte muy importante de C. No descuides su aprendizaje y uso.
Luego está el conocimiento relacionado con el sistema operativo y su API. Para desarrollar programas que se ejecuten eficientemente en un sistema operativo, es necesario un conocimiento profundo del sistema operativo. Desarrollo principalmente en Win32 y tengo menos contacto con otras plataformas. Por ejemplo, FileMap e IOCP son funciones únicas del sistema operativo. Hacer un buen uso de estas funciones puede permitir que el programa ejerza más funciones del sistema operativo. También hay algunos detalles que pueden causar problemas fácilmente si no los comprende, como problemas de enlace DLL.
Conocimientos en ingeniería de software. No te concentres simplemente en programar con la cabeza gacha, presta atención al proyecto en el que estás trabajando y comunícate bien con los demás. Ya sea que se posicione como un experto técnico o un líder técnico, necesita adquirir conocimientos de ingeniería de software.
Competente en el uso de entornos de desarrollo y software de control de versiones. Los más utilizados incluyen MS Visual Studio .Net 2003, MS Visual Source Safe, GCC y CVS.
La rica experiencia de juego también es muy importante. Si rara vez juegas, será difícil comunicarte con otros miembros del equipo de desarrollo de juegos. Por ejemplo, alguien podría decir Quiero que la cámara se parezca a Tomb Raider, lo cual es comprensible si no has jugado un juego similar. Ni siquiera entiendes el plan, o crees que lo entiendes, pero lo que obtienes al final es completamente inconsistente con el sentido común del juego. Por lo tanto, al menos deberías haber jugado juegos convencionales, especialmente juegos convencionales del mismo tipo que estás creando. Para alguien a quien no le gustan mucho los juegos, esto es difícil de hacer.
2. Dirección del cliente
Hay habilidades especializadas en la industria A medida que los juegos se vuelven cada vez más grandes, se requiere cada vez más conocimiento para que una sola persona aprenda todos los aspectos. . Profundizar. Si desea dedicarse a la tecnología de motores de clientes, debe adquirir los siguientes conocimientos.
Algunas técnicas de procesamiento de imágenes. Por ejemplo, la mezcla de colores, el suavizado de imágenes y la búsqueda de contornos se utilizan tanto si se crean juegos en 2D como en 3D.
Conceptos básicos de gráficos 3D. No creas que puedes dejar el trabajo de renderizado a la tarjeta gráfica y puedes ignorar la teoría. Si quieres crear un motor 3D, es importante dominar los conocimientos básicos.
Familiarizado con D3D. La API 3D convencional actual debería ser D3D, que debe dominarse. No hay mucho que decir.
Desarrollo del complemento 3DS MAX. Importa modelos y materiales artísticos al juego. Además, por cierto, definitivamente será beneficioso comprender la arquitectura de 3DS MAX.
Para el desarrollo del editor, un juego requiere muchas herramientas internas. Incluso se puede decir que se necesita una plataforma de producción de contenidos. Generalmente se utiliza MFC, pero también se puede utilizar C# para desarrollo.
Tecnología de motor 3D, esta es la parte más atractiva, que incluye una gran cantidad de contenido como SceneGraph, Portal, Terrain, Shadow, detección de colisiones, programación de Shader, etc., muchos, muchos más. Se recomienda buscar uno de código abierto primero.
Inteligencia Artificial y Simulación Física. Estos dos aspectos muchas veces no se toman en serio, especialmente en los juegos online. De hecho, si implementas un buen comportamiento grupal o una simulación de movimiento de cuerpo rígido, ¡el efecto es asombroso!
3. Dirección del servidor
Permítanme explicarles primero que no tengo experiencia en programación de servidores. Aquí intentaré hablar sobre algunos de mis conocimientos. :)
Programación multiproceso. Casi todos los servidores actuales utilizan subprocesos múltiples y un buen diseño de subprocesos múltiples aumentará en gran medida la eficiencia del programa.
Base de datos.
Los datos del jugador deben almacenarse en una base de datos y ahora la mayoría usa SQL Server o MySql.
Programación de comunicaciones a gran escala. Imagine que un mundo de juegos necesita transportar a miles de personas. Este volumen de comunicación no es pequeño. Un gran volumen de datos y una alta eficiencia son siempre problemas difíciles para la programación.
4. Otros
lenguajes de script. Hace unos años, todo el mundo todavía implementaba sus propios lenguajes de scripting, pero ahora parece que el uso de Python o Lua se ha convertido en la corriente principal.