Introducción al desarrollo del juego: ¿XNA es una buena opción? [cerrado]

16

Lector de mucho tiempo; pregunta por primera vez:

Hace tiempo que quería formar parte de la industria de los juegos, pero mi currículum es 100% de trabajo de backend.

Soy un gran desarrollador de C ++ / C #, sin experiencia práctica en el desarrollo de juegos. Mi experiencia en el back-end me convierte en un buen candidato para el trabajo de back-end (ya que muchos juegos en estos días tienen aspectos basados ​​en el servicio), pero es un campo hipercompetitivo y estoy buscando formas de destacar.

Como nadie va a acercarse a mí y darme un trabajo en la industria del juego, decidí probar mi sombrero al escribir mis propios juegos.

Entiendo por qué C y C ++ son los lenguajes de facto en el desarrollo de juegos, pero realmente me gusta la filosofía detrás de XNA. Como dije anteriormente, soy experto tanto en C # como en C ++, pero si no recuerdo mal, XNA funciona solo con lenguajes compatibles con CLR (quizás solo solo C #).

¿Centrarme en el desarrollo de juegos usando XNA y C # en lugar de C ++ afectará mis posibilidades de conseguir un trabajo en la industria de los juegos? VB tiene una reputación injusta de no ser un lenguaje de programación real, y los programadores de VB están atrapados en ese estigma. ¿Es este el caso con el uso de C # en una comunidad que consiste principalmente en desarrolladores de C ++?

¿O los fundamentos del desarrollo de juegos que se pueden aprender de la escritura de juegos trascienden el lenguaje y las tecnologías?

Alan
fuente

Respuestas:

15

No creo que perjudique sus posibilidades. C # se está volviendo más popular, especialmente con XNA y SlimDX. He usado C # y C ++, y debo decir que preferí XNA significativamente. Era más limpio trabajar con él, pero no tanto como para sentir que no estabas haciendo nada.

Para la parte de la carrera, querrás mencionar que estás acostumbrado a XNA, aunque no creo que perjudique tus posibilidades. De hecho, debido a la forma en que es más fácil de usar, las piezas de su cartera pueden ser mejores.

Y los conceptos siguen siendo los mismos, solo la sintaxis se vuelve diferente. A menos que vaya para un trabajo de gráficos de bajo nivel, el diseño de lo que tiene que hacer sería casi el mismo (no escribir código de carga del sombreador o cachés de malla, en lugar de cargarlo).

El pato comunista
fuente
+1: Buena respuesta. ¿Crees que hay una expectativa de que las piezas de tu cartera deberían ser mejores desde que usaste XNA? Por ejemplo, en una de mis clases de hardware nos dieron la opción de escribir nuestro proyecto de diseño en el ensamblaje HC12, o usar C, pero con C, nuestro proyecto tuvo que ser significativamente más interesante debido a la facilidad de programación en C sobre el ensamblaje.
Alan
Realmente no creo que lo haya. Es una herramienta para una solución, y la razón por la que digo que el producto final sería "mejor" es porque se dedica menos tiempo al diseño de renderizado y se dedica más tiempo al trabajo real del juego.
El pato comunista
A menos que esté buscando específicamente un trabajo gráfico, la mayoría de las personas no buscarán toneladas de esmalte gráfico en una pieza de cartera. Haga algo que parezca más atractivo que bonito. A este respecto, XNA vs. C realmente no importa mientras sea divertido.
coderanger
Aunque si quieres que se vea bonito, ¡usar un motor de renderizado como Sunburn encima de XNA puede ayudar mucho!
Chris Ridenour
10

Según mi experiencia, los mismos conceptos utilizados en XNA se transfieren entre diferentes bibliotecas e idiomas. He podido saltar de un lado a otro entre diferentes tecnologías de juego, y comencé con XNA.

Trabajar con C # y XNA me ayudó a concentrarme en un objetivo de aprendizaje específico ("¿Qué hace que un juego funcione?") En lugar de mezclar objetivos ("¿Cómo aprendo X y hago un juego al mismo tiempo?"). Descubrí que cada vez que combinaba objetivos, terminaba con resultados bastante abismales. Sin embargo, comenzar en mi zona de confort y apoyarme en XNA ayudó a que todo funcionara.

Gabriel Isenberg
fuente
Realmente me gusta tu respuesta. Con todos los lenguajes de programación que tienen estructuras similares (objetos, estructuras de control, etc.), creo que deberías aprender los conceptos de lo que quieres hacer con lo que te sientes cómodo. Las principales diferencias en ese punto al pasar de un idioma a otro deberían ser la sintaxis, los componentes principales y la API.
John
3

Si puedes hacer un juego divertido, y en realidad eres un ingeniero talentoso, no tienes de qué preocuparte. Nadie te criticará por cómo hiciste tu juego.

Los juegos no se mantienen como muchos otros productos de software. Se genera menos código de descarte que en la industria de efectos especiales, pero aún podemos evitar muchos hacks por conveniencia.

Solo haz el trabajo. Al final del día, de eso se trata el desarrollo del juego.

Jonathan Fischoff
fuente
3

Me han dicho que:

  1. El contenido es significativamente más importante que las herramientas utilizadas con algunas excepciones.

  2. Aunque la base de la mayoría de los juegos más grandes es C ++, es porque las herramientas están desarrolladas en C ++. Si no está codificando las herramientas, es posible que no esté programando en C ++ de todos modos.

Editar: Además, tener un proyecto de demostración completado en cualquier cosa (C #, etc.) es significativamente mejor que tener algo incompleto en un lenguaje más difícil (C ++, etc.).

acmshar
fuente