Tengo una pregunta muy general que me molesta, pero primero quiero agregar algunos detalles. Soy un programador principal de Java. Independientemente, he creado algunos pequeños juegos en Java por diversión. Ahora, cuanto más busco en el desarrollo profesional de juegos, más me confundo. Esto se debe a que cada vez que busco en Google algunos temas de desarrollo de juegos o visito foros, etc., encuentro diferentes sugerencias.
Algunos dirán que C ++ es bueno, mientras que otros dirán que JAVA puede ser mejor, mientras que otros dirán que otro lenguaje es el lenguaje ur, como Python, Lua, UnrealScript, etc. También se sugiere que uno debe tener conocimiento de motores de juego como Unreal, Torque, Blender, Panda, etc. y se requieren conocimientos de OpenGL, AI, detección de colisiones. Incluso he creado un juego con Android SDK.
Lo que quiero preguntar es:
- ¿Cuál es el conjunto de habilidades básicas que debe tener un programador profesional de juegos? ¿Hay 1 lenguaje de programación + 1 lenguaje de scripting + 1 conocimiento del motor de juego + OpenGL? (¡¡Uf!!)
- Si deseo ingresar a Game Industry como Gameplay Programmer o AI programmer, ¿puedo ingresar con mis habilidades y cartera actuales (como se indicó anteriormente)?
- ¿Aprender un lenguaje de programación es suficiente para el desarrollo del juego?
Cualquier directriz será útil.
fuente
Cuanto más investigo este tema y hablo con los desarrolladores profesionales de juegos, más creo que realmente se reduce a algunas cosas. En ningún orden en particular:
fuente
Mucho depende de tus objetivos profesionales. Si todo lo que quieres es "un juego para hacer trabajo" antes de hacer los 5,5 años necesarios y agotarse y marcharte, entonces supongo que solo miras las ofertas de trabajo de nivel de entrada y buscas lo que quieren, aprende y postula. Simple. (Pero entonces, si su pregunta realmente se reduce a "¿cuál es el esfuerzo mínimo que debo hacer para conseguir un trabajo?", Entonces la respuesta es "si hace el mínimo esfuerzo, ¡obtendrá el trabajo mínimo! ")
Pero a largo plazo, no creo que se trate tanto de conocer un número determinado de idiomas o aprender uno específico. Los idiomas cambian: hace diez años, nadie estaba usando Objective-C o XNA o C # o AS3, y dentro de diez años tenga la seguridad de que cualquier idioma que aprenda hoy será obsoleto para entonces.
Entonces, una cosa para prepararse para el futuro es no solo "aprender un idioma" sino aprender CÓMO aprender nuevos idiomas. Una vez que domine 3 idiomas más o menos, descubrirá que elegir uno nuevo no es tan malo. La mayoría de los componentes principales son los mismos, de todos modos: cada lenguaje tiene variables, matrices, bucles, condicionales, etc., por lo que se trata solo de aprender la sintaxis.
La otra mitad de esto es entender los conceptos centrales de programación y ciencias de la computación. Comprenda la gestión de la memoria, los punteros, la recursividad, etc. Si comprende los conceptos, puede aplicarlos en prácticamente cualquier idioma.
Si desea hacerse más comercializable, aprenda una especialidad de programación relevante para los juegos, lo que le interese ... IA, bases de datos, redes, herramientas, lo que sea.
fuente
Se necesita otra habilidad muy importante que parece pasarse por alto un poco. Necesitas saber cómo encajar y trabajar con un equipo de personas, pasando de otros desarrolladores de juegos, a diseñadores y gerentes de proyectos. No es una habilidad técnica, pero sigue siendo muy importante, ya que podrías ser el mejor desarrollador de la casa y si no puedes seguir con la gente, ¡crear juegos grandes será un problema!
Además, como ShrimpCrackers sabe mucho mejor un idioma que conocer aproximadamente 5 idiomas, y comprender lo que sucede bajo el capó de ese idioma en el que estás hablando es aún mejor, en cuanto a los juegos, debes saber cómo obtener el mejor rendimiento fuera del idioma.
Por último, pero no menos importante, sabiendo un poco sobre hardware, GPU en particular no hará daño.
fuente
Para la programación de juegos sociales hay habilidades principales que son las únicas necesarias.
Programa de secuencia de comandos de acción (puede usar un entorno de elipse y un svn), esto se usa para el front-end del juego (la página web)
Programa java (que también se puede hacer en eclipse y usa svn), esto se usa para las acciones del lado del servidor que se toman de las solicitudes de la página web.
fuente