¿Es necesario aprender C ++ si alguna vez quiero conseguir un trabajo en la industria de los videojuegos? Estoy extremadamente familiarizado con C # y tengo un dominio básico de hacer juegos 2D en XNA 4.0. En este momento solo tengo 13 años y me encanta hacer juegos, y espero algún día conseguir un trabajo de programación de juegos. He escuchado a mucha gente decir que C ++ es el 'estándar de la industria' y que dañará su carrera sin saberlo. También estoy tratando de apuntar a más plataformas que solo Windows y estoy al tanto de Monogamepero por alguna razón estoy teniendo muchos problemas con las plantillas de Visual Studio, y encuentro muchos errores con el monojuego. Ya que técnicamente no puedo conseguir un trabajo todavía, y probablemente no podría conseguir un trabajo de programación hasta que tenga 22 años o algo así (a menos que sea un trabajador autónomo). Y en ese lapso de más de 9 años, la industria del juego probablemente cambiará mucho. Aquí hay algunas preguntas
- ¿Aprender C ++ no perjudicará mis posibilidades de conseguir un trabajo de programación?
- Para cuando pueda conseguir un trabajo, C ++ seguirá siendo el lenguaje de programación 'estándar de la industria'
- Si soy un desarrollador independiente, ¿realmente importa si aprendo C ++ o no, y si me quedo con lo que sé?
- ¿Debería comenzar a aprenderlo ahora que tengo muchos años antes de poder conseguir un trabajo?
También me preocupa que, aunque estoy familiarizado con la programación orientada a objetos, pueda pasar mucho tiempo en C ++, y me sienta muy frustrado y confundido y luego deje de aprenderlo, y para este momento haya olvidado mucho XNA y Tengo que aprender todo por todas partes. En resumen: ¿debería aprender C ++ si alguna vez quiero un trabajo de programación?
ACTUALIZAR
Gracias a todos por sus respuestas y sugerencias. Recientemente elegí SFML y C ++ y me está yendo bastante bien. Me estoy acostumbrando a C ++ y empiezo a abrir los ojos para no preocuparme por aprender cosas nuevas porque pude transferir todo mi conocimiento de C # para hacer que C ++ sea más fácil de aprender. Gracias a todos de nuevo.
fuente
Respuestas:
Quiero centrarme en su tercera pregunta, porque está dentro de mi área de conocimiento (desarrollador independiente):
No he escrito una línea de código C ++ en muchos, muchos años. Y, de hecho, he olvidado muchos de los detalles esenciales (y en C ++ hay muchos de esos). Hago la mayor parte de mi trabajo en C #. Y absolutamente no tienes que aprender C ++.
Sin embargo , las habilidades que obtuve al aprender C ++, particularmente las cosas de bajo nivel, especialmente cómo funcionan la memoria y los punteros, han demostrado ser invaluables.
Además, ha habido varias ocasiones en las que he tenido que leer el código C ++ de otras personas. Si sabe cómo programar en C # o Java, probablemente pueda adivinar lo que está sucediendo, pero saber es mucho mejor.
Mi recomendación para usted , específicamente, es aprender C ++ ahora. A su edad, tiene mucho tiempo para dedicar solo a aprender. De esa manera, no tendrá que preocuparse por adquirir C ++ mientras intenta desarrollar un juego o conseguir un trabajo.
No se preocupe por olvidar los detalles, si deja de usar C ++ por alguna razón (o XNA o cualquier otra cosa). Los conceptos son más importantes. Y podrá retomar los detalles fácilmente si es necesario.
Como insinuaron sus otras preguntas, no sabemos cómo será la industria en una década. Aunque supongo que C ++ seguirá siendo de uso bastante común. Hablando por el momento, saber C ++ le dará un impulso sustancial en la empleabilidad, incluso en una tienda que no sea C ++.
fuente
Si quieres ser un programador de juegos, probablemente no puedas evitar aprender C ++. Si desea un trabajo diferente en la industria del juego, como productor o artista, entonces no necesita C ++.
C ++ es difícil. Mucha gente no lo aprende hasta la universidad. Tienes mucho tiempo Trabaje con otros lenguajes para ponerse al día con los conceptos básicos de programación. Comience con poco y dé un paso a la vez.
fuente
Todavía tiene mucho tiempo para aprender, por lo que no creo que deba preocuparse demasiado por el idioma que usa, pero expondré algunas cosas que pueden serle útiles:
C ++ es un lenguaje, mientras que XNA es un marco. Microsoft ya no va a actualizar XNA, por lo que me resulta increíblemente difícil imaginar que se utilizará dentro de 9 años de manera seria. C ++ por el otro y ha existido desde siempre, tiene un comité de estándares activo comprometido con mejorarlo y proporciona a los desarrolladores tanto control sobre el hardware que se necesitaría un gran salto en la potencia del hardware para hacer que este control sea innecesario y así permitir que otro lenguaje lo suplante como el estándar de facto para juegos de alto rendimiento.
Aprender los conceptos es la parte importante, no el lenguaje en el que los implementa. Puede "aprender" un nuevo idioma con bastante rapidez si ya comprende sus principios básicos.
C ++ requeriría que aprenda sobre punteros y problemas de memoria a un nivel mucho más profundo que C #, por lo que le recomendaría que lo aprenda en algún momento, independientemente de su uso en la industria.
Su preocupación por olvidar las cosas es probablemente infundada. Es cierto que olvidará las cosas, pero los detalles no son realmente la parte importante. No olvidará cómo diseñar un juego cambiando idiomas.
Parece que tienes razones para no aprender C ++, creo que en realidad solo estás tratando de racionalizar tu deseo de no aprender algo nuevo.
Piénselo de esta manera: si aprende C ++ y resulta que no se usará en el futuro, tiene muchos años para aprender lo que es y le garantizo que haber aprendido C ++ lo ayudará a hacerlo. Si olvida todo su XNA y no logra aprender C ++, sería mejor averiguarlo y avanzar que preocuparse por las posibilidades. No creo que ninguno de los casos sea muy probable.
fuente
Consejo general: no se concentre en lo que necesita aprender o en lo que debería aprender. Solo haz algo.
Para responder a su pregunta específica, Microsoft ya no actualizará XNA, por lo que es probable que no esté disponible por mucho tiempo. C ++ es un estándar de la industria bien establecido y no se irá pronto. Si quieres trabajar en juegos AAA, entonces sí. Se necesitará experiencia en C ++.
fuente
Como la pregunta ya ha sido respondida, permítanme llenar algunos agujeros aquí y allá ...
¿De dónde sacaste esta idea de que C ++ es un lenguaje monstruoso terrible? ¡No es! En realidad es muy divertido.
Es cierto que puede acercarse al hardware, que en realidad tiene dos beneficios: aprende mucho más sobre cómo funciona realmente la computadora y, en segundo lugar, tiene mucha más potencia en sus manos que con, por ejemplo, C #.
Pero, de nuevo, C ++ presenta excelentes métodos de abstracción y tiene bibliotecas muy útiles, por lo que no es como si realmente se comunicara con la tarjeta gráfica directamente (definitivamente puede), simplemente se abstraerá.
Saber casi cualquier idioma es muy útil, tiene una buena posibilidad de aumentar su probabilidad de ser contratado y definitivamente lo convierte en un mejor programador.
Cuando tenga tiempo, consulte JavaScript y / o Python. Otros probablemente sugerirían a Lisp también, pero no estoy tan bien informado cuando se trata de eso, así que no diré nada. Pero podría ser útil verificarlo de todos modos, creo que es bastante bueno incluso con mi comprensión limitada de sus conceptos. También está Haskell, pero bleh.
Cierto. Pero adivina qué: en más de 9 años, seguiremos usando ensamblaje, C ++ y C. Dudo que los desarrolladores de juegos de repente decidan que tienen suficientes recursos y dejen de empujar los límites de las máquinas. Por supuesto, esto es solo una suposición, pero todos esos idiomas son mucho más antiguos que yo, así que creo que tengo razón.
Además, al aprender C ++, te facilitará la transición a un nuevo lenguaje potencial de nivel medio.
Estoy bastante seguro de que te equivocas aquí. Podrás conseguir trabajo en unos pocos años. Pocos significados 2 por las leyes de mi país, creo. Pero no es un trabajo a tiempo completo.
Todavía hay opciones para trabajar cuando la escuela está cerrada, y si eres bueno, y probablemente lo seas, entonces seguramente habrá una compañía de desarrollo que querrá contratarte. ¿Una empresa de gamedev? Probablemente no. Pero no hay ninguna razón por la que realmente quiera trabajar en uno como titular, AFAIK, podría recibir un mejor pago en una empresa normal y trabajar en un juego en su tiempo libre.
Además, solo mira tu nombre, ¡es casi como si ya te hubieras familiarizado con la alegría de la programación en C ++!
fuente
Todavía no estoy en el negocio (tengo 17 años), pero creo que es realmente imprescindible descubrir nuevos idiomas y tecnologías. Mientras tenga tiempo ahora, aprenda C ++, OpenGL y Java. Dominar esto lleva algún tiempo (me llevó 5 años, así que comencé a la misma edad que tú ahora), pero la experiencia que obtienes es realmente increíble.
Una buena cosa para intentar es hacer un clon de Minecraft en Java y OpenGL. Esto te dará una idea de muchas técnicas de gamedev y te aprenderá MUCHAS técnicas de optimización. Eso es lo que hice a los 16 años. Puede ver el resultado en: CraftMania . La razón por la que recomiendo comenzar con Java es porque es fácil de programar. Hay un recolector de basura y un manejo ordenado de excepciones. Esto le permite aprender OpenGL de manera muy eficiente, sin molestarse en todas las dificultades que C ++ conlleva para un desarrollador sin experiencia.
Una vez que sienta que domina Java en combinación con OpenGL, eche un vistazo a C ++ e intente hacer algunas cosas fáciles (todavía no hay juegos). Una vez que crea que comprende cómo se está compilando C ++ y funciona en tiempo de ejecución y sabe cómo se organiza la memoria en C ++, ENTONCES eche un vistazo a SDL para hacer un juego fácil.
¿Por qué me enfoco en OpenGL? Porque OpenGL se ejecuta en todas las plataformas, excepto XBox360. Esto es: Windows, Linux, OS X, Android, iOS, BlackBerry, Wii, DS, PS3, PSP, etc. Cuando solo domina Xna y DirectX, está vinculado a Windows y XBox360. Creo que esta es una buena razón para aprender OpenGL y C ++ si quieres obtener un trabajo de programación en la industria del juego.
fuente
Mi respuesta sería que realmente depende de lo que quieras hacer en la industria de los juegos. Por el momento, si desea hacer juegos de consola AAA, C ++ es imprescindible. Ningún otro idioma le permitirá aprovechar los recursos limitados que tiene en una consola.
Durante mucho tiempo, C ++ fue la lengua franca de la industria de los juegos, pero con el advenimiento del iPhone y Unity ahora es posible crear juegos decentes utilizando lenguajes como C # y Objective-C. Incluso HTML 5 es capaz de hacer juegos ahora. El simple hecho es que hay muchas opciones disponibles.
A su edad, todavía tiene mucho tiempo para aprender y observar cómo se desarrolla la industria. Mi consejo para usted sería este: no se concentre en el idioma. Concéntrese en aprender a hacer juegos y / o hacer modificaciones para los juegos que existen. Una idea podría ser obtener Minecraft y descubrir cómo hacer modificaciones usando Java. Nada es mejor que ver que puedes cambiar la forma en que se comporta un juego, incluso si en realidad no lanzas ningún mod.
A tu edad, estaba haciendo juegos con Basic (en el Commodore 64). RPG Maker y más tarde usando Java para modificar juegos. Ni siquiera toqué C ++ hasta que tuve alrededor de 18 años, así que todavía tienes mucho tiempo para crecer.
Para responder a sus preguntas reales:
En esta etapa no hay forma de saberlo. Pueden pasar hasta 10 años antes de que comience a buscar un trabajo 'real' y la tecnología avanza extremadamente rápido.
Ver la respuesta anterior.
No. Lo que importa es cuántos juegos terminas y lanzas.
Nunca es demasiado temprano para comenzar a aprender, ni tampoco es demasiado tarde.
fuente