He puesto un post muy parecido en alguna respuesta privada a algún compañero del foro y en algún post de ayuda. Os dejo aquí en forma de guía para que os sirva a todos aquellos que teneis interés en iniciaros un poco en Unity3D etc. en vista de que ultimamente hay bastantes interesados.
---------------------
Tutoriales y el idioma
En primer lugar el tema de conseguir material para aprender a usar unity3D en español lo habrá, pero ninguno es oficial y no creo que ninguno esté a la altura de los tutoriales oficiales.
Para estas cosas toda la buena documentación está en inglés. Pero lo bueno es que los videos de unity son cortitos y muy fáciles de seguir.
Decidir qué rama o "rol" quieres aprender
Lo más probable es que quieras en principio trastear un poco y después decidir que tipo de demo o juego quieres hacer, pero antes de nada deber saber que realizar un juego involucra distintas ramas de especialización.
Las más definidas por así decirlo son por un lado la "creación de contenido" (modelos 3D, texturas, animaciones...) y la "programación del gameplay" (la lógica del juego) . Lo normal y lo más realista es centrarse completamente en una de las 2 ramas y conocer un poco lo básico de la otra.
En el caso de la mayoría de vosotros ahora mismo probablemente no conoceréis mucho de ninguna de las dos ya que estáis empezando, pero no os preocupéis por que nadie nace sabiendo.
IMPORTANTE: En esta guía os indicaré qué tutoriales seguir para dar vuestros primeros pasos en el uso básico del motor y en la programación de gameplay. Tanto si elegís profundizar en la programación de gamepley o en la creación de contenido a todos os vendrá bien seguir los tutoriales.
Pros y contras de cada "rol"
Cada uno de las 2 ramas o "roles" que hemos dicho tienen sus pros y sus contras. Os aseguro que tratar de aprender las 2 en profundidad no es una opción muy viable.
Si el rol que más te gusta y al que decides dedicar más tiempo es:
1.- La creación de contenido:
PROS
Podrás controlar el aspecto visual de los objetos de juego, qué forma tienen exactamente, qué texturas, las animaciones exactas que quieras etc. Esto es una enorme ventaja, por que a diferencia de ejemplos de código de programación no hay apenas material gratuito para poder hacer un prototipo y menos si buscas algo medianamente específico.
CONTRAS
La mayoría de artistas 3D, animadores etc. conocen también cómo programar, pero a un nivel básico. Me explico, es normal que un diseñador sepa programar, eventos propios de la creación de mapas como pueden ser por ejemplo añadir la lógica de un ascensor, o una cámara de vigilancia o incluso cierta lógica sobre los personajes pero es probable que te sientas perdido si necesitas realizar otro tipo de lógica diferente a la de los tutoriales.
2.- Programación de gameplay:
PROS
Especializarse en esta rama implica que a diferencia de los diseñadores deberás poder controlar como funciona todo en el juego, que causa cada reacción cómo son las mecánicas de juego etc. Pero no solo eso, si consigues aprender a pensar en terminos de POO (programación orientada a objetos) podrás por ejemplo crear tu propio protocolo de red que extienda el de unity (que deja mucho de desear por defecto) o aprender a crear una inteligencia artificial decente y elaborada de verdad, sistemas de combates innovadores, o incluir soporte para cosas que no vienen de serie en el propio motor creando plugins etc.
CONTRAS
Normalmente es complicado encontrar modelos 3D, con su esqueleto y animaciones para poder jugar un poco con ellos y hacer algún prototipo. Por otro lado es necesario también aprender unos conceptos básicos sobre diseño 3D como qué es una malla, un mapeado UV, qué es un mapa de normales etc.
"Prerrequisitos" o trasfondo propio
¿Tienes algún tipo de trasfondo en algo previamente? Me refiero, ¿Tienes nociones previas de programación o de scripting? o ¿Sabes modelar animar etc?
En mi caso previamente antes de meterme con esto ya sabía programar (soy ingeniero informático).
No es que sea estrictamente necesario saber programar pero si ya sabes programar en algún lenguaje aprender a usar el motor es trivial, pero si no, no solo se trata de aprender a usar el motor si que loo más importante es coger las nociones más básicas para programar al menos.
EMPECEMOS CON LOS TUTORIALES BÁSICOS
En cualquier caso, sepas programar o modelar ya o no, yo empezaría con la sección de tutoriales de unity3D, donde podreis encontrar bastantes listas de reproducción muy facilitas de seguir aunque están en inglés. Al final os dejo el link donde están todas las listas[1], pero no empeceis con ninguna por el momento, iremos paso a paso y os iré comentando en qué orden verlos para ir avanzando paso a paso y cuales necesitais ver y cuales no.
IMPORTANTE: Os recomiendo completamenta que vayais probando todas estas cosas mientras vas viendo los videos por que se te queda todo mucho mejor.
Antes de nada voy a hablaros de unos pocos conceptos básicos sobre Unity3D y otros motores de videojuegos.
Lo primero que vais a encontrar seguún abrais el editor de unity es una vista de la escena o "scene".
Una "scene" es un como un mapa, un espacio 3D que podeis utilizar para incluir contenido de cualquier tipo a vuestro juego. En el mismo proyecto podeis tener la cantidad de escenas que querais con las transiciones que sea entre ellas etc
Las "Scene" se llenan con objetos de juego o "GameObjects".
Un "GameObject" es básicamente un punto y una orientación en el espacio. Estos "GameObject" pueden estar directamente incluidos en la escena o formar parte de una jerarquia de otro "GameObject". Cuando un objeto de juego está dentro de la jerarquia de otro significa que si su superior en la jerarquia se mueve, él tambien lo hace.
Pensad por ejemplo en la tierra y en nosotros. Cuando la tierra se mueve nosotros nos movemos con ella. O cuando nos montamos en el coche y éste se mueve, nosotros lo hacemos con él. Pues así se comportan también las jerarquias de "GameObject"
Estos "GameObject" al fin y al cabo son solo puntos vacios en el espacio pero a los que podeis añadir multiples componentes ó "Component".
Los "Component" son de diferentes tipos y añaden contenido en ese punto del espacio. Por ejemplo, podemos añadir un "Mesh Renderer" a un "GameObject" el cual hará que en esa posición del espacio de muestre una malla 3D, o un "Box Collider" que hará que el objeto colisone con el entorno como si fuera una caja.
Entre estos "Comonent" hay uno especial que es el "Script".
Los "Script" son ficheros de texto que el motor de Unity3D interpreta y ejecuta y en los cuales puedes especificar el comportamiento de los "GameObject", "Component" y cualquier otra cosa que exista en el motor.
1.- Introducción al editor
*Sección "Editor":
unity3d.com/learn/tutorials/modu ... ner/editor
Sólo los videos de la dificultad "begginer". Te enseñan a moverte por el editor de Unity y a trastear un poco con él.
No te recomiendo los videos "intermediate" por que implica programar modificaciones para el editor y no son estrictamente necesarias.
2.- Tutoriales de programación
Ahora si no sabes nada de programación o de scripting (no sabes qué es una variable, una función, objetos, clases y como usarlos)
Aunque esto no es lo normal, en la documentación de unity han hecho también unos pequeños vídeos para introducir a la gente a esto.
Para programar en unity3D se pueden utilizar 3 lenguajes distintos: C#, Javascript o Boo (este último no conozco ni he visto de nadie que lo use).
Mi recomendación es utilizar C# más que nada por que aparte de que es algo más rápido que javascript, en los tutoriales oficiales de unity lo utilizan.
*Sección "Scripting":
unity3d.com/learn/tutorials/modu ... /scripting
Sólo los videos de "begginer", te enseñan esos conceptos básicos de programación para que puedas saber luego seguir el resto de tutoriales de como programar con el motor.
Los videos de "intermediate" son útiles pero no te recomiendo por que no son fáciles de seguir si no has programado antes y ya hay bastante por asimilar con los de "begginer".
3.- Tutoriales básicos del motor
*Sección "Graphics":
unity3d.com/learn/tutorials/modu ... r/graphics
Los videos de "begginer" también. Te muestran los componentes básicos que se puedes usar que se vean en el motor.
*Sección "Physics":
unity3d.com/learn/tutorials/modu ... er/physics
En estos videos te enseñan a usar la simulación de componentes físicos y como programar por ejemplo reacciones cuando colisionan 2 objetos, o como modificar sus propiedades etc.
*Sección "Audio":
unity3d.com/learn/tutorials/modu ... nner/audio
Esta es solo un video y es muy sencillita
*Sección "Animation":
unity3d.com/learn/tutorials/modu ... /animation
Esta es una de las más interesantes, enseña a usar el sistema de animaciones. Cómo poner animaciones a las mallas y también como conseguir que las animaciones se entremezclen bien etc.
------------------------------------------
Referencias
[1] Link a todas las listas de tutoriales --> unity3d.com/learn/tutorials/modules
I7 6700K / MSI 1070 Gaming X / MSI Z170 Gaming M5 / 16GB RAM DDR4 3000Mhz / Aerocool X-Strike 800W Gold