En las descripciones de trabajo, a menudo veo puestos llamados "Programador de jugabilidad". ¿Qué hacen las personas en esa posición?
En las descripciones de trabajo, a menudo veo puestos llamados "Programador de jugabilidad". ¿Qué hacen las personas en esa posición?
Respuestas:
Cuando las empresas hablan de contratar a un programador de juegos , de lo que están hablando es de un programador que será responsable del código que toque directamente la experiencia del juego. Es decir, el programador será responsable de construir los juegos, en lugar del motor o los sistemas de juegos más grandes. Pero más allá de eso, las cosas varían mucho:
Algunas compañías esperan que los programadores de juegos implementen la interfaz de usuario. Algunos no lo hacen. Algunas compañías esperan que implementen el código AI, otras no. Algunos esperan que implementen código de audio, otros no. Para ser honesto, el "juego" en el programador de juegos es una abreviatura de la industria para "todo lo que no hemos contratado a un especialista para hacer". Por lo tanto, estos programadores deben ser muy versátiles y poder aprender nuevas disciplinas rápidamente.
Pasé casi quince años como programador de juegos en la industria comercial, en cinco compañías diferentes.
Mi experiencia fue que en algunas empresas, un programador de juegos se considera un puesto junior o de nivel de entrada; los programadores que solo están trabajando en un juego individual, después de todo, no necesitan ser tan sofisticados como aquellos que están trabajando en sistemas que necesitan soportar muchos juegos diferentes al mismo tiempo, como deben hacerlo los programadores de motores. En este tipo de empresa, si a un programador de juegos le va muy bien, algún día podría ser promovido al equipo del motor, si puede demostrar su valía. O podría convertirse en un especialista, si muestra una aptitud para un área en particular.
En otras compañías, un programador de juegos se considera una posición de nivel medio; Los programadores que trabajan en un juego individual necesitan tener alguna experiencia útil y ser confiables. Los programadores inexpertos pueden recibir trabajos no deseados para cortar los dientes (tuberías de datos, herramientas, etc.), y eventualmente se les puede permitir pasar a un trabajo de "programador de juegos". En este tipo de sistema, un programador de jugabilidad que continúa teniendo un buen desempeño podría ascender a un rol de liderazgo de proyecto, o bien al equipo del motor.
En otras compañías, un programador de juegos se considera un puesto de alto nivel, y también un puesto de medio diseño; Se espera que estos programadores sean programadores excelentes y probados, pero que también tengan fuertes sensibilidades y calificaciones de diseño, ya que tocan directamente el código que afecta más fuertemente la experiencia del jugador con el juego. En este tipo de sistema, un programador de juego realmente bueno probablemente seguirá siendo un programador de juego para siempre; esta es la posición más valiosa que puede ocupar.
Como regla general, cuanto mejores sean los juegos de la compañía, más alto será el puesto que consideran programador de juego (y, por lo tanto, más difícil será conseguir ese trabajo).
Siempre encuentro que ayuda ilustrar con el ejemplo.
A un programador de juego se le asignarían tareas en la línea de: implementar el sistema de combate cuerpo a cuerpo, implementar la mecánica de regeneración de salud o implementar los controles de salto del jugador.
A un programador de motores (lo que llamarías alguien que no era específicamente un programador de juegos) se le asignarían tareas como: implementar iluminación diferida, o un sistema de animación, o una capa de red.
La distinción clave es quién es el "cliente". Para los programadores de juegos, es el equipo de diseño: su tarea es hacer realidad el diseño. Para los programadores de motores, generalmente son otros programadores . Los programadores de motores crean tecnología y sistemas, que los programadores de juegos y los creadores de contenido pueden usar para realizar el diseño.
Los programadores de motores escriben código que es en gran medida independiente del juego: la misma tecnología a menudo se puede usar en múltiples juegos. Los programadores de juegos tienden a escribir código que es muy específico para el juego que se está creando. Y siempre hay superposición: a veces, para implementar el juego, necesitas un nuevo código de motor.
La codificación del juego no es más difícil ni más fácil que la codificación del motor. Sin embargo, definitivamente es un conjunto de habilidades ligeramente diferente; a menudo necesitas ser más creativo y ser capaz de encontrar soluciones. Tu objetivo no es crear el sistema reutilizable perfecto (el ideal para los programadores de motores), sino crear la mejor implementación del juego. Entonces, lo que puede ser un activo en la programación del motor (atención al detalle y estructuras bien diseñadas) puede ser un obstáculo en la programación del juego (donde la adaptabilidad y el tiempo de iteración son más importantes). Un buen programador de juegos sabe cuándo hacerlo bien (cuando el diseño es sólido y el código se usará en muchos lugares), y cuándo hacerlo rápidamente (cuando el diseño aún se está resolviendo y su código tiene una buena posibilidad de ser descartado una vez probado).
Sobre todo, los programadores de juegos deben poder colaborar con el equipo de diseño en un nivel que los programadores de motores no. Además de las habilidades de comunicación obvias, eso significa que debes estar familiarizado con otros diseños de juegos mucho más que los programadores de motores, de modo que cuando un diseñador dice "haz que funcione como Zelda", sabes de lo que están hablando.
Para aprender a ser un programador de motores, debería profundizar en una tecnología y aprender cómo funciona, y tal vez implementar su propia versión; el juego solo sería un escenario en el que mostrar la tecnología.
Para aprender a ser un programador de juegos, debes tomar el motor de otra persona y usarlo de tantas maneras diferentes como puedas. En otras palabras, si quieres ser un programador de juegos, crea juegos, no tecnología .
Exactamente cómo suena, un programador que implementa y mantiene la mecánica del juego.
http://en.wikipedia.org/wiki/Game_programmer#Gameplay_programmer