que - ¿Deben elegirse C#o C++ para aprender programación de juegos(consolas)?
mejores programas para programar (18)
Tengo conocimientos básicos de programación de juegos en c y c ++. Estoy aprendiendo c # hoy en día. Si quiero hacer una carrera en la programación de juegos de consola, ¿cuál debería usar para continuar? Me he dado cuenta de que muchas compañías de juegos usan C ++ / C (probablemente debido a razones heredadas). ¿Probablemente C ++ tenga más cantidad de bibliotecas compatibles?
¿En qué idiomas están escritos los motores de juegos modernos (irreal / crysis, etc.)?
¿Qué idioma es una mejor apuesta? ¿y por qué?
C ++ con win32 / GDI es relativamente fácil de poner en marcha, pero es mucho más difícil que decir Flash o Python (pygame). Sin embargo, al usar C ++ aprenderás mucho en el proceso y estarás preparado para seguir avanzando en tu carrera como desarrollador de juegos. También puede buscar en XNA si desea programar en xbox360.
Tomé algunas clases en Game Institute (GI) y aprendí mucho sobre C ++, win32 API y DirectX.
C ++ es la lengua franca de la industria de los juegos de consola. Para bien o para mal, debes saber que es un programador de juegos de consola profesional.
C ++, por dos razones.
1) muchos juegos están programados en C ++. Ningún juego principal está, hasta ahora, programado en un lenguaje administrado.
2) C ++ es tan difícil como se pone. Tienes que dominar la administración manual de la memoria y, en general, no hay límites de verificación (más allá de la excelente Valgrind!). Si domina C ++, encontrará esto transferible a los lenguajes de procedimiento administrados. Menos al revés.
C ++ tiene un nivel de complejidad cercano a APL . Nunca vas a mejorar jugando contra oponentes más débiles.
Joel hace un punto muy fuerte acerca de esto . Las personas que entienden cómo funciona la máquina son mejores programadores, porque todas las abstracciones tienen filtraciones .
C ++.
Es el estándar de oro para la programación de juegos AAA. Si necesita hacer algo interesante, tendrá que hacer C ++ o profundizar en C # no administrado (no siempre es bueno).
C ++ también es posiblemente más rápido (se aplican advertencias habituales ).
Como experiencia de aprendizaje, C # no vale la pena. C ++ es indudablemente mejor, especialmente en el mundo de las consolas casi integrado. Para obtener la experiencia orientada a objetos, vaya hacia Java.
Creo que C ++ es el lenguaje que estás buscando. La mayoría del desarrollo de juegos se realiza en C ++ porque es un lenguaje de múltiples paradigmas (OOP, metaprogramación, etc.) y porque permite la administración de la memoria. Lo que hace que C ++ sea aún mejor es que puede usarse para desarrollarse en una multitud de plataformas, mientras que C # no puede hacerlo a una escala tan grande.
Muchos dirán que con C # no tendrá que preocuparse por la asignación de memoria y esto es cierto a un cierto precio. Tendrá la carga del .NET framework sobre sus hombros y verá lentamente las limitaciones de C # en la forma en que se deben realizar ciertas tareas.
Probablemente haya leído de algunas respuestas que C ++ es un lenguaje de programación difícil. Esto es mayormente cierto, pero tal vez usted no haya escuchado acerca de C ++ 0x. Algunas características encontradas en C #, como la recolección de basura, estarán disponibles (opcional para su uso) con C ++ 0x. Además, multi-threading finalmente será compatible con el lenguaje con esta revisión del estándar C ++.
Le recomendaría que compre algunos libros en C ++, así como libros de C ++ DirectX / OpenGL.
Creo que C ++.
Porque c # necesita una instalación adicional para C # runtime, que solo absorbe espacio en un disco. Y C # es, por supuesto, un poco más lento.
Míralo así: mientras puedas escribir un juego en C #, no te abrirá muchas puertas profesionales. Si conoces C ++ y Lua, entonces serás mucho más empleable.
No solo está hablando de computadoras de escritorio y consolas de PC, los juegos hoy en día son para los dispositivos móviles, por lo que conocer C # lo limitaría aún más. Claro, C ++ no va a ser la mejor opción para escribir aplicaciones para iPhone, pero estarás mucho más cerca de ser un programador C objetivo si conoces C ++ que si conoces C #.
Los desarrolladores de juegos usan C ++ no por razones heredadas (aunque ayuda a establecer motores C ++ y bibliotecas) sino por el rendimiento y la experiencia. Los desarrolladores de juegos conocen C ++, les funciona muy bien, así que no hay necesidad de cambiar. No son como las aplicaciones de línea de negocio (en Windows) donde el mindshare del desarrollador se mueve con las herramientas actuales de Microsoft.
No hay un idioma que sea una "mejor apuesta". Usa el lenguaje más apropiado para lo que necesitas hacer, ya sea programación de juegos o cualquier otro dominio. C ++ no va a desaparecer pronto.
Si no está desarrollando una plataforma de Microsoft, dudo que use C #.
No voy a responder la pregunta original ya que la mayoría de las publicaciones aquí tienen. Voy a señalarte algo que te perdiste en tu publicación. El simple hecho de saber que C / C ++ / C # no te dará una carrera en el desarrollo de juegos. La mayoría de los estudios de juegos obtienen de docenas a cientos de aplicaciones para un simple trabajo de código mono. ¿Qué te hace destacar en comparación con ellos? ¿Qué te hace una mejor contratación que otra persona que tiene experiencia haciendo juegos en otro estudio?
Si realmente quieres una carrera en la industria de los juegos, incluso en las consolas, debes hacer una demostración de algún tipo que demuestre lo que sabes. C ++ sería una excelente opción de idioma para usar en la demostración si está solicitando una posición de desarrollo de la consola. Puede mostrar más haciendo una herramienta en C # / XNA para crear los activos para su demostración. Le mostrarás a los gerentes de contratación y clientes potenciales que no eres SOLO un chico de C ++ o SÓLO un chico de C #: eres un desarrollador.
Ok aquí están mis dos centavos.
Si planeas entrar en serio en la industria de los videojuegos, te recomiendo que aprendas ambos idiomas. Comenzando con C ++ y luego moviéndome a un lenguaje administrado como C #. C ++ tiene sus ventajas sobre C #, pero C # también tiene ventajas sobre C ++.
Personalmente prefiero C # sobre C ++ cualquier día. Esto se debe a muchas razones: solo unas pocas:
- C # hace que la programación sea divertida otra vez;).
- Su código administrado me ayuda a completar tareas complejas fácilmente y no olvidar la seguridad.
- C # s ''es POO puro, forzando reglas en tu código que ayudan a mantener tu código más legible,'' mantenible ''y la ejecución es más estable. La tasa de productividad supera a C ++ en al menos 10%, el mejor programador C ++ podría ser un programador C # aún mejor.
- Esto no es realmente una razón, más como algo ''Me gusta'' sobre C #: LINQ.
Ahora ... hay muchas cosas que extraño sobre C ++. Extraño poder (completamente) administrar mi propia memoria. No puedo decirte cuántas veces me sorprendí tratando de ''eliminar'' una instancia / referencia. Otra cosa que no me gusta de C # es la incapacidad de usar herencias múltiples, pero nuevamente me ha obligado a pensar más sobre cómo estructurar mi código.
Ha habido más discusiones sobre este tema que estrellas en el universo conocido y todas se cierran en un callejón sin salida. Ninguno de los dos idiomas es mejor que el otro y rechazar cualquiera de los dos te hará daño a la larga. Los tiempos cambian y también lo hacen los estándares para la programación de computadoras.
Independientemente del idioma que elija mantener en la parte superior de su lista, siempre mantenga sus opciones abiertas y no configure su mente en un solo idioma. Usted dice que ya conoce C ++, por qué no aprende C #, no puede doler y le "prometo" que lo convertirá en un mejor programador de C ++.
Oye, si BASIC es lo suficientemente bueno para Gorillas, es suficiente para mí.
Para decir la verdad ... tienes que tomar una decisión sobre cuál es el mejor idioma. Sé lo que puedo hacer con C #. Sé lo que se puede hacer en C ++. C # no está hecho para hacer lo que C ++ hizo ... escribir código en el nivel más básico y aún ser significativo cuando lo leen ojos humanos.
Estamos desarrollando un motor de juego con C #, DirectX ... ¿es un desafío? infierno, sí ... pero es algo que elegimos hacer. Estamos analizando algunos niveles de rendimiento que están muy cerca de lo que C ++ puede ofrecer. Entonces, no veo problemas con este esfuerzo.
Para el desarrollo multiplataforma, si no fuera por .Net, es posible que no tengamos la plataforma Mono. La plataforma Mono ha ampliado nuestra base de plataforma.
Aquí hay algo de apoyo a mis argumentos ...
Realmente depende del tipo de juego que planees construir: muchos juegos podrían hacerse en un lenguaje como C #. Dicho esto, la mayoría del desarrollo del juego se realiza en C ++ simplemente porque la mayoría de las necesidades de desarrollo del juego tienen que aprovechar hasta el último bit de rendimiento que la plataforma puede proporcionar y eso significa ensamblador C, C ++ o ( temblor ).
Si desea ser empleado profesionalmente como desarrollador de juegos, necesita saber C / C ++. ¡Fin de la historia!
Si supiera C # y XNA, podría hacer algunos juegos de muestra de una manera bastante directa, lo que podría ayudar a entrar en el campo.
Mi suposición es que los motores de juego centrales están escritos en C ++, pero algunos de los otros códigos alrededor del núcleo podrían estar en C #.
Siempre es difícil decirlo porque usaban el ensamblaje hasta 1993, NBA Jam si alguien recuerda a ese chico malo. La tecnología está en constante tendencia, por lo que es muy difícil decir adónde irá, recomendaría aprender C y obtener una comprensión muy firme de eso luego pasar a C ++. Diré esto como precaución si disfrutas jugando juegos y no disfrutarás de los juegos de codificación.
No encontrará que C # se ejecute en ninguna consola, por lo que es inútil en ese sentido.
Si estás aprendiendo a programar, C # ofrece una curva de aprendizaje más suave que C ++, pero puedes escribir C ++ sin entrar en las áreas más aterradoras y complejas del lenguaje, por lo que no es mucho más difícil.
Si quieres programar con gráficos u otras cosas "gamesey", entonces C # es una opción bastante pobre: ve por C ++ con OpenGL o DirectX.
editar
En última instancia, si quieres una carrera en juegos, ve por C ++. Puede escribir código de juego en C #, pero de manera realista no encontrará casi tantas oportunidades de carrera usando C # como lo hace con C ++. A menos que quieras convertirte en un programador de herramientas de juego, en cuyo caso C # es mucho mejor que C ++ porque puedes obtener mucha más funcionalidad trabajando en mucho menos tiempo. Muchas compañías de juegos están cambiando a C # para la mayor cantidad de herramientas de desarrollo posible.
Por supuesto, si puede manejar la carga de trabajo, la mejor manera es aprender ambos idiomas y aplicar "la mejor herramienta para el trabajo". Como son muy similares, no es difícil aprender uno cuando has aprendido el otro. (Realmente, la mayor parte de la curva de aprendizaje que se mueve de C ++ a C # es .net y LINQ, etc. en vez del núcleo del lenguaje C # per se - una gran cantidad es casi idéntica, con solo unos pocos bits de azúcar sintáctica aquí y allá)
Depende
Depende de muchas cosas: tus objetivos, tu experiencia, tu marco de tiempo, etc.
La mayoría de la programación de juegos no es específica de un idioma. La matemática 3D es matemática 3D en C # tanto como en C ++. Si bien las API pueden ser diferentes, y puede requerirse una ''contabilidad'' diferente, la lógica fundamental y las matemáticas seguirán siendo las mismas.
Y es cierto que la mayoría de los motores de juegos AAA son C ++ con un lenguaje de scripts encima de ellos. Eso es innegable Sin embargo, la mayoría de los motores AAA también tienen un montón de herramientas internas que los respaldan, y esos pueden estar en cualquier cosa: Java, C #, C ++, etc.
Si quieres escribir un juego, y eres un desarrollador experimentado , C ++ y C # tienen mucho para ellos. C # tiene menos mantenimiento, mientras que C ++ tiene más bibliotecas y herramientas disponibles. Sin embargo, para cualquier cosa altamente compleja, sería mejor que intentes usar un motor existente como punto de partida.
Si desea escribir un juego, y es un nuevo desarrollador, entonces no escriba un motor. Use un motor existente y modélelo o use sus instalaciones para escribir su juego. Créeme.
Si quiere aprender a escribir un motor y es un desarrollador experimentado , probablemente debería pensar en C ++. C # también es posible, pero la cantidad de código y la facilidad de integración de C ++ probablemente lo excede.
Si quiere aprender a escribir un motor y es un nuevo desarrollador , probablemente recomendaría C # / XNA. Llegarás al juego ''cosas'' más rápido, con menos dolor de cabeza para aprender los pormenores de C ++.
Si desea un trabajo en la industria, entonces necesita averiguar qué tipo de trabajo desea. Un lenguaje de alto nivel puede ayudar a abrir las puertas a herramientas y / o desarrollo web, lo que puede generar oportunidades en el trabajo real del juego. Incluso el conocimiento de los lenguajes de scripting puede ayudar si desea obtener más de la posición del diseñador / scripter del juego. Lo más probable es que no consiga un trabajo de inmediato en lo que se refiere al motor central, ya que las habilidades requeridas para hacerlo son bastante altas. Las habilidades de desarrollo fuertes de C ++ siempre son útiles, especialmente en escenarios en tiempo real o en red.
El desarrollo del motor de un juego AAA implica un serio código de giro cerebral.
Si desea comenzar una casa de desarrollo profesional , probablemente no esté leyendo esto, pero ya sabe que C ++ es probablemente la única respuesta viable.
Si quieres hacer un desarrollo casual del juego , probablemente deberías considerar Flash o una tecnología similar.