Como hacer copias de tu código de Unity con GitHub

Podriamos escribir un libro entero de las bondades de Git para el trabajo colaborativo y la gestión de versiones en un entorno como Unity. De hecho hay mucha literatura en internet para aprender a utilizar Git en todo tipo de entornos de programación.

Así mismo para aquellos que empiezan seguramente lo primero que deberían aprender como hacer una copia de seguridad periódica de sus proyectos.. y ya habrá tiempo para, poco a poco aprender todo el potencial de una herramienta como esta.

En su momento hice un tutorial para usar Git con una interfaz gráfica como SourceTree como punto de entrada al mundo de Git, pero en esta ocasión me gustaría explicar, paso a paso como utilizar GitHub para hacer copias de seguridad de tu proyecto en Unity. Para iniciar este proceso se deben hacer tres pasos:

1.- Crear una cuenta en GitHub

En la pantalla principal de GitHub debemos crear una cuenta nueva (Sign up) y seguir el asistente para tener una cuenta gratuita con los parametros por defecto que nos propone el sistema.

 

Una vez creada la cuenta nos propondrà crear un repostorio nuevo. Al pulsar el boton la página web nos pide el nombre del repostitorio y sus propiedades principales para definir quien podrá acceder al código (público para todo el mundo, privado sólo para el usuario y aquellos que invitemos). Además debemos seleccionar Add a Readme file, como buena práctica para documentar nuestro proyecto y el .gitignore de Unity para indicarle que no queremos que copie los archivos temporales cuando copie el código fuente en la nube.

 

Una vez generado tendremos una pantalla como esta donde nos muestra nuestro repositorio con los archivos que ahora contiene.

 

2.- Instalar un gestor de Git visual para hacerlo más fácil

Con el repositorio creado, pero vacio, debemos intalar un gestor de Git compatible con nuestros sistema operativo. En este ejemplo he usado el propio de GitHub para que sea mas fácil.

 

Una vez instalado nos saldrá una pantralla de de una manera fácil podremos enlazar nuestro repositorio que hemos hecho con la copia (Clone a repository from Internet) que usaremos en nuestro ordenador con Unity. En la imagen veremos la opción.

Cuando pulsamos la opción, se nos pide que seleccionemos que repositorio quermos clonar y donde queremos hacerlo de nuestro ordenado. Aquí hay que tener en cuenta que debe ser una carpeta vacia. Una vez clonado podemos ver visualmente el contenido con los archivos que en el paso 1 hemos generado desde GitHub.

 

3.- Generar el proyecto en Unity y enlazar

Con el repositorio clonado hahora nos toca crear un proyecto en Unity. Aquí hay que tener en cuenta que debe coincidir con la carpeta donde hemos clonado nuestro repositorio de GitHub. Aquí es donde debemos vigilar ya que al seleccionar la carpeta contenedora al crear el proyecto puede pasar que nos cree el proyecto en una carpeta dentro de la carpeta del repositorio

 

Si esto nos ocure deberemos mover los archivos para que el proyecto nos quede junto con los archivos .gitignore y no tengamos carpetas anidadas y el fichero .gitignore pueda hacer su funcion. En Windows deberia quedar como la figura.


4.- Hacer la copia de seguridad

Si ahora abrimos el programa GitHub veremos que ha detectado archivos nuevos en el repositorio. En el ejemplo de la figura detecta 33 cambios o archivos nuevos. En realiad hay muchos mas, pero son los archivos que le hemos indicado con .gitignore que debía ignorar ya que son archivos temporales.


Ahora debemos sincronizar con la copia que hay en la nube. Para ello debemos indicar un nombre para la versión que quermos sincronizar y podemos escribir una descripción para que nos quede mas claro lo que estamos actualizando. Al pulsar Commit preparamenos la versión para ser sincronizada.

Una vez creado el commit, debemos hacer la acción de sincronizar pulsando el boton Push origin y será entonces cuando la nueva versión se suba a la nube como una nueva versión de nuestro proyecto.


Una vez terminado si vamos a la página web de GitHub veremos nuestro repositorio actualizado con la nueva versión del proyecto.


Ahora siempre que queamos hacer una copia de seguridad de nuestro proyecto solo hace falta repetir el paso 4 para tener siempre la última versión del nuestro juego en la nube.

Controladores de personaje para Unity 3D

Como no me gusta inventar la rueda agradezco aquellos desarrolladores que comparten parte de su esfuerzo con la comunidad. En esta ocasión os traigo dos controladores de personaje para vuestros proyectos Unity 3D que he encontrado muy interesantes y que os pueden ayudar en vuestros proyectos.



En primer lugar tenemos a Dynamic Parkour System de Eric Canela. Es un plugin gratuito para Unity que permite a cualquier persona importar cualquier modelo y tener un controlador ya funcionando con capacidades de parkour como en los juegos de Assassin's Creed. 

Lo he probado en Unity y después de poner las dependencias (para que el Sistema de Parkour Dinámico funcione, requiere la importación de los paquetes de Cinemachine y del Sistema de Entrada ubicados en el Administrador de Paquetes de Unity.) ha funcionado perfectamente en un proyecto propio. 

Si os interesa o si estaís diseñando un juego con mecánicas como esta os recomiendo que le echéis un vistazo. Al final del artículo os dejo los enlaces de esta libreria.

 

El segundo proyecto que he encontrado sobre controladores de personaje es Traverser 2.0 de Aitor Simona. Traverser es un kit de herramientas de desplazamiento de jugadores gratuito y de código abierto que incluye Locomoción, Parkour y Escalada. Incluye animación procedimental, animación física, warping de movimiento personalizado y movimiento de raíz. Es autocontenido en un conjunto de scripts. Utiliza las habilidades dadas o expande el sistema a través de su flujo de trabajo de habilidades compartidas. En este caso la librería también es gratuita y la puedes utilizar en tus proyectos. 

 

Sin duda son dos excelentes opciones para con poco trabajo dotar a tus personajes de movimiento, escalada y parkour como tienes muchos juegos AAA que podemos encontrar en el mercado. Os recomiendo que les deis una oportunidad.

Datos 

 
 

Como crear un PressKit para tu juego

Como ya hemos explicado en múltiples ocasiones uno de los mayores problemas de los desarrolladores indie es como dar a conocer nuestro el juego a la comunidad. Algunas veces hemos hablado de la importancia de las redes sociales o de la compra de publicidad. Otro elemento a tener en cuenta es dar a conocer nuestro juego a través de medios especializados (foros, revistas, blogs especializados, publishers, etc) y para todos ellos necesitamos tener un kit de prensa. 

En este caso un kit de prensa o PressKit es una pagina web que contiene la información relevante sobre el juego, un resumen, material gráfico, logotipos para que terceras personas puedan utilizarlo cuando hagan referencia a nuestra juego en sus medios (webs, blogs, revistas, canales de youtube o cualquier otro método de promoción).

Una manera de hacerlo sería crear una página web al uso con el coste que tiene pero en este artículo querría compartir una estrategia que puede ser interesante. Yo para estos menesteres utilizo los recursos que ofrece IndieDB una página web especializada en juegos indie donde podemos registrarnos como desarrolladores para poder informar de nuestros proyectos y nuestros estudio.


En concreto, una vez registrados como desarrolladores podemos generar un presskit donde una vez implementados los campos requeridos generará una página web con formato presskit sin anuncios. Esta página puede ser privada hasta que esté terminada o requerida y una vez activada está publicada en internet. Además tendremos una página dentro de IndieDB para promocionar nuestro juego.

Yo personalmente recomiendo tener un presskit para cada juego que realicemos ya que es un recurso necesario si queremos promocionar nuestro juego de un modo profesional. Aquí tenéis el enlace de Space Farm, mi ultimo título.

El poder de una buena paleta

Como he comentado algunas veces el aspecto visual de un juego es muy importante para darle personalidad. Que un juego tenga algo distintivo es básico para destacar del resto. Esto puede ser una mecánica, los gráficos, la música o cualquier otro aspecto.


Hoy me gustaría compartir una herramienta web que nos puede ayudar en este objetivo visual. La página en cuestión se llama Lospec. En concreto me ha llamado la atención la sección de paletas ya que podemos aprender cómo utilizando un conjunto de colores impartir un carácter determinado a un juego.


Esta página está formada por un conjunto de herramientas donde entre sus múltiples opciones hay un foro donde compartir ideas, preguntas y respuestas, un recopilatorio de tutoriales de pixel art, un buscador de paletas de colores y un apartado con recursos donde encontrar software de pixel art (editores, utilidades, etc.).

Las paletas

En el apartado de paletas se nos ofrece un listado de paletas disponibles y un pequeño sistema de búsqueda para filtrar el tipo de paleta que estamos buscando. En cada paleta veremos su composición y una imagen de un juego de muestra para ver su efecto visual.

 

Una vez encontrada una paleta que nos guste podemos acceder a la información ampliada donde podemos encontrar una descripción, un ejemplo y la composición en colores en diferentes modelos de referencia para que la podamos utilizar. 

 
Además la dispone de una herramienta para analizar la paleta en cuestión y varias opciones para poder descargar un archivo con los datos de la paleta de utilizarla en el futuro (PNG, PAL, Photoshop ASE, Paint.net TXT, Gimp GPL, HEX) en nuestro software de edición preferido.


Otra opción es probar o incluso trabajar con la paleta seleccionada en su propio editor de pixel art que lleva incorporado y hacer nuestros trabajos directamente con una herramienta online donde podemos probar nuestra paleta o utilizar alguna de las clásicas que el sistema incorpora por defecto.
 

Una vez en el editor si vemos que necesitamos conocimientos adicionales para hacer alguna creación para vuestro juego podéis acceder al apartado de tutoriales donde hay una recopilación de diversas fuentes de pixel art, teoría de la animación, ejemplos, tutoriales, etc.
 
 

También podemos utilizar otras herramientas para trabajar con sprites que nos pueden ser muy útiles en nuestros juegos y ahorrarnos muchas horas de trabajo con el editor de imágenes. Si queréis podéis echarle un vistazo y como siempre os dejo los enlaces y el contacto para que le podáis dar una oportunidad.
 

Conceptos básicos: Recursos de Junmin Lee

Si hace unos días presentaba un canal de Youtube con recursos básicos en español, hoy me gustaría compartir un canal con recursos básicos en inglés. En este caso se trata del canal de Junmin Lee, una chica que explica los conceptes de Unity de una manera muy didáctica y permitirá a los que se inician a entender conceptos básicos como los Colliders, Rigidbody, Physics y Cameras.

Lo que mas me ha gustado de este canal es lo didáctico que es explicando los conceptos básicos a través de ejemplos, animaciones y diagramas. Si estas empezando en Unity o en el la programación de videojuegos te recomiendo que le des una oportunidad.


Datos 

 

Conceptos básicos: Recursos de Ludibyte Games

Navegando por la red he encontrado un recurso muy interesante. Encontrar cursos básicos que sean muy didactivos y visuales cuesta mucho y para aquellos que empizan o aquellos que quiren refrescar conceptos básicos esta muy bien encontrar con buen material.


En esta ocasión os presento un conjunto de vídeos en español del canal de Youtube de Ludibyte. En este conjunto de vídeos clasificados por temas. Estos vídeos es la parte gratuita de un curso mas extenso, donde los primeros 18 vídeos son gratuitos.


Creo que  es un bue material para aquellos que empiezan donde tener conpectos claros antes de sumerjirse en tutoriles concretos donde podemos ver como realizar un tipo de juego concreto. A veces tener los conceptos básicos claros ayudan a comprender mejor todo lo demás.

Datos 

 

Market Finder, localización a través de los números

Una de las estrategias que debemos saber consiste en aprovechar el esfuerzo de localización de un juego con una estrategia combinada a nivel de ASO para potenciar las descargas orgánicas de nuestro juego en ese mercado. 


Eso pasa por conocer el mercado que queremos explorar. Debemos conocer las lenguas que se habla, los indicadores principales económicos y sociales para poder fijar los precios de las compras en la aplicación o conocer si es mejor desarrollar para Android o para iOS. 


Para ello hay un servicio web gratuito que nos puede ayudar a hacernos una idea del mercado a explorar en función del nicho de aplicación del juego que queremos lanzar. Market Finder es un servicio asociado de Google que ofrece de manera gratuita información de los mercados internacionales en función de la categoría de la aplicación que queremos localizar. 


Para acceder a este servicio sólo debemos tener una cuenta Google, introducir la dirección del juego en nuestra tienda de aplicaciones e indicar a que categorías pertenece. En este caso Energy Up esta definido como un juego de la categoría Puzles.


A partir de aquí nos indica cuales son, según su criterio, los mercados potenciales más interesantes. En nuestro caso para un juego tipo puzle nos propone como mejores mercados China, Estados Unidos y Japón. De esta lista podemos seleccionar varios países para hacer una comparativa entre ellos y analizar sus datos macroeconómicos, sociales, lingüísticos y culturales para analizar y hacernos una idea de como son los usuarios potenciales y que modelo de negocio se ajusta mejor a cada territorio. 






Con toda esta información podemos tomar decisiones que afectan a la localización del juego y su modelo económico. En el ejemplo expuesto para juegos de tipo puzzle queda claro que el mercado indio es mucho mayor que el mercado japonés pero su capacidad económica para un juego basado en compras dentro de la aplicación no lo hace tan interesante. Así mismo el mercado japonés tiene la barrera lingüística ya que el ingles en Japón es residual y en la India tiene una implantación cultural que nos permite una entrada más rápida a su mercado. Todo son datos que debemos analizar… 

ASO para juegos. El nombre del juego, un enfoque práctico

En los textos introductorios al posicionamiento de ASO (App Store Optimization) hablan de la importancia de la definición de los elementos de la ficha de Google Play y Apple Store. Así mismo cuesta mucho encontrar un ejemplo claro de porque los cambios que sugieren los textos funcionan y como se llega a ellos más allá de la confianza en el texto explicativo.


Es obvio que más allá de poner unos buenos y llamativos screenshots, un icono que se atractivo y una descripción completa hay una estrategia común que hace que posicione mejor un juego que otro en las tiendas de aplicaciones. También hay herramientas y datos empíricos que podemos analizar para saber si vamos por el buen camino. En este artículo intentaré a través de ejemplos ver cómo podemos optimizar nuestros juegos para llegar mas y mejor a nuestro público. 

Planteamiento inicial 

Hemos terminado un juego y ahora queremos publicarlo en una tienda de aplicaciones. Antes de publicarlo debemos tomar algunas decisiones estratégicas para posicionarnos correctamente y tener una oportunidad entre millones de juegos móviles que compiten por el mismo mercado que nosotros. 

Una de las estrategias más utilizadas es acercarse a un juego de nuestro mismo nicho de mercado que ya tenga un éxito y esté bien posicionado y aprovechar su volumen de apariciones en las búsquedas o navegación para que la tienda de aplicaciones nos posicione cerca y aprovechar su estela para conseguir un conjunto de descargas orgánicas. Este acercamiento puede ser una aproximación directa o indirecta y no por el hecho de ser un clon de un juego que funciona. A veces esta similitud existe porque comparten alguna mecánica dentro del juego, la temática, el tipo de arte que utilizamos, el personaje o simplemente porque están ambientados en el mismo tema que nosotros. Escoger una buena estrella a seguir es determinante para promocionar nuestro juego en el mercado móvil. 

¿Podemos escoger un nombre de la aplicación que nos acerque a una aplicación de referencia relevante pero que a la vez encaje con algún elemento clave de nuestro juego? 


1.- Todo juego tiene un nicho de mercado 


En primer lugar, podemos ubicar nuestro juego en una categoría u otra. Google Play define un conjunto de categorías en los juegos que de una manera u otra ya define nuestros directos competidores. ¿Si nuestra aplicación no es conocida como hacer que la gente nos encuentre? 


El objetivo de esta elección es que, al navegar por la tienda de aplicaciones, esta nos propone una búsqueda temática por tipos de juegos y nos interesa aparecer lo más arriba en este ranking para que nos encuentren fácilmente y conseguir muchas conversiones. Si escogemos mal nuestra categoría los usuarios nos consideraran un juego mas entre un mar de opciones que no son realmente el tipo de juego que están buscando. 

Supongamos un juego como Energy Up. ¿Cómo debemos considerarlo? Analizando el tipo de juego podemos pensar que tenemos 3 opciones: ¿un juego de aventuras, un juego tipo puzle o un juego de estrategia? Debemos abrir las 3 categorías para ver si los tipos de juegos que nos muestra encaja con el juego que queremos publicar. 


Aunque podamos pensar que Energy Up encaja en un juego de tipo puzle, podemos ver que en esta categoría los juegos principales son juegos de tipo Match3 y algunos de conectar elementos, Tetris o juegos de bloques y bolas. Quedémonos de momento con esta idea por el momento.


2.- La temática como núcleo de la decisión 

Energy Up es un juego ambientado en un templo. Es un juego donde debemos conectar bloques con un centro de energía ambientado en un templo. Repito la frase para que nos podamos parar a pensar si nos puede ser una referencia. Si buscamos en la tienda de aplicaciones juegos de templos obtendremos un resultado como este. 


Los juegos en las primeras posiciones de la lista son Temple Run, Temple Run 2 y Temple Jungle Prince Run. Todos ellos son juegos de la categoría Arcade del nicho de juego conocido como endless run (debemos correr por un camino esquivando obstáculos mientras cogemos monedas en un camino sin fin). ¿Qué tiene que ver este juego con el nuestro? La temática sin duda. ¿Que pasaría si alguien buscara un juego a partir de una palabra como Templo (temple) y apareciera nuestro juego entre los anteriormente citados? ¿Qué implicaciones tendría? Y otra pregunta… ¿Nos interesa? 


3.- Gráficos y estilos de juego

Otro elemento a tener en cuenta es que la aplicación escogida se “aproxime” lo más posible a nuestro juego. Para ello tenemos herramientas como Phiture Screenshot Scraper, que nos permite extraer la parte gráfica de la ficha de Google Play o de Apple Store. Com este análisis podemos ver si nuestro juego encajará si conseguimos nuestro objetivo. La reacción de los usuarios lo veremos en la variabilidad de la conversión. Si los usuarios llegan a nuestro juego cuando buscaban algo muy diferente y entran en nuestra ficha, no descargarán el juego y seguirán buscando. 



Si en Google Play console, por ejemplo, vemos que tenemos una conversión del 30% y después de nuestro cambio conseguimos muchas mas visitas, pero la conversión baja al 5% no habrá salido a cuenta esta estrategia de aproximación y tendremos que buscar otra alternativa. Habrá que hacer números... y analizar los resultados. 

4.- Análisis de Keywords

Para validar nuestras hipótesis podemos utilizar alguna herramienta más para que nos ayude en esta decisión. Las herramientas ASO de este tipo ayudan a optimizar las palabras clave de su aplicación para aumentar el tráfico de búsqueda de la misma. 

En el mercado de pago hay muchas y muy buenas herramientas de ASO como App Tweak, SensorTower, TheTool, etc. Como herramienta gratuita yo recomiendo (ASOTools) que con sólo registrarse es 100% gratuita y nos ayudará en el análisis de palabras (keywords) y aplicaciones (apps). 

Volvamos a nuestro ejemplo. Energy Up es un juego 3D de tipo PUZZLE basado en un TEMPLO, donde debemos CONECTAR bloques. Estas herramientas permiten analizar el volumen de descargas que generan estas palabras y saber que aplicaciones están asociadas a ellas.  El problema es que el resultado de este análisis nos demuestra que las aplicaciones que se encuentran con esta búsqueda están muy alejadas de nuestro juego y aunque genera un volumen interesante, acceder a buenas posiciones es complicado (KD 61).


La idea principal es que si salimos en las primeras posiciones en palabras poco buscadas (volumen bajo) no nos interesa. Lo que buscamos es salir en las primeras posiciones en palabras que generen un gran volumen, o sea que se busquen muy asiduamente. Cuando decimos palabras no sólo nos referimos a palabras, sino que también pueden ser combinaciones de palabras. 

Como podemos ver, la palabra “Temple” es una buena candidata porque a través de ella se generan 673K búsquedas. Así mismo el encaje no es perfecto ya que las primeras opciones de aproximación no encajan con el género de puzles, pero veamos unos ejemplos:



Palabra de búsqueda

Volumen de búsquedas generadas

Dificultad Top 5

Temple

673.000

64

Temple run

450.000

15

Temple run 2

550.000

14

Temples

673.000

21

Templerun2

550.000

31

Shirley temple

550.000

21

Templerun 2

550.000

17

Run temple 2

550.000

15

Run temple.2

550.000

15

Temple run2

550.000

15


Este tipo de herramientas como ASOTools nos dan pistas sobre los nombres que son mas atractivos y la dificultad que tendríamos para entrar en el Top5 en una búsqueda orgánica (KD). Como podemos ver en la tabla la palabra Temple tiene un gran volumen de búsquedas, pero una gran competencia. En cambio, las variaciones de la palabra “Temple run” son mas “baratas” de conseguir con lo cual parece que nuestra aplicación debería tener en algún formato la combinación de palabras como título de la aplicación.

temple

run


El resto de los elementos del nombre buscado pueden salir de la realizar varias iteraciones al mismo proceso con varias palabras diferentes que deberíamos analizar para maximizar el volumen de búsquedas a la vez que el nombre resulte coherente en el contexto del juego.

También podemos hacer el análisis desde la perspectiva de la aplicación. A través de la herramienta podemos analizar que palabras se utilizan para encontrar el juego de referencia y así tener ideas de como completar el nombre que buscamos.



Como resultado una propuesta podría ser:

Temple

Free

3D

Puzzle

Run

Out

the

Maze



El nombre final debe cumplir los requerimientos de la tienda de aplicaciones y pasar el filtro de la tienda antes de ser publicado. Una vez publicado el nombre en la tienda debemos hacer un seguimiento de la evolución en las estadísticas en la tienda de aplicaciones. Por un lado, podemos ver el numero de accesos a la ficha del juego y de donde vienen los usuarios (exploración, búsquedas, enlaces directos) y ver el % de conversión que tenemos. El objetivo es aumentar el numero de visitas y el % de conversión. 


En nuestro ejemplo, hemos conseguido subir significativamente el numero de visitas a la ficha de Google Play, aunque al no encajar al nicho de mercado la conversión se ha visto afectada.

Además, con de las herramientas ASO podemos analizar nuestra aplicación respecto las palabras clave que deseemos. Queremos saber si a medida que pasan los días nos vamos posicionando cuando los usuarios buscan las palabras clave. Si nos convence el resultado siempre podemos hacer cambios y aprender de los aciertos y los fracasos.

En nuestro caso sólo el cambio del nombre ya afecta a los resultados. Evidentemente después debemos y podemos cambiar los otros elementos de la ficha de la tienda de aplicaciones. Deberíamos hacer los mismo con el icono, screenshots, descripción corta y larga, etc. Pero esto ya será en otro artículo. 

Enlaces


Como hacer copias de tu código de Unity con GitHub

Podriamos escribir un libro entero de las bondades de Git para el trabajo colaborativo y la gestión de versiones en un entorno como Unity. D...