03. Paneles
Jerarquía
El panel dedicado a la Jerarquía contiene todos los GameObject de la escena que tengamos abierta ordenándolos jerárquicamente. Es el equivalente al árbol de nodos en SpriteKit de Apple.
Podemos hablar de GameObjects Padres e Hijos.
Como elemento matriz (padre) del que parten todos los demás (hijos) tenemos a la Escena de que se trate en cada caso. Como elemento ilustrativo del potencial de desarrollo con el que cuenta Unity, un hijo de la escena puede ser Directional Light.
Para agregar GameObjects a la Jerarquía podemos hacer uso del menú dedicado en la parte superior. Podemos modificar la estructura jerárquica arrastrando los elementos correspondientes dentro del panel cambiando sus disposiciones relativas.
Un asterisco junto al nombre de la escena en el panel Jerarquía significa que hemos añadido GameObjects y no se han guardado.
Igualmente puedo añadir GameObjects clickando botón derecho dentro del espacio vacío del panel. También podemos añadir nuevas escenas en el propio panel de Jerarquía, si bien mayoritariamente no trabajaremos con escenas simultáneas.
Contamos con una barra de búsqueda propia a este panel que facilita enormemente el trabajo en desarrollos de mediana entidad, con grandes cantidades de objetos en escena, que se pueden contar por miles.
La Barra de Búsqueda del panel Jerarquía será de gran utilidad.
Para determinar que un GameObject sea descendiente de otro lo arrastramos superponiéndolos hasta que aparezca un círculo, generando las estructuras anidadas necesarias para crear personajes o cualesquiera elemento compuesto.
Durante nuestros desarrollos usaremos profusamente este panel de Jerarquía.
.
Escena
En Escena es donde visualizamos los GameObjects dispuestos en Jerarquía. Cuando selecciono un GameObject en Jerarquía aparece también seleccionado en el panel de Escena. Entre ellos veremos un GameObject para cámara representado con un ícono a tal fin (cámara), así como un GameObject asociado a la luz implementada (sol).
Una luz direccional ilumina toda la escena en una sola dirección.
Podemos generar GameObjects vacíos que también formen parte de la escena. Cuando los seleccionemos aparecerá un eje de coordenadas en tres dimensiones, al igual que para el resto de GameObjects.
Un GameObject seleccionado aparecerá rodeado por un contorno naranja.
Para cada GameObject tendremos un eje de coordenadas en tres dimensiones que también aparecerá cuando esté seleccionado.
El eje X se corresponde con el rojo, el eje Y con el verde y el eje Z con el azul.
Dentro del panel Escena contamos con diversas herramientas. Mediante Shaded podemos visualizar la textura (material) específica asociada a cada GameObject: el material por defecto presenta una textura gris blanquecina.
Los materiales de los objetos sirven como soporte sobre los que colocaremos nuestras texturas personalizadas.
Desde Shaded accedemos a un menú que nos muestra diferentes tipos de visualizaciones tales como WireFrame (alambicada) o Shaded WireFrame que nos muestra ambas visualizaciones combinadas.
Visualmente debemos entender que los polígonos se definen mediante tres puntos (triángulos) y la manera de generar formas complejas será encadenar dichos polígonos. La cara de un cubo estará formada por dos polígonos.
Las mallas 3D están formadas por polígonos.
Para Unity cualquier tipo de superficie en tres dimensiones quedará definida mediante esta sucesión de triángulos que eufemísticamente llamaremos polígonos. Y es que un triángulo es un polígono, pero no todos los polígonos son triángulos.
También una esfera estará conformada por una serie de polígonos (triángulos) encadenados.
Desde Shaded también accedemos al resto del menú que nos ofrece visualizaciones avanzadas que incluyen conceptos tales como la iluminación o el mapeado. Más adelante profundizaremos en estas posibles visualizaciones para la Escena.
Las visualizaciones de la Escena adquieren una gran importancia para obtener un control preciso de lo que ocurre en la misma.
Para una visualización en dos dimensiones contamos con un botón específico 2D junto al menú desplegable anterior que permite abolir el eje Z visualizando exclusivamente los ejes X e Y sin ningún tipo de perspectiva.
Tendremos situaciones de posicionamiento de elementos durante el diseño de mis niveles que resulte más propicia la visualización en 2D.
A continuación contamos con un botón de Iluminación que activa o desactiva la simulación de la misma como parte de la escena. Seguidamente un botón de Audio permite la misma activación y desactivación de los constituyentes de la escena.
La siguiente herramienta (botón) permite activar o desactivar efectos tales como SkyBox (Cielo), Fog (Punto de Fuga), Images Effects (Efectos de Imágenes) o el Particle Systems (Sistemas de Partículas).
Todas estas herramientas de activación/desactivación de elementos resultarán de gran utilidad en el proceso de diseño.
En la parte superior derecha contamos con la herramienta (botón) Gizmos que lista todos los aspectos de visualización de la iconografía que aparece en escena. Es decir, aquellos iconos ajenos a los GameObjects que nos reportan cierta información anexa.
Por último contamos también con una herramienta de búsqueda para encontrar GameObjects, de igual manera que en el panel de Jerarquía. Una búsqueda en el panel de Escena producirá simultáneamente una búsqueda en el panel de Jerarquía.
.
Orbitar | Moverse | Seleccionar
Para movernos exclusivamente a través del espacio 3D de las escenas comenzamos con una combinación de teclado que nos permitirá Orbitar: Alt + Click Izq. Esencialmente lo que haremos será cambiar el punto de vista de la cámara.
Orbitar nos permitirá tomar decisiones sobre movimientos, rotaciones o escalado de GameObjects.
Para movernos de manera lineal para cambiar el foco de atención de la escena utilizaremos la combinación: Alt + Q. Una vez seleccionado el movimiento utilizaremos el botón central del ratón para hacer los desplazamientos.
Esta posibilidad junto con Orbitar nos permitirá acomodar de manera suficiente cualquier coordenada de la Escena.
Para realizar un zoom (acercamiento) a un determinado punto hacemos: Alt + Click Der. Para realizar un acercamiento sobre un GameObject concreto debemos seleccionarlo previamente mediante Click Izqy presionar F (Frame Selected).
Un Doble Click Izq sobre un GameObject en Jerarquía hará las veces del Frame Selected manual, centrando dicho objeto en Escena.
Una vez seleccionado un GameObject mediante Frame Selected podemos orbitar alrededor del mismo de la misma manera explicada anteriormente.
Contamos con otra manera de orbitar tomando el control de la cámara y operando a modo de FPS (First Person Shooter) haciendo Click Der y utilizando W|A|S|D a modo de cursores, como ocurre en ciertas mecánicas de videojuegos.
La cámara del panel Game se corresponde con el GameObject Main Camera de la Jerarquía.
La selección de Main Camera en Escena nos previsualiza la ventana Juego, como resultante final de lo que se vería durante la ejecución de la misma.
Con estos movimientos junto con los movimientos asociados a GameObjects será con lo que trabajemos principalmente dentro de Unity.
.
Mover | Rotar | Escalar
Una vez entendemos cómo podemos movernos espacialmente a través de la Escena debemos entender la manera de particularizar esos movimientos en los GameObjects.
Para desplazar un GameObject lo seleccionamos y arrastramos el eje en el que queramos efectuar el desplazamiento. Para realizar desplazamientos simultáneos en dos ejes debemos clickar sobre la superficie que los intersecta y arrastrar desde ahí.
Con la herramienta de Mover siempre voy a desplazar los GameObjects a través de sus ejes.
Para desplazar una determinada cantidad debemos considerar que Unity trabaja en metros. Cada cuadrado blanquecino de la malla que aparece en Escena tiene lados con una longitud de un metro.
Posteriormente veremos la manera de desplazar una cantidad exacta en un determinado eje a través del panel Inspector.
Para rotar pasamos a su herramienta específica a través del tercer botón de la Barra de Herramientas o mediante la pulsación de la tecla E. Nos aparecerán los tres ejes, de manera esférica en este caso, para que podamos arrastrar a través de los mismos. Para rotaciones combinadas no tengo más que clickarsobre interficies entre ejes.
Supongamos que quiero incluir paredes en mi nivel de juego: añado cuatro cubos, les aplico escalado y rotación y conformo de esta manera su disposición final.
Para escalar pasamos al cuatro botón de la Barra Herramienta o pulsamos la tecla R coincidente con la misma. Esta herramienta nos va a permitir escalar arrastrando desde cada uno de los ejes o de manera global arrastrando desde su centro.
Tendremos GameObjects que no podremos escalar, como una Luz Direccional.
Como combinación de todas las herramientas anteriores tenemos al sexto botón de la Barra de Herramientas con acceso mediante tecla Y, que nos permitirá mover, rotar y escalar. Suele resultar más cómodo trabajar con cada una de manera independiente.
En la esquina superior derecha contamos con otros 3 ejes de coordenadas que hacen referencia en este caso a la disposición de la cámara. Es una herramienta a modo de brújula que me orienta constantemente sobre la posición de la cámara.
La Brújula puede resultar de utilidad en niveles complejos con gran cantidad de GameObjects, en momentos en los que estemos situados entre ellos.
Desde la misma Brújula podemos desactivar la perspectiva 3D y pasar al equivalente del botón 2D clickando sobre el cubo intermedio donde confluyen los diferentes ejes de coordenadas. La palabra Persp bajo la brújula realiza la misma función.
Para bloquear una determinada configuración de visualización dentro del panel de Escena cuento con un candado en la esquina superior derecha, junto a la Brújula.
Para seleccionar elementos puedo hacerlo de manera individual o realizando un barrido de área, de igual manera que en otros programas de edición 2D/3D como AutoCad, seleccionando todos los elementos que se encuentren bajo la misma.
.
Centros
Una vez sabemos movernos dentro de Escena debemos entender la diferencia entre el punto de Pivote y el punto Central de los objetos. Recordad que seleccionado un GameObject se muestra su Gizmo para mover, rotar y escalar, emplazado en su centro.
Cuando se genera una Jerarquía con GameObjects el gizmo asociado al padre estará emplazado en el centro promedio de todos los objetos que constituyen la jerarquía. Todo esto afectará al movimiento, rotación y escalado.
Para independizar el gizmo asociado al padre puedo utilizar el botón Center/Pivot de la Barra de Herramientas. Con Pivot en selección conseguiremos independizar el gizmo del padre. Con Center en selección calculará el promedio de toda la jerarquía.
Los hijos de una jerarquía seguirán conservando sus gizmos independientes.
.
Local | Global
Para la ventana de Escena lo último que debemos entender es la diferencia entre los modos Local y Global. Todas las transformaciones anteriores (mover, rotar, escalar) podemos hacerlas desde dos perspectivas bien diferenciadas.
En modo Local realizaremos las transformaciones respecto al eje de coordenadas propio del GameObject de que se trate, que estará emplazado de una determinada manera dentro de la Escena, coincidiendo o no con el resto de objetos.
En modo Global realizaremos las transformaciones respecto al eje de coordenadas de la Escena, coincidente con el eje de coordenadas de la cámara, cuya disposición nos recuerda constantemente la Brújula situada en la esquina superior derecha.
Para un GameObject dado: el gizmo en modo Local seguirá la deformación situacional propia del objeto seleccionado, el gizmo en modo Global nos marcará la direccionalidad global coincidente con la cámara.
No obstante, tened en cuenta que la transformación de Escalado afectará al objeto en sí mismo, independientemente de que se encuentre en modo Local o Global. El escalado se hará desde el gizmo Local pero afectará al ambos por igual.
02. Unity 2018
Introducción
Una vez instaladas todas las herramientas que vamos a necesitar veamos con detenimiento cómo está distribuida la Interfaz de Unity, con la disposición de los diferentes menús y paneles que componen la totalidad del motor.
Además estudiaremos en profundidad cada panel para contar con una base muy sólida de la interfaz completa y las posibilidades que nos ofrecen en cada una de las secciones.
Con este conocimiento avanzado de cada aspecto de la interfaz que nos presenta Unity establecemos una base sólida sobre la que cimentar un conocimiento avanzado de tal manera que no tengamos lagunas de ningún tipo durante nuestro desempeño.
Necesitamos saber qué funciones cumplen cada uno de los menús y panelespara obtener un dominio completo del editor de Unity.
Aprenderemos igualmente a movernos en espacios 3D, una de las bondades y facilidades particularmente conseguidas del motor de Unity, que lo facultan de manera notable para desarrollar soluciones de Realidad Aumentada y Realidad Virtual.
.
Creación de Proyectos
Abriendo Unity se nos muestra una lista de proyectos que hayamos comenzado a realizar, manteniendo un historial con las rutas a dichos proyectos. En caso de cambiar manualmente la carpeta del proyecto de ruta, este dejaría de listarse.
Unity cuenta con servicios para almacenar proyectos en Cloud, listando igualmente todos los proyectos que tengamos en la misma. Contamos también con una pestaña Learn que nos enlaza con una serie de Tutoriales oficiales.
Contamos desde el mismo cuadro con botones New, para crear un proyecto nuevo, Open para indexar proyectos desde el explorador de Windows y My Account para listar las opciones de mi cuenta de Unity. Desde New definimos:
Nombre de Proyecto: es más elegante si no contiene espacios.
Localización: carpeta que guardará las librerías y recursos necesarios.
Plantilla: predefinidas por parte de Unity.
Paquetes Asset: podemos añadir los paquetes descargados previamente.
Analíticas Unity: permite establecer puntos de análisis para hacer un seguimiento exhaustivo de la actividad que realiza el usuario dentro del juego.
Localización: carpeta que guardará las librerías y recursos necesarios.
Plantilla: predefinidas por parte de Unity.
Paquetes Asset: podemos añadir los paquetes descargados previamente.
Analíticas Unity: permite establecer puntos de análisis para hacer un seguimiento exhaustivo de la actividad que realiza el usuario dentro del juego.
Conviene comenzar con el proyecto en blanco. Para añadir Paquetes de Assets de manera más eficiente, sin incluir todas sus opciones, lo haremos desde el propio motor.
Las Analíticas de Unity son una funcionalidad avanzada que nos puede reportar información muy valiosa para optimizar la experiencia de usuario.
Conocer dónde se detienen más tiempo nuestros usuarios o las secciones que no atraen su atención puede permitirnos optimizar nuestro juego en relación a los objetivos que tengamos como desarrolladores. Es decir:
Las Analíticas de Unity nos permite alinearnos aún más con nuestros objetivos.
Podemos activarlas igualmente dentro del editor de Unity, sin necesidad de activarlas desde la creación del proyecto.
Una vez pulsemos sobre Crear Proyecto comienza a generar los archivos necesariosconvenientemente organizados dentro de la carpeta asociada al proyecto. Una vez creada se abriráautomáticamente Unity.
Se crearán por defecto las siguientes carpetas dentro del proyecto:
Assets: donde trabajaremos todo el tiempo, tanto para la creación de scripts como para la importación de los recursos del juego.
Librerías: carpeta de sistema con todas las librerías con las que trabaja Unity.
Paquetes: librerías opcionales que podemos incluir en nuestro proyecto.
Configuración de Proyecto: almacena configuraciones que vamos estableciendo.
Temporal: creada cada vez que abrimos Unity para almacenar progresos puntuales que se establezcan durante la sesión de trabajo.
Librerías: carpeta de sistema con todas las librerías con las que trabaja Unity.
Paquetes: librerías opcionales que podemos incluir en nuestro proyecto.
Configuración de Proyecto: almacena configuraciones que vamos estableciendo.
Temporal: creada cada vez que abrimos Unity para almacenar progresos puntuales que se establezcan durante la sesión de trabajo.
NombreProyecto.sln: solución (conjunto de librerías) de Visual Studio que permite a Unity trabajar con C#.
Unity.PackageManagerUI.Editor.csproj: paquete en C# que faculta al Editor a manejar paquetes.
UnityEditor.StandardEvents.csproj: paquete en C# para faculta al Editor a manejar eventos estándar.
Unity.PackageManagerUI.Editor.csproj: paquete en C# que faculta al Editor a manejar paquetes.
UnityEditor.StandardEvents.csproj: paquete en C# para faculta al Editor a manejar eventos estándar.
Ambos paquetes escritos en C# permitirán realizar tareas de manera visual con el Editor sinnecesidad de que nosotros programemos el código asociado.
Si bien la cantidad de contenido creado para un proyecto supuestamente en blanco parece excesiva, vemos que son elementos de sistema más bien ‘pasivos’ a nuestro trabajo. La única carpeta que nos interpela todo el tiempo es Assets y será con la que trabajemos en nuestras sesiones de desarrollo.
Nuestro trabajo estará contenido en Assets.
.
Abriendo Unity
Una vez creado nuestro proyecto nos enfrentamos a la interfaz de Unity. La disposición en paneles permite una buena organización muy sencilla de entender y condensar en poco espacio múltiples funcionalidades.
En la parte superior tenemos la Barra de Información que nos traslada la versión de Unity que estamos utilizando, muy útil para conocer rápidamente la versión que utilizan nuestros eventuales compañeros de trabajo.
Dicha barra nos informa también de la escena que tengo abierta. Unity nos genera por defecto una carpeta de Escenas de igual manera que una escena inicial. Posteriormente estudiaremos las escenas en profundidad como aspecto esencial de Unity.
A continuación nos informa del nombre del proyecto en el que estemos trabajando y, por último, la plataforma para la cual estamos desarrollado nuestro proyecto.
La Barra de Información nos contextualiza perfectamente el proyecto que tenemos abierto en ese momento.
Contamos también con una Barra Menú Principal como recopilatorio de accesos inmediatos a las funcionalidades más demandadas del motor. Los recorreremos pormenorizadamente para un conocimiento exhaustivo de los mismos.
Continúa en sentido descendente una Barra de Herramientas para navegar entre diferentes configuraciones, ejecutar el juego en previsualización y trabajar en modo colaborativo en Cloud. Permite también acceder a las diferentes Capas.
Por último parecen los diferentes Paneles monopolizando en tamaño la interfaz del motor. Serán los diferentes Paneles los que nos permitan trabajar más profusamente con el contenido expreso de nuestro proyecto, de ahí su protagonismo.
Los Paneles permiten un alto grado de configuración para su adaptación máxima a nuestro flujo de trabajo.
Los paneles que aparecen por defecto son:
Jerarquía | Escena | Juego | Tienda Assets | Inspector
Proyecto | Consola
Proyecto | Consola
Recorramos todo lo anterior con detalle.
.
Menú Principal
Desde Archivo podemos gestionar cualquier tipo de archivo asociado a nuestro proyecto, tanto creación de Escenas como aspectos fundamentales del Proyecto tales como su Guardado o su Configuración de Construcción (plataformas de compilado).
En Unity podemos crear el Menú de Acceso de nuestro juego mediante una Escena.
La gestión completa de un proyecto Unity se hace mediante escenas. Cualquiera de las pantallas que veamos se trata de una Escena y las transiciones entre ellas serán transiciones entre escenas.
Para trabajar dentro del Editor de Unity siempre debemos tener una Escena abierta.
Recurriremos bastante al acceso Configuración de Construcción (Build Settings), siendo aquí desde donde podemos exportar nuestro proyecto a todas las plataformas en las que puede operar Unity, que no son pocas.
Desde Edición contamos con las operaciones básicas tales como Copiar, Cortar o Editar. Contamos además con herramientas para moverme dentro de las escenas así como las Preferenciaspropias del Editor para configurarlo a nuestro gusto.
En Preferencias trabajaremos principalmente con Herramientas Externas(External Tools).
Igualmente, la pestaña de Configuración de Proyecto (Project Settings) será muy recurrentedurante nuestro desarrollo. Siendo el Editor de Unity una herramienta muy visual, las opciones de configuración del proyecto nos permitirá un control muy exhaustivo y definiremos gran parte del mismo desde aquí.
Desde Assets podemos operar con todos los archivos que formen parte del proyecto. En Unity absolutamente cualquier elemento se entiende como un Asset, ya sean las Escenas (Scripts), las Texturas (Sprites), los Archivos de Audio, etc.
Desde GameObject contamos con herramientas para manejar cada uno de los Objetos de Juego, elementos esenciales para la vitalidad de nuestros juegos: fondos, diseños, personajes, iluminación, audios, etc.
Un GameObject está construido por Componentes.
Para definir un GameObject de Audio cuento con componentes de audio y para definir un GameObject de Física cuento con componentes de física. Esta obviedad nos revela la transversalidad tanto del concepto GameObject como del concepto de Componente.
Tanto GameObject como Componente son abstracciones que nos permiten manejar desde un único concepto la casuística completa de elementos que configura un videojuego.
Esta abstracción resulta muy elegante y nos permite pensar y gestionar nuestros proyectos de una manera mucho más eficiente que con otros abordajes.
Desde Ventana podemos añadir (o quitar) aquellos Paneles que consideremos pertinentes para que formen parte de nuestro Editor. Además de los Paneles que vemos por defecto existen otros que pueden resultarnos de utilidad.
Desde Ayuda podemos acceder a la web de Unity, gestionar nuestra licencia o recurrir a foros tales como Unity Answers para resolver dudas o problemáticas que se nos presenten. Contamos además con acceso a toda la documentación oficial.
Unity Manual nos enlaza al manual completo del motor y Scripting Referencenos enlaza al listado completo de Clases con las que contamos para Unity.
.
Barra de Herramientas
Contamos con diferentes herramientas agrupadas por funcionalidades en una barra superior dedicada. Primeramente contamos con botones que me permiten moverme a través de la escena. Puedo acceder a estas herramientas por teclado.
El acceso por teclado facilita enormemente nuestro trabajo. Por orden, de izquierda a derecha, serían las siguientes Teclas de Herramientas: |Q|W|E|R|T|Y|
Los dos botones siguientes nos permiten mover objetos de manera individual o agrupados (Center|Pivot), además de establecer la posición del Eje de Coordenadas (Global|Local).
Continuando hacia el centro nos encontramos con botones para ejecutar y pausar la ventana Game que nos muestra qué ocurre durante el desarrollo del juego, contando con la posibilidad de realizar una ejecución frame a frame.
La ejecución frame a frame permite una depuración de errores muy precisa implementada, en este caso, mediante la sencillez de un botón.
Nos encontramos por último con botones para la gestión del proyecto. Comenzando con el Sistema de Colaboración y Cloud, un acceso directo a mi cuenta, el Sistema de Capas (Layers) así como un Organizador de Paneles (Layout) que nos permite modificar la disposición estándar de los mismos.
Algunas herramientas específicas de nuestro proyecto pueden requerir una disposición de paneles que trascienda la organización por defecto.
Podemos crear nuestras propias organizaciones de paneles y guardarlas mediante Save Layout.
.
Estructura de Paneles
Nos resta recorrer los paneles y entender su disposición. En lecciones posteriores vamos a profundizar en cada uno de ellos. Los paneles presentan interdependencias dependiendo del elemento con el que esté trabajando.
Layout es la composición global de los paneles. Conviene diseñar Layouts personalizados para nuestras diferentes situaciones de desarrollo.
Los paneles pueden agruparse por pestañas. Para cambiar la situación de un panel simplemente lo arrastramos con el ratón. Podemos también maximizar cada uno de los paneles en caso de que puntualmente los necesitemos a pantalla completa.
Podemos dejar paneles libres, fuera de la matriz original, y llevarlos de manera independiente a otro monitor.
También se nos permite duplicar los paneles principales. Puede tener sentido disponer cuatro vistas de una Escena de igual manera que se hace en programas 3D.
![Unity - Cuatro Escenas](https://danerifuture.files.wordpress.com/2019/01/unity-cuatro-escenas.png?w=640)
Es resumen, podemos mover los paneles prácticamente donde y como queramos. Esto permite un alto grado de personalización dejando margen a los desarrolladores para que adapten la interfaz a su particular flujo de trabajo.
01. Introducción
Recursos
Cuando visualizamos por completo un curso aparece un trofeo al final de la barra de progreso permitiéndonos descargar un certificado de finalización. No obstante, en cualquier momento podemos restablecer la barra de progreso para volver a empezar.
En Descripción podemos ver tanto anuncios recientes por parte del instructor como preguntas recientes por parte del alumnado.
En Contenido del Curso aparecen listadas todas las secciones del mismo. En la primera lección de cada sección encontraremos los archivos y recursos necesarios.
En Preguntas y Respuestas podemos preguntar directamente al autor del curso. La plataforma nos permite añadir extractos de código como parte de la pregunta.
La sección de Preguntas y Respuestas es de gran utilidad ya que podemos consultar a un programador experimentado.
Además, contamos con la opción de búsqueda contextual para navegar entre el marasmo de preguntas que pueda existir. Si nuestra problemática ya le ha ocurrido a otra persona ahorraremos tiempo. De la misma manera que con Stack Overflow (Castellano).
Podemos ver Preguntas y Respuestas asociadas específicamente con un determinado video en la parte inferior del mismo durante su reproducción.
En Marcadores podemos guardar lecciones marcadas como favoritas. Igualmente podemos marcar momentos específicos para cada video añadiendo comentarios de 140 caracteres. Es una buena forma de tomar notas y señalar lo esencial.
En Opciones podemos habilitar (o no) el envío de correos para notificación de nuevos anuncios o promociones.
.
Motores de Videojuegos
Vamos a recorrer las posibilidades que tenemos para realizar videojuegos conforme a la estética que queramos implementar. Los motores que referimos a continuación presentan sus ventajas y desventajas pero, en cualquier caso, son más que suficiente para desarrollar la mayor parte (todos) de los videojuegos que nos podamos plantear.
Contamos con GameMaker como motor de juegos 2D realizado por YoYo Games. Permite desarrollar para (casi) todas las plataformas. Se trata de un motor muy potente si te vas a centrar exclusivamente en dos dimensiones. Presenta su propio lenguaje de programación. Para usarlo debemos adquirir una licencia. Podemos verlos aquí.
Un motor gratuito para videojuegos 2D/3D es Godot. Permite realizar proyectos de gran calidady cuenta con una gran comunidad de soporte. Funciona con su propio lenguaje de programación. Podemos verlos aquí.
Para trabajar con entornos muy realistas contamos con CryEngine. Es un motor muy potente apropiado para proyectos avanzados. Para usarlo debemos adquirir una licencia. Requiere además conocimientos técnicos avanzados en creación de videojuegos, utilizando como lenguaje de programación C++. Podemos verlos aquí.
CryEngine es un motor complejo, de igual manera que Unreal o Unity.
Para aprender un motor complejo debemos dedicarnos 100% una buena temporada. Carece de sentido aprenderlos todos.
Contamos con Unreal como motor muy poderoso con el que trabajan muchos estudios. Permite desarrollar para (casi) todas las plataformas. Es muy versátil. Diseñado específicamente para crear videojuegos en primera o tercera persona. Utiliza como lenguaje de programación C++ además de programación gráfica mediante Blueprints.
Unreal requiere gran procesamiento gráfico durante su programación, siendo el aspecto visual su mayor fortaleza.
Unreal es un motor particularmente adecuado para proyectos de Realidad Virtual al ser un entorno conceptuado expresamente como una experiencia en primera persona. Podemos verlos aquí.
.
Unity
Unity es uno de los motores más potentes que existen. Utiliza como lenguaje de programación C#. Cuenta además con una documentación muy completa. Nos permite prototipar muy rápido. Permite desarrollar para (casi) todas las plataformas.
Como entorno de desarrollo está muy bien organizado. Permite desarrollar videojuegos 2D/3D. Presenta, además, múltiples herramientas complementarias al núcleo del motor.
Destacamos particularmente la comodidad con la que permite trabajar en entornos 3D.
Dicha comodidad no le resta potencia. El uso del lenguaje C#, como lenguaje nativo de Microsoft, nos permite acceder al ecosistema de desarrollo .NET en todas sus formas.
C# es un lenguaje muy extendido, cómodo de entender y con una documentación tanto en inglés como en castellano de gran profusión.
A nivel de gráficos aún se encuentra un poco por detrás de Unreal y CryEngine, pero son diferencias a tener en cuenta tan solo a tener en cuenta para juegos AAA.
Unity es la mejor opción para comenzar a hacer videojuegos. Los tiempos de desarrollo son notablemente menores que con otros motores.
.
Web Oficial Unity
Encontramos información de gran utilidad en la web oficial, que mantienen muy actualizada con novedades y bondades del desarrollo con Unity.
Desde Producto encontramos las diferentes licencias con las que podemos trabajar. Nos refieren además de manera pormenorizada todas las características que presenta el motor como entorno de desarrollo.
Desde Roadmap encontramos las funcionalidades que Unity planea implementar. Puede ser de utilidad en caso de que vayan a implementar una funcionalidad que necesitamos.
En Demos encontramos proyectos que despliegan las más altas capacidades del motor. Podemos suscribirnos al adelanto de versiones desde Beta Program.
Desde Soluciones encontramos los diferentes módulos que permiten desplegar los diferentes servicios que Unity nos permitirá desarrollar:
Juegos: 2D, 3D, AR/MR/VR.
Películas: Entornos 3D en tiempo real.
Transporte: Diseño para fabricante de automóviles.
Gambling: Contenido para apuestas en línea.
XR: Cinemática VR, Mobile AR, Video 360.
Películas: Entornos 3D en tiempo real.
Transporte: Diseño para fabricante de automóviles.
Gambling: Contenido para apuestas en línea.
XR: Cinemática VR, Mobile AR, Video 360.
Creado Con Unity contiene demostraciones destacadas para cada tipo de proyecto que podemos crear con este motor. Destacamos juegos visualmente tan minimalistas y atractivos como los siguientes:
Monument Valley
![monument valley](https://danerifuture.files.wordpress.com/2019/01/monument-valley.jpg?w=420&h=420)
Golf Club: Wasteland
![wasteland](https://danerifuture.files.wordpress.com/2019/01/wasteland.jpg?w=640)
Desde Comunidad tenemos diversos foros de Preguntas/Respuestas que nos pueden ayudar profusamente con problemáticas recurrentes, ahorrando un tiempo sustancial. Encontraremos referencias a errores propios del motor.
Desde Conocer contamos con documentación oficial aprender a utilizar el motor en su conjunto de manera pormenorizada. Conviene visitarlos aquí.
.
Instalación
Para comenzar a programar con Unity necesitamos instalar tanto el propio motor Unity 2018 como el entorno de desarrollo Visual Studio 2017 para el lenguaje C#.
Comenzamos instalando Unity 2018 desde Obtener Unity en la web oficial. Contamos con tres tipos de licencias para su instalación:
Personal: Principiantes con ingresos menores a 100.000 $.
Plus: Aficionados con ingresos mayores a 100.000 $.
Pro: Profesionales que necesiten una personalización avanzada.
Plus: Aficionados con ingresos mayores a 100.000 $.
Pro: Profesionales que necesiten una personalización avanzada.
En todas las licencias podemos acceder a todos los módulos del motor. La diferencia entre la licencia Personal y las licencias de pago se fundamenta en los servicios asociados que nos ofrecen junto con el motor.
Tenemos acceso completo al poder del motor con cualquier licencia, incluida la gratuita (Personal).
Los servicios externos de las opciones de pago no facilitan necesariamente el desarrollo con Unity, aunque para desarrollos muy complejos si puede tener sentido.
Para instalar cualquiera de las opciones debemos registrarnos y tener un Identificador Unity o Unity ID. Nuestro identificador nos permitirá acceder desde cualquier dispositivo a compras de módulos realizadas en el Asset Store.
Debemos contar con Unity ID antes de comenzar la instalación.
A continuación descargamos el instalador que corresponda, ya sea para Windows o para Mac. Comenzamos de esta manera la instalación guiada por el archivo descargado. Conviene elegir la instalación de los siguientes componentes:
Standard Assets
Microsoft Visual Studio Community 2017
Android Built Support
iOS Built Support
Vuforia Augmented Reality Support
Microsoft Visual Studio Community 2017
Android Built Support
iOS Built Support
Vuforia Augmented Reality Support
Instalamos lo esencial para trabajar con las plataformas mayoritarias. No obstante, cualquier módulo que no instalemos ahora podrá ser instalado más adelante.
Derivada de la instalación anterior se te invitará a instalar Visual Studio. Recordad que lo hemos marcado como componente a descargar. Terminamos por tanto de instalar este extremo, necesario para los aspectos más puros de la programación.
Una vez instalado probemos a ejecutarlo. La pantalla de presentación de Unity 2018 resulta tal que:
![unity 2018](https://danerifuture.files.wordpress.com/2019/01/unity-2018.jpg?w=640)
En primera ejecución Unity te hará un cuestionario posterior a la inserción del Unity ID. Esto les sirve para contextualizar tu cuenta de usuario.
Probemos con la creación de un proyecto de prueba para confirmar que la instalación se ha realizado correctamente. Abierto Unity creamos un C# Script para comprobar que la instalación de Visual Studio también se ha realizado correctamente.
Project > Assets > Create > C# Script
Ejecutando el Script que acabamos de crear dentro de la interfaz de Unity debería abrirse automáticamente Visual Studio de manera externa, permitiendo acceso de edición a dicho Script en el entorno de Visual Studio.
Finalizamos aquí la instalación de todas las herramientas que vamos a necesitar para comenzar a programar con este motor de creación que nos permitirá desarrollar proyectos de gran entidad.
Con Unity extendemos nuestras capacidades de desarrollo y nos equiparamos a lo que pueden hacer grandes firmas con profusos equipos de programadores.
Como reflexión, pensad que actualmente, con Unity u otros motores, podemos crear y publicar de manera trivial desarrollos que hace apenas una década requerían de extensos equipos de programadores.
Unity, como cualquier tecnología lo suficientemente avanzada, nos convierte en humanos mejorados.
0 comentarios :
Publicar un comentario