¿Cuál es el conjunto de habilidades básicas que debe tener un programador profesional de juegos? [cerrado]

11

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.

GamDroid
fuente

Respuestas:

6
  1. Debe ser competente y competente con al menos un lenguaje de programación. Hacerlo te ayudará a aprender otros idiomas más fácilmente. El tipo de trabajo al que se postula depende del idioma que probablemente debería saber de antemano. La mayoría de los títulos triples A lanzados en PC y consola probablemente se desarrollarán en C ++. Por otro lado, las aplicaciones y juegos móviles probablemente usarán Java (Google Android y otros teléfonos) u Objective-C (iPhone). Si echa un vistazo a los listados de trabajo para ingenieros de software en sitios web de desarrolladores, generalmente mencionará qué experiencia lingüística necesita tener. Por ejemplo, "Competente y conocedor de C ++" o "Experiencia con C ++ durante al menos dos años". Aprender un lenguaje de script no te hará daño. Solo te beneficiará. El aprendizaje siempre se beneficia, y nunca está de más. No es necesario que tenga un conocimiento práctico de ningún motor de juegos, pero si está postulando a una empresa que usa ese motor específico, probablemente lo ayudará a reanudar. Si usted es un experto en el motor Source, pero se aplica al software de identificación y no sabe nada sobre los motores de tecnología de identificación, eso no es realmente muy útil (pero el aprendizaje beneficioso porque siempre es beneficioso).

  2. Si ha completado proyectos de principio a fin y demuestra que lo ha hecho, creo que eso ayudaría a impulsar su currículum. Sin embargo, no estoy seguro de una gran cantidad de demostraciones tecnológicas. Parece que mucha gente está haciendo demostraciones tecnológicas y no tienen ninguno o pocos proyectos de juegos completados. El programador de jugabilidad tiende a ser un jr. posición nivelada, entonces sí, dependiendo de tu currículum, deberías poder encontrar un trabajo en alguna parte.

  3. Creo que conocer un idioma y poder usarlo de manera competente y competente es mejor que saber 5 idiomas y apenas saber cómo usarlos.

Descargo de responsabilidad: nunca trabajé en la industria, estas son solo mis opiniones que se han formado después de leer varios hilos y artículos sobre trabajos de programación de juegos, basados ​​en lo que pensé que eran los artículos / opiniones más sensibles que he leído.

Langostinos
fuente
77
Aumentaría el punto 1 con "conocimiento de un lenguaje de programación que utiliza punteros ". Los punteros son un requisito tan fundamental para comprender lo que está sucediendo con un idioma que nunca tener experiencia con ellos puede ser una gran desventaja al ir a un idioma que los necesita. C ++ es extremadamente frecuente para los juegos que no son web, por lo que bien podría comenzar allí.
Tetrad el
@ShrimpCrackers Sabes que puedes hacer "Bullet Points" reales usando el editor, ¿verdad? ;)
Ben
Debes demostrar conocer al menos un lenguaje de programación que no se usa ampliamente en la industria pero que tiene una peculiaridad interesante: esto comunica que aprendes por interés sobre la oportunidad, que eres un políglota que entiende diferentes filosofías / enfoques y que puedes (con suerte ) fusionan lo mejor de ambos mundos.
FxIII
2

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:

  • Capacidad para trabajar bien juntos en un ambiente de equipo. Crear juegos requiere una cantidad extraordinaria de personas, solo leer los créditos en algunos de los juegos de AAA en la actualidad lleva más de 10 minutos, si no puedes trabajar bien con las personas y tu objetivo es trabajar con otras personas para hacer un gran juego, entonces yo temo que esta no sea la industria correcta. Esta es una de esas habilidades blandas que generalmente se desarrolla con el tiempo al trabajar en proyectos con otras personas.
  • Encuentra lo que te gusta hacer. Esto es un poco abierto, pero descubre lo que te gusta del desarrollo del juego y las habilidades que necesitas para lograrlo. Sé que esta es la respuesta que está buscando, pero podría expresar todas las habilidades que pueda necesitar para ser un desarrollador de motores, un desarrollador de gráficos o un desarrollador de juegos, pero puede encontrar mucha de esa información fácilmente en línea. Es necesario que sus habilidades se relacionen muy estrechamente con lo que le interesa. Por ejemplo: no se preocupe por conocer las ventajas y desventajas de OpenGL y DirectX si realmente está interesado en el desarrollo del lado del servidor y viceversa.
  • Ser competente en un lenguaje de bajo nivel Sin embargo, dicho lo anterior, estoy de acuerdo con los otros pósters en que un lenguaje de bajo nivel es una buena idea para aprender. Sé que cuando pasé de C # a C ++ aprendí mucho sobre cómo funciona la magia de C #, este conocimiento te brinda una buena comprensión de cómo comunicarte efectivamente con una computadora sin importar el idioma.
  • Comprenda la arquitectura de la computadora : con esto no quiero decir que deba tener un título en CE o EE para comprender realmente cada parte de la arquitectura de una computadora, sino conocer los conceptos básicos de cómo funcionan la memoria, la CPU y la GPU. Independientemente del área de desarrollo del juego en el que entres, será beneficioso al menos tener una idea de cómo funcionan. Si desea saltar a la programación de Gráficos o la programación del Motor, deberá comprender aún más en este espacio.
Kyle C
fuente
55
realmente te sientes viejo cuando la gente llama a C ++ un lenguaje de bajo nivel
dreta
@dreta No soy tan viejo y tampoco lo veo como un lenguaje de bajo nivel. Probablemente tiene que ver con que C ++ es el primer lenguaje que utilizo.
Paul Manta
2

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.

Ian Schreiber
fuente
1

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.

dotminic
fuente
0

Para la programación de juegos sociales hay habilidades principales que son las únicas necesarias.

  1. 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)

  2. 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.

mariana más suave
fuente