Aprenda Unity aquí: Aprenda Unity – Tutoriales de Best Unity | Hackr.io
La pregunta de C ++.
Déjame sacar el gorila de 800 libras en primer lugar. C ++. Esta es una de las preguntas más controvertidas y repetitivas de todas. Los nuevos desarrolladores escuchan a otros desarrolladores que C ++ “es lo que usan los profesionales” y, por lo tanto, quieren usar eso. Para empeorar las cosas, las personas que responden a las preguntas a menudo también son desarrolladores nuevos y recomendarán lo que saben, lo que obliga a las personas a utilizar un lenguaje que probablemente no deberían. Francamente, si solo ha usado un solo idioma, ¡realmente no debería estar respondiendo este tipo de preguntas!
Muy bien, volviendo a toda la pregunta de C ++. ¿Debes empezar a aprender con C ++? NO. Mira, no, tal vez, no hay respuesta fácil o advertencias, es simple, C ++ es un lenguaje épicamente estúpido para empezar. Es casi lo mismo que empezar a aprender matemáticas al comenzar con el cálculo avanzado. De nuevo, tonto. Si va a escuchar un solo consejo que le doy, NO COMIENCE CON C ++. Sé, por supuesto, que va a ignorar completamente este consejo y comenzar con C ++, pero en 3 o 4 años, cuando tenga las cicatrices y el trauma de ignorar mi consejo, lo haré con suficiencia * tisk tisk * y darte lo mejor “te lo dije!”. Ofreceré otro consejo mientras esté en ello … ¡cualquiera que recomiende que comiences con C ++, en el futuro ignora sus consejos!
No me malinterpretes, entiendo perfectamente por qué quieres ir con C ++, soy igual de culpable. Recientemente compré un juego de palos de golf y soy un horrible jugador de golf, pero tengo un juego de “cuchillas” porque eso es lo que usan los profesionales. El gotcha? No soy un golfista profesional, y Dios mío, estos clubes de golf arruinaron totalmente mi juego de golf. A veces, usar lo que usan los profesionales no es lo correcto. Muy bien, fuera de esa tangente.
Nuevamente, estas son solo mis opiniones (¡y las de la gran mayoría de las personas que recorrieron este camino por sí mismas!) Y sé que de todas formas va a comenzar con C ++, pero no diga que no le advertí, porque Están cometiendo un error realmente estúpido.
Ahora, si de hecho tomó la decisión de seguir adelante con C ++, por el amor de todo lo que es santo, NO USE DevC ++. Es una opción antigua, sin apoyo y muy inferior en todos los niveles medibles. No te preocupes, cubriré las opciones más tarde.
Programación es … programación
Este es un poco deprimente pero completamente cierto. No hay nada realmente mágico en la Programación de Juegos. Es programación, pura y simple. En mi vida profesional, he hecho programación de juegos, programación de herramientas, desarrollo de aplicaciones de escritorio, aplicaciones para teléfonos móviles, desarrollo web, desarrollo empresarial e incluso he creado un inicio de Internet. A través de todo eso, la programación, aunque para propósitos muy diferentes, fue casi siempre la misma. ¡Demonios, el código más avanzado (y difícil) que he escrito en Javascript! Ahora la mayor diferencia con el desarrollo del juego … matemáticas, sí, vas a tener que aprender matemáticas.
De todos modos … ¿por qué menciono esto? Simple, antes de poder programar juegos, necesitas poder programar. Sé que suena horriblemente obvio, pero te sorprenderías de la frecuencia con la que la gente accede directamente a la programación del juego sin aprender primero lo básico. Dicho esto, mi primera línea de código estaba en el intento de crear un juego. Todavía lo recuerdo hasta el día de hoy:
10 IMPRIMIR “¿CUÁL ES TU NOMBRE?”
Todo lo que realmente significa es que lo primero que tendrá que aprender es lo básico de la programación. No te preocupes, eso lo cubriré más tarde también.
La cosa mas importante es…
Hacer algo. Realmente, lo más importante que puede hacer es comenzar a escribir código, comenzar a aprender, saltar. Toda la planificación, el soñar y la formación de equipos es muy divertido, pero lo más importante que puede hacer es, um … hacer. Saltar, aprender, cometer errores, la experiencia será invaluable.
Tu primer juego no será bueno. Tu segundo juego no será mucho mejor. Pero si terminas un solo juego, lo has hecho mejor que el 95% de las personas que vinieron antes que tú. No planee un MMO, está más allá de usted, incluso con un equipo de unos pocos cientos de personas. Demonios, apuntar mucho más alto que Pong se está preparando para el fracaso. Elige algo pequeño y ejecuta. Nuevamente, hay un 99.99% de probabilidad de que su juego no sea publicado, así que acérquelo como la experiencia de aprendizaje que es.
Nada frustra más a los nuevos desarrolladores que la falta de progreso. Por eso los objetivos pequeños y factibles son tan importantes. ¡Nada motiva como el éxito!
¿Debo usar un motor o crear el mío?
Suponiendo que usted es un nuevo desarrollador, francamente, esta es una pregunta prematura. Sujete los conceptos básicos de la programación antes de siquiera pensar en usar o, peor aún, crear un motor. De lo contrario, está duplicando su carga de trabajo, ya que aprende tanto un idioma Y un motor. Como nuevo alumno, debe minimizar el número de asignaturas que necesita estudiar a la vez, ya que puede sentirse abrumado rápidamente si trata de aprender todo al mismo tiempo.
Ahora, una vez que tienes la esencia de las cosas y estás empezando a crear un nuevo juego, esta es una pregunta muy válida. Una cosa a tener en cuenta, un motor como UDK o Unity son decenas o cientos de miles de horas de trabajo de horas … ¿quieres repetir ese esfuerzo? Generalmente, especialmente para un desarrollador pequeño, es mejor usar un motor, doblemente si se trata de hacer un producto de calidad comercial.
Dicho esto, si lo ves como un ejercicio de aprendizaje … ¡hazlo! Aprenderás un montón de cosas interesantes y útiles trabajando en un motor propio. En general, si se trata de un ejercicio de aprendizaje, ¡tiene mucho sentido hacer cosas que no tienen sentido!
La conclusión más importante de esta sección es que, si es nuevo en el desarrollo, dedique un poco de tiempo a la programación de aprendizaje, luego haga esta pregunta más adelante.
¿Qué bibliotecas y herramientas debo usar?
Este todo se reduce al idioma que elijas. Lo desglosaré por idioma en unos minutos.
¿Cuáles son mis opciones de idioma?
Muy bien, este es un poco complicado, ya que, francamente, hay literalmente cientos de lenguajes de programación, pero cubriré los más populares.
C ++: este es el lenguaje que no debes elegir, pero sin duda lo hará.
Es profesional … puede acercarse al metal, es la opción profesional, muchas bibliotecas comerciales y gratuitas de terceros y está bien soportado en todas las plataformas.
Es contras Casi todo lo demás. Se requieren 10 veces más líneas de código para hacer cosas simples, es como hacer malabarismos con las granadas de mano vivas, su proceso de compilación es primitivo y difícil de manejar, la sintaxis es dolorosa, la curva de aprendizaje es abrupta y las bibliotecas estándar son terribles.
Dificultad de aprendizaje: difícil
EDIT: –8/16/2011 Para ser honesto, he sido demasiado duro con C ++. No me malinterpretes, esto no significa que lo estoy respaldando para los nuevos desarrolladores, ¡sigue siendo una mala idea! Sin embargo, con el aumento del iPhone (que está basado en Objective-C, pero es compatible con C ++) y Android (que está basado en Java, pero también es compatible con C ++) como plataformas de juegos, la popularidad de C ++ está en aumento.
C: vea C ++, que es un superconjunto de C. Hay razones para usar solo C y, francamente, es un poco más fácil de manejar, pero es como regresar a la Edad de Piedra.
Dificultad de aprendizaje: medio
C # – revelación completa, en igualdad de condiciones, este es el lenguaje al que voy. En general, este es el lenguaje que no es C ++ que la mayoría de las personas recomendará y por una buena razón. C # es un derivado moderno de C ++, en el sentido de que se basó en C ++ (y no en Java como comúnmente se sostiene).
¿Los profesionales? Excelentes bibliotecas estándar. Probablemente el mejor en cualquier plataforma que he usado. Así que cosas como trabajar en la red, manipular cadenas, cargar archivos, etc. son mucho más fáciles que en C ++. Ah, y LINQ, los genéricos, los métodos anónimos y varias otras características “nuevas” del lenguaje son bastante buenas.
Es contras Probablemente el más grande es, está vinculado a Microsoft y eso hace que muchas personas se sientan incómodas. Como resultado, su mejor implementación es en plataformas de MS, aunque está disponible en OS / X, iOS, Android y Linux, sí tiene que saltar algunos más aros fuera de MS-land. A continuación, se recolecta la basura, lo que significa que no asignas memoria de forma implícita. Finalmente, en algunos aspectos, puede ser más lento que C ++, aunque creo que este punto está muy extendido en estos días.
Dificultad de aprendizaje: medio
Java : Java es un tema difícil de escribir, debido a mi sesgo de C #. Utilicé Java antes de que apareciera C # y pude ver cómo era más productivo que C ++ y aprecié las bibliotecas que lo abarcaban, especialmente cuando me estaba moviendo de C ++ en un momento en que la Biblioteca de plantillas estándar era cualquier cosa menos estándar … dicho esto, ya que C # vino A lo largo, me parece un lenguaje superior en casi todos los sentidos.
¿Los profesionales? El ecosistema es masivo, las herramientas y el soporte de la biblioteca son innumerables. Hay nueve formas de hacer todo en Java, y la cantidad de herramientas gratuitas (Eclipse, NetBeans, Ant, etc.) son realmente asombrosas. En cuanto al lenguaje, es muy parecido a C #, las bibliotecas son mucho más capaces que C ++ y es mucho menos probable que el lenguaje te muerda en el culo si cometes un pequeño error. Además, si está haciendo el desarrollo de Android, hasta hace muy poco (con soporte para C ++ añadido) era el único juego en la ciudad.
¿Los contras? Java solo tiene esta forma de molestarte, de meterte en tu camino porque piensa que sabe mejor que tú. Partes del lenguaje son torpes, demasiado verbosas y otra vez … simplemente molestas. En los últimos años, ha estado evolucionando de forma mucho menos elegante que C #, por lo que las características más nuevas del lenguaje parecen ser hijastros feos mal implementados a medias en comparación con C # (y en algunos aspectos, C ++). Además, Java es el lenguaje de los académicos y las empresas y muestra … tantas cosas están tan abrumadoramente OVER diseñadas para volverte loco, como dije antes, hay nueve formas de hacerlo todo, pero 5 de esas formas son obsoletas, 3 son horribles y descubrir cuál es la buena elección, depende de usted. Finalmente, la selección de la biblioteca de juegos es bastante limitada.
Oh, y Oracle los posee ahora … de todas las compañías de tecnología en el mundo que quisiera tener a cargo de mi idioma de elección, Oracle seguro que no sería la compañía que escogería. Para las personas que piensan que Microsoft es el diablo … ¡no conocen Oracle! Sus juicios a la izquierda, a la derecha y al centro (incluido Google / Android) no me harían sentir bien con las cosas.
Dificultad de aprendizaje: medio (*)
(*): Averiguar QUÉ usar, de los cientos de bibliotecas, funciones obsoletas, herramientas, etc. es abrumador y probablemente será un desafío tan grande para un nuevo desarrollador como aprender el idioma en sí.
Visual Basic: para ser honesto, desde .NET, este lenguaje murió efectivamente. El uso de VB6 es francamente demasiado anticuado como para preocuparse por estos días, lo cual es un poco de vergüenza, ya que llenó un nicho muy bonito que no se ha llenado completamente. Ahora, VB.NET Shop es básicamente C # con una máscara VB’ish aplicada. Estoy seguro de que los desarrolladores de VB.NET Shop no estarán de acuerdo, pero … están equivocados.

Delphi: fue un momento en el que recomendaría este idioma, pero esto no ha progresado bien para Delphi. Irónicamente, el tipo que inventó C # era el tipo detrás de Delphi. El soporte simplemente no está allí, lo cual es una pena, ya que el lenguaje es muy amigable para los desarrolladores más nuevos.
LUA / Python / Ruby: Honestamente, solo he incursionado en estos 3 idiomas y mientras que los 3 son (y comercialmente han sido) buenos idiomas para incrustar en un juego, solo Python realmente tiene una comunidad de desarrollo de juegos realmente sólida. A su alrededor, probablemente sea la mejor recomendación para los nuevos desarrolladores. Los 3 idiomas definitivamente deberían estar en tu radar. Mi experiencia es muy limitada en todos los aspectos, por lo que realmente no me siento cómodo haciendo una sugerencia de una manera u otra. Si eres un defensor de cualquiera de estos idiomas y quieres escribir una sección sobre ellos, ¡envíamelo para su inclusión!
EDITAR: Si estás interesado en Lua, asegúrate de visitar los motores de juego de Battle of the Lua para obtener más detalles.
Una gran ventaja de estos tres idiomas es que puedes programarlos interactivamente, lo que significa que debes escribir un código y ver un resultado. Cuando solo estás tratando de resolver las cosas, ¡eso es bastante poderoso! Más adelante en este post, cubriré principalmente Python, el más popular de los tres, especialmente en lo que respecta a la programación de juegos. También está Iron Python, que es una implementación de Python en la plataforma .NET, lo que significa que obtienes todas las bibliotecas disponibles para C # y VB.NET Shop.
C ++ .NET: sobre el tema de los lenguajes .NET, C ++ también creó una versión “especial” de C ++, con palabras clave adicionales para hacerla compatible con las bibliotecas .NET y un modo que hace que la administración de la memoria sea automática. Dicho esto, fue un tipo de implementación a toda prueba y nadie lo aceptó, por lo que probablemente pueda ignorar C ++ .NET por completo. El único caso de uso real que se me ocurre es que, si solo conoce la sintaxis de C ++ y desea realizar el desarrollo de GUI con WinForms, este puede ser el camino a seguir. Dicho esto, ese es un caso de uso bastante maldito menor!
JavaScript: no sé cómo este pequeño lenguaje logró encajar en todos los nichos, ¡pero maldición si no lo hace! La mayoría de la gente piensa en JavaScript como un lenguaje de scripts web y, sencillamente, es su uso más común, pero este lenguaje se usa en casi todas partes. Vale la pena aprender, ya que está realmente en todas partes, y aunque comenzó la vida como un truco, ha demostrado ser capaz una y otra vez. No es mi idioma favorito para trabajar, pero no es el peor, ¡por mucho! Si aparece un nuevo paradigma de programación, puedes apostar a que una implementación de JavaScript aparecerá más pronto que tarde. Dados HTML5 y Windows 8, Javascript solo será más popular en el futuro, aunque no estoy seguro de que esto sea algo bueno. Javascript es un lenguaje basado en prototipos. En total, Javascript tiene un soporte de biblioteca bastante bueno cuando se trata de juegos, y es uno de los idiomas disponibles cuando se usa Unity.
EDITAR: Si está interesado en JavaScript, asegúrese de revisar la lista de bibliotecas de juegos de JavaScript, así como mis tutoriales Cocos2D-html. También tengo un par de recomendaciones de libros de JavaScript.
Asamblea: si usted, como principiante, elige la asamblea en esta época, hizo algo mal, ¡muy mal! ¡Elegir el ensamblaje como su primer idioma hace que C ++ se vea como una opción maravillosa! Dicho esto, esto es lo más cercano al metal que se puede obtener razonablemente. Sin embargo, en esta era de i7 procesadores de cuatro núcleos, acercarse a ese metal es una cosa bastante estúpida. En algún momento, la Asamblea puede ser importante para usted, pero lo dudo mucho. Hasta que lo haga, pretende que no existe.
El Resto – Espero no haber perdido su idioma de elección, ya que hay Objective-C, D, F #, CAML, Smalltalk, LISP, Perl, PHP, Haskel, Pascal y algunos cientos de otros idiomas disponibles. Muchos de ellos son lenguajes específicos de dominio o plataforma, o tienen un soporte de biblioteca de juegos bastante deficiente. ObjectiveC está ganando popularidad debido a que es el lenguaje principal de las plataformas iOS, pero fuera de ese mundo es prácticamente desconocido y, francamente, lo odio. No lo recomiendo contra ninguno de estos idiomas, pero ninguno es realmente adecuado o muy popular para el desarrollo de juegos.
Pero soy artista, ¿por dónde empiezo?
En ese caso, probablemente debería comenzar aquí. Escoge una aplicación y ve con ella. Muchos de los programas en esa lista tienen versiones gratuitas / demo disponibles. Además, la lista de aplicaciones utilizadas de GFS está principalmente llena de aplicaciones gratuitas utilizadas para crear juegos.