¿C ++ como primer lenguaje para la programación de juegos de Windows? [cerrado]

StackOverflow https://stackoverflow.com/questions/1618050

  •  06-07-2019
  •  | 
  •  

Pregunta

Soy un programador aficionado que tiene un buen conocimiento de Python y actualmente estoy aprendiendo C. Recientemente estuve hablando con un colega que también quiere aprender a programar. En su caso, quiere aprender C ++ como una ruta a la programación de juegos de Windows con DirectX. En lo personal, siento que me estoy sumergiendo directamente en C ++, ya que su primer idioma es demasiado alto: es lo suficientemente difícil como para estar motivado en un lenguaje más fácil, y creo que es mejor aprender otro idioma para entender mejor la mayoría de los conceptos básicos, y luego ir a algo como C ++.

Encontré que Python funcionó bien como mi primer idioma ya que estoy más interesado en la programación de red y web en plataformas Linux / Unix, pero para alguien principalmente interesado en la programación de juegos de Windows, pensaba que C # podría ser una mejor opción que él. aprenda a usar Visual C # Express Edition y XNA, luego cambie a Visual C ++ cuando esté listo para comenzar a aprender C ++ y, por lo tanto, ya esté en un entorno familiar. Creo que la administración de la memoria es mucho para asimilar, y C # al menos lo maneja para que pueda postergarlo hasta que comience a aprender C ++.

¿Qué piensan los demás de C ++ como primer lenguaje de programación para este tipo de aplicación? ¿Debería recomendar que vaya para C # en su lugar?

¿Fue útil?

Solución

C ++ debería estar bien. Creo que lo mejor es aprender sobre manejo de memoria, punteros, etc. ANTES de saltar a C #, ya que entenderá cómo funciona mejor el programa. De lo contrario, solo verá la memoria como algo mágico y el recolector de basura no tendrá ningún significado real. Siempre es bueno tener una comprensión sólida de los idiomas subyacentes (C, C ++, Assembly, etc.) para producir el mejor código.

Otros consejos

C ++ es el lenguaje principal utilizado para la mayoría de " serio " títulos de juego. Si está programando para un estudio de juegos importante, entonces él necesita saber los pequeños fragmentos sucios de C ++.

Comenzar con C ++ puede ser demasiado para un principiante completo. Recomendaría C como un gran punto de partida. Se familiariza con los conceptos de administración de memoria y otras cosas de bajo nivel antes de agregar la complejidad de C ++.

Dado que C # es un código administrado, no estaría obteniendo los conocimientos de la administración de memoria de bajo nivel. Eso no le servirá bien cuando tenga que lidiar con C ++. En este caso, comenzar más cerca del metal lo ayudará a largo plazo.

La programación de juegos en C ++ es genial. Pero a menos que te guste el dolor total mientras aprendes a programar, puedes comenzar por XNA. Esto te permitirá trabajar en el contenido y la lógica del juego en lugar de luchar con tu código de motor.

Ahora, si te gusta el dolor, ve a la ruta de DirectX y C ++ para comenzar.

Creo que es mejor aprender a fondo un lenguaje como Java o C # antes de tomar C ++. La razón por la que digo esto es porque puede engancharse fácilmente en los detalles y las complejidades de C ++.

Luché con C ++ de forma intermitente (como un pasatiempo) durante unos años, luego en Uni me enseñaron Java, dejé de hacer C ++, conseguí un trabajo haciendo Java durante un par de años y luego pasé a C ++ dev. Lo aprendí todo muy rápido porque ya sabía qué patrones y conceptos quería aplicar y era solo una cuestión de aprender la sintaxis y las rarezas y volver a acostumbrarme a los punteros. Solo tenía que aprender CÓMO y no POR QUÉ. ¡Tomar C ++ como primer idioma importante es aprender CÓMO y POR QUÉ al mismo tiempo y puede ser muy confuso!

XNA es una buena sugerencia.

Python es bueno en la programación de juegos. Consulte i-want-to-learn-game -desarrollo-cual-idioma-debería-yo-uso . Considera aprender Pygame .

  

Pygame es un conjunto de módulos de Python diseñados para escribir juegos. Pygame agrega funcionalidad a la excelente biblioteca SDL. Esto le permite crear juegos con funciones completas y programas multimedia en el lenguaje python. Pygame es altamente portátil y se ejecuta en casi todas las plataformas y sistemas operativos. Pygame se ha descargado millones de veces y ha tenido millones de visitas a su sitio web.

Si él quiere entrar en la industria, entonces conocer C ++ es vital, ya que la mayoría de los motores de juego usan C ++. (También el desarrollador debería en algún punto lean C o C ++)
Sin embargo, si quiere escribir juegos (como en, terminar de escribir un juego), C ++ puede no ser el camino a seguir. Es muy complejo y tiene muchos escollos que lo convierten en un lenguaje lento para desarrollarse. No es solo el manejo de la memoria, sino cosas como los horribles errores de compilación relacionados con stl, etc. que hacen que sea muy difícil hacer algo cuando se intenta por primera vez. para programar.
Mirar algo como C # o Python sería una mejor opción, ya que son lenguajes mucho menos complejos y cada uno tiene una buena biblioteca de juegos.

Si decide que C ++ es el camino correcto, entonces recomendaría al menos una biblioteca de renderizado. Algo como Ogre3D como mínimo. El motivo de esto se explica en este artículo Escribe juegos, no motores . Si bien escribir (o intentar escribir) un motor desde una API base será una buena experiencia, es poco probable que el juego se termine.

Algo que debes considerar es el SDK existente, probablemente no quieras programar todo por ti mismo. Por ejemplo, hay motores 3D bastante buenos con diferentes tipos de licencias que pueden adaptarse bien.

Por lo tanto, debe revisar las bibliotecas y los SDK existentes y los pocos idiomas que desea mantener juntos al mismo tiempo. Adaptarse a C ++ o C # no es tan difícil, el primero es más estricto y más exigente, mientras que le brinda un control más extenso sobre la memoria, el segundo le permite concentrarse en el área de desarrollo principal, pero se encarga de la administración de la memoria (en su mayoría). lo que significa que podría tener problemas en tiempo real.

Al final del día, la ayuda que pueda obtener para crear su aplicación superará invariablemente las pequeñas diferencias entre esos idiomas OO (hasta cierto punto).

Hay muchos motores de juegos, la mayoría están listados en esta página . De particular interés son, en el mundo libre:

Los paquetes no gratuitos incluyen Unity y otros.

Si no quiere alguno de esos motores, todavía hay muy buenas bibliotecas como Qt para C ++, que permite la creación de scripts, aunque no directamente Python, tendría que incluirlo usted mismo, y otros para C #, pero la lista podría ser bastante extensa.

Normalmente, las personas se quedan sin vapor antes de completar su primer juego. Por lo tanto, a menos que su amigo tenga un historial de haber sido determinado obstinadamente, recomendaría la opción más de alto nivel disponible. Si eliges entre C ++ y C #, sería C #.

Preferiría XNA y C # para una introducción rápida e indolora. Usaría C ++, y una biblioteca como DirectX, para la programación de juegos después de tener algo de experiencia en el tema. La mayoría de los juegos más exitosos han escrito en C ++.

Si tu objetivo es divertirte, y realmente terminar los juegos tú mismo (o en equipos pequeños) que tienen un alcance relativamente pequeño, entonces digo C # y XNA.

Si tu objetivo es trabajar en la industria, en juegos de gran presupuesto con equipos gigantes ... Entonces C ++ ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top