¿Que querríais en un tutorial de Unity?

MaikelOrtega

Buenas a todos. Me gusta mucho el movimiento que hay por aquí, y quiero contribuir aunque sea un poco al crecimiento de la comunidad gamedev.

No puedo considerarme profesional, ya que lo único que he ganado con los videojuegos hasta ahora fue un juego flash que vendimos a Armor Games. Pero llevo unos años currando con Unity y seguro que algo puedo aportar.

Este verano hice un tutorial de iniciación a Unity en un blog, pero por cosas ( :ninjaedit: ) lo perdí todo. Así que me he dicho: "venga, vamos a repetir la misma soplapollez, pero esta vez dale a la gente lo que pida".

Y de ahí el post. Veo a muchos que quieren iniciarse por aquí y no saben muy bien por donde empezar.

¿Qué os gustaría que tratara en el tutorial? ¿Programación básica? ¿Mecánicas concretas? ¿Cámara? ¿Algún tipo de juego en especial?

Bueno, a ver que os parece la idea. Espero vuestro comentarios :D

11
Selbryn

#1 Generación aleatoria/procedural de un mapa estilo roguelike!

2
Yandr0s

Estructura basica de una escena, o lo minimo necesario para crear algo "jugable"

Pasos basicos para introducir un personaje y animarlo

Fisicas y colisions, como tratar las colisiones entre objetos

Generar un mapa dinamico/actualizar la pantalla con los objetos que se vean en el momento

Algo sobre GUI / menus

Y ya se me ocurrira algo mas :D pero ahi tienes pa currar XD

7
MaikelOrtega

Hombre esto es para ir planificando, a ver que nos sale.

B

Gestión de escenas de forma avanzada y tema GUI

YaW

Bueno, yo soy el caso de usuario al que le gustaría aprender Unity viniendo de otro lenguaje de programación así que mi caso te puede valer.

Para mi un tutorial de Unity crema explicaría como hacer un mini-juego sencillo entero. Desde empezar a meter cubos y formas básicas hasta cambiarlos por modelos 3D, implementar las físicas, controles, condiciones de ganar/perder, multi-pantalla (para ganar, menú, etc).

Creo que los tutoriales de raywenderlich están muy bien precisamente porque siguen estos pasos (http://www.raywenderlich.com/?s=unity&cof=FORID%3A10)

2
qunram

Mecanim, Profiler. Creo q son 2 temas interesantes a tratar.
Por otro lado, buenas practicas en el scripting, como por ejemplo, pool de objects, audio manager, quitar todos los updates q no se usen, no usar foreach en updates y métodos q se usen mucho, usar bucles q se ejecuten 1 o 2 veces por segundos para cálculos q no necesitan una precisión de frame a frame, etc...

Son cosas q usamos día a día y no sacamos tiempo para contarlas! :p

Spacelord

Diferencia entre versión gratuita y de pago en cuanto a posibilidades en el desarrollo. Si hay cosas que directamente no se pueden hacer.

1 respuesta
qunram

#8 quizá esto te ayude:

¿Por que la Pro?
http://unity3d.com/pages/why-go-pro?utm_source=facebook&utm_medium=social&utm_campaign=gopro

Comparativa:
http://unity3d.com/unity/licenses

1 1 respuesta
R

sistema de control de versiones
estructuración de un proyecto grande (mas de una escena)

Muy buena iniciativa, ánimos :D

1 1 respuesta
Clicspam

+1 a #10

Todavía no se usar el git xDD

De todas formas eso realmente no tiene que ver con Unity no?

1 respuesta
qunram

#11 Si tiene q ver, hay formas de configurar el proyecto dependiendo de que gestor de código vas a usar. Yo por ejemplo uso TFS en el trabajo y la mejor opción que he encontrado es una en conjunto de TFS con Git.
Para los proyectos que hago en solitario, uso TFS sin mas. En el menu Edit->Project Settings->Editor: en el desplegable de Version Control, selecciono la opción de "visible metafiles" y una vez hecho esto, solo sincronizo la carpeta de Assets y la de ProjectSettings

Spacelord

#9 Sí, lo leí y conozco las diferencias, lo que no acabo de entender es qué diferencia supone eso en la práctica. Es decir, en la licencia pro tienes esto, por ejemplo:

"Lightmapping with Global Illumination and area lights
Add that last 10% of realism to your scenes by unlocking the true power of Beast with Global Illumination."

Lo que me pregunto es si tener Global Illumination o no tenerla supone una diferencia tan grande como para plantearse rascarse el bolsillo. Hay features que no son nada del otro mundo (como el soporte para librerías propias, que si lo necesitas es que tu proyecto es grande y lo mejor es que compres la licencia), pero hay otras que no tengo muy claro si son relevantes o no.

1 respuesta
qunram

#13 este es uno de los motivos. Si te planteas hacer un AAA o al menos tener el aspecto de un triple A

Aquí tienes un vídeo con la diferencia entre uno y otro. Gracias a este vídeo es muy fácil de explicar este punto.
http://video.unity3d.com/video/4044158/pro-feature-lightmapping-with

No es el principal de los motivos q me propondría para pillar la Pro, pero todo suma! A mi el q mas me gusta es el Profiler, sin el, no habría podido hacer la mejora de rendimiento que hemos hecho al juego que acabamos de sacar.

Es un punto algo difícil de tratar, el de la Pro si o no, porque son muchas las features que hay que discutir, podríamos abrir un hilo a parte y hablar sobre cada una de las features.

1 respuesta
Spacelord

#14 ¡Gracias!

Yo me refería a proyectos pequeños, freeware y ese tipo de cosas. Por supuesto, para un proyecto del que se quiera sacar beneficio no discuto la necesidad de comprar la licencia.

MaikelOrtega

Bueno, gracias a todos por las aportaciones, voy a aclarar alguna cosa.

Mi idea es hacer un tutorial para iniciar a la gente, por lo que en principio trataría de hacer un videojuego paso a paso, completo pero relativamente sencillo. Por tanto, cosas que habéis comentado que incluiría:

-Estructura basica de una escena, explicacion del entorno etc...
-Generacion procedural (nunca lo he hecho en Unity, tenía ganas :P)
-Colisiones
-Fisicas
-Mapa dinamico (lo mismo que arriba, suena guay)
-GUI y menús
-Animaciones y audio básico
-Gestión de escenas

Cosas que no incluiría:

-Mecanim
Porque solo he trasteado con el proyecto del mecanim que sacaron al añadirlo. No he trabajado con el ni tengo soltura alguna. Es una chulada, sí, pero no podría hacer un tutorial de él.

-Profiler
No trabajo ya con la versión Pro, ya que la licencia que tuve en su momento se la quedó la empresa con la que trabajamos. Además, fue un compañero mío quien se encargó de ese tema, y aunque me parece muy interesante no tengo experiencia con él.

-Control de versiones
He usado tortoiseSVN para trabajar en proyectos grandes. En Unity? No, en Unity usé Dropbox. Sí, lo sé, MAL. MUY MAL. Es lo que pasa cuando postergas aprender Git. Hoy día sigo haciéndolo. Por tanto no soy nadie para hablar de control de versiones.

Y para terminar, sobre buenas prácticas, haré el código lo mejor que sé y comentaré las decisiones que tomo. Y quiero que las critiquéis. Así aprenderemos de buenas prácticas, incluido yo. Desde luego usaré managers entre escenas, y cosas así, pero seguro que hago alguna que otra barbaridad.

En resumen, tengo soltura con Unity (no Pro), he trabajado solo en UN proyecto grande, lo demás ha sido trapichear con juegos que nunca termino, y hacer alguna que otra cosa para jams pequeñas. También di una conferencia en Gamepolis haciendo un videojuego de tanques en directo en 1h.

Y... esto va camino del tochopost...

TL;DR;
El tutorial será sobre un juego terminado y funcional, de pequeña escala.
No usaré aspectos exclusivos de Pro, ni Mecanim.
No trataré gestión de versiones ni el trabajo en grupo.
La idea es que alguien que no sepa nada de Unity llegue, lo siga y haga un juego. Simple.

Bueno, perdonad el tocho, y de nuevo gracias por apoyar la idea. Mañana mezclaré lo que se haya puesto por aquí y pondré algo sobre el juego. Con suerte este finde estará el primer tutorial básico.

4
MaikelOrtega

Bueno, disculpad el doble post, lo hago para cerrar el tema.

Ya tengo el contenido del tutorial bastante bien atado. Voy a hacer un "Capítulo" por semana, empezando por lo más básico y añadiendo complejidad bastante poco a poco.

Como para muchos la barrera al empezar con Unity está en la programación, mezclaré capítulos de introducción al entorno con introducción a programar con C# al principio.
Trataré de hacer los tutoriales lo más entretenidos y concisos posible.

Por lo tanto el primer capítulo será:

-Introducción a Unity
:Contenido:

-Entorno
-Escena
-Gameobjects
-Inspector
-Scripts
-Métodos Start y Update
-Programación: Variables

1 1 respuesta
Jastro

#17 como molas, cuando lo tengas le dare uso seguro :3

Por cierto, explicaras el uso del 2D tambien o solo 3D?

1 respuesta
MaikelOrtega

#18 Pues en principio 3D, porque cuando trabajé con 2D tuvimos que programar nosotros la proyección y animación de sprites de cero, y desde entonces sé que han añadido un soporte nativo en condiciones pero nunca lo he usado. Aunque no descarto trastear con él, aprender a usarlo e incluirlo en el tutorial. Si hay gente interesada en aprender a usarlo, lo incluiré.

karlozalb

Me parece genial la iniciativa :)

Sobre los contenidos que se han mencionado, me interesan todos, es especial el tema de cambios de escena.

Y si puede ser, algo de shaders y/o meshes (cosas de más "bajo" nivel por asi decirlo), también estaría de p*** madre! :)

eZpit

El control de versiones en unity tiene un problema que son los merges. Para trabajar solo o para trabajar en grupo usando escenas independientes esta bien, pero al intentar 2 personas trabajar sobre una misma escena se lia la cosa.

1 respuesta
B

#21 eso lo evitas usando git y creando ramas nuevas para cada bug/feature. Cuando esté resuelta la rama merge a dev/master y listo. Como es rama nueva los commits de terceros no te afectan hasta que haces merge de ramas.

1 1 respuesta
pablofer2

Otro mas interesado en el tema. Lo sigo de cerca.

eZpit

#22 El problema reside en los merges de binarios de Unity, como las scenes. Hay una opción para pasar los binarios a texto, pero aun así las scenes mergeadas dan problemas, ya que fusionar dos scenes no es tan trivial como fusionar dos ficheros de código.

La solución es trabajar en escenas diferentes y luego hacer el merge a pelo desde unity copiando y pegando elementos. Por suerte en Unity hacer esto es facil.

2 respuestas
B

#24 no tengo ni idea de como trabaja Unity pero no puedes poner los binarios en la lista de ignore para no versionarlos y que Unity los genere al ejecutar la escena? o es que Unity trabaja solo con binarios?

2 respuestas
Selbryn

#25 #24 Seria genial que crearais un hilo para tratar ese tema por que mucha gente lo iba a gradecer( Yo el primero), como trabajar con Unity en equipos de desarrollo con Mercurial o Git.

2 respuestas
B

#26 yo es que nunca he trabajado con unity, de ahí mis dudas.

eZpit

#26 Si tengo un rato haré un tutorial

#25 La escena es un binario que contienen toda la información generada graficamente con el editor de Unity (que es más o menos según como se utilice unity). Esta manera de guardar la información al final va en contra de los sistemas de control de versiones, ya que impide combinar correctamente el trabajo realizado paralelamente sobre una escena. Para solucionarlo, los de unity habilitaron la opción de almacenar las escenas como texto(horriblemente largo y poco optimizado), para que se pudiesen mergear, pero el problema es que no está del todo bien hecho y hay problemas graves y dificiles de solucionar al mergear.

2 1 respuesta
MaikelOrtega

#28 Es un problema con el que tuvimos que lidiar en Spirit Fencer Arena, y sólo eramos dos programadores. Si el grupo es más grande, el meneo que puede resultar eso puede ser enorme. Nosotros optamos por que solo uno tocara las escenas, pero claro, solo eramos dos. Supongo que se puede encauzar un proyecto para tener poca complejidad en las escenas y dejar el peso en prefabs y scripts. O incluso usar scripts de pre-carga de escena (aunque puede ser peor el remedio que la enfermedad).

En fin, que sería genial tener un tutorial sobre Git, mi gran asignatura pendiente, encima orientado a Unity. Espero que tengas tiempo :D

kresnik

Yo tambien estoy interesado.. me tendreis por aqui :D