Menu

lunes, 26 de marzo de 2018

Acceder y usar un repositorio con GitKraken

Últimamente he estado usando mucho GitKraken, un cliente Git gratuito para uso no comercial. Tanto en Xatapp para organizar todas las líneas paralelas de desarrollo como en un proyecto personal, fos, me está sirviendo mucho. Para mi gusto le ha ganado la mano a SourceTree, el oficial de Atlassian -aunque hace varios años que no uso SourceTree, la verdad.

Voy a dejar aquí una guía para quien necesite acceder a su repo. Ojo, la guía no cobre cómo crear y configurar el repositorio, sólo el acceso y el uso básico de GitKraken. Para la mayoría de los usuarios será suficiente.

Necesitarás la ruta de acceso al repositorio sobre el que quieres trabajar. Te la puede dar el administrador del repositorio.

Clonar el repo

1.- Descarga GitKraken.

2.- Ábrelo y disfruta de la animación. Ve a File->Clone Repo o pincha en la carpeta que aparece arriba a la izquierda


3.- Selecciona la primera opción. Elige el lugar donde quieres clonar el repo. Clonar un repositorio consiste en descargarse los datos a una carpeta. Pega la url del repo que te haya pasado el administrador y pulsa el botón verde. Verás cómo aparece una ventana azul y una barra indicando que se está descargando el repositorio.



4.- Puedes hacer un té mientras se descarga.

Trabajar sobre el repo

Siempre que vayas a trabajar sobre tu proyecto, antes de abrirlo, ten en cuenta lo siguiente: Git va a llevar un registro de todos los cambios que realices. Esos cambios estarán en tu ordenador. Cada vez que acabes una sesión de trabajo, puedes querer enviar los cambios o descartarlos.

¿Necesita mi equipo los cambios que yo haga sobre el proyecto? Si no los necesitan, basta con que lo clones, y hagas los cambios que necesites para ti. Suele ser una opción válida para diseñadores o gente que sólo necesita "lectura" sobre el proyecto.

Si necesitas enviar a tu equipo los cambios que hagas sobre el proyecto. Trata de seguir esta guía como si fuese un mantra: repítelo siempre así.

1.- Abre GitKraken (si usas Unity, mantenlo cerrado). Verás la secuencia de nodos del proyecto. Cada nodo es una "anotación" de cambios, "commit" en inglés.
2.- Pulsa el botón Pull. Ésto actualiza tu copia local, descargando cualquier cambio que haya en el servidor. Si es tu primera sesión después de clonar el repo, no hace falta.


3.- Si no es tu primera sesión, te conviene revisar en qué rama estás. Puedes estar en master o en una rama tuya. Mira a la ventana de la izquierda. La que esté marcada en verde, es la copia que está en tu ordenador. Si no estás en máster, lo más normal es que quieras pasarte ahí. Así que pulsa con el botón derecho y selecciona checkout master. Si quieres seguir trabajando en una rama, haz lo propio con esa rama.



3.- Si es tu primera sesión o ya terminaste con una rama, asegúrate de estar en máster y crea una nueva rama de trabajo. Pulsa sobre el botón Branch y dale un nombre identificativo de lo que vas a hacer. Ésto hace que puedas trabajar en una rama del proyecto sin que tus cambios afecten a los demás. No hagas ésto si ya creaste una rama en la sesión anterior.

4.- Si trabajas con Unity, cierra GitKraken y abre Unity. Ésto no es necesario en todos los sistemas operativos, pero en algunas ocasiones los permisos sobre los archivos, abiertos por ambos programas, te pueden dar problemas.

5.- Cuando acabes de trabajar, cierra Unity y abre GitKraken. Verás que aparece un nodo nuevo en la secuencia, arriba del todo. Representa los cambios que has hecho en el proyecto. Debería poner WIP (Work In Progress). Pincha en él para ver a la derecha el listado de archivos modificados, borrados o añadidos.

El repo de FOS


6.- Fíjate bien en ese listado. Son los cambios que has hecho. Puede que veas archivos que nos has cambiado. Son archivos que ha podido cambiar el motor, por ejemplo los meta, que guardan datos sobre los archivos originales. Normalmente no pasa nada porque los anotes. Puedes marcar todos los archivos, o ir uno a uno marcando sólo los que quieres anotar como modificados. Irán pasando a la ventana de abajo. Donde pone Summary, escribe un comentario de lo que has hecho (es obligatorio). Es el mensaje que aparecerá al lado del nodo.

7.- Cuando hayas escrito el mensaje, pulsa el botón verde. Ésto anota tus cambios de forma local. Ten en cuenta que no están en el servidor aún y que tus compañeros no pueden verlos. Verás que el icono del ordenador (a la izquierda de los nodos) está una línea más arriba que el del proyecto.

8.- Si quieres enviar los cambios al servidor (recomendado si no tienes mucha práctica), pulsa el botón PUSH. Verás que el icono del ordenador y el del proyecto se vuelven a poner en la misma línea.

9.- Ahora tienes 2 opciones. Si has terminado lo que estabas haciendo (tu rama), dile al administrador del repositorio que ya está lista. Él la combinará (MERGE) con la rama principal (normalmente master). Si no has terminado, no tienes que hacer nada. La próxima vez que abras el proyecto, comienza desde el paso 2.


Si trabajas con Unity, ten en cuenta que puedes tener problemas mergeando una escena modificada por dos o más personas.

martes, 30 de enero de 2018

Mi experiencia en la Global Game Jam 2018





Durante el pasado fin de semana, he asistido a la Global Game Jam en una de las sedes españolas del evento. Ha sido un esfuerzo organizativo conjunto de Media Lab Prado y los profesores del máster de videojuegos de la Universidad Complutense de Madrid. A ellos quiero agradecer desde aquí que hayan abierto esta posibilidad a los desarrolladores indies, porque siempre estamos de una forma o de otra mendigando espacios para reunirnos.

La Global Game Jam es el evento de desarrollo en 48 horas más grande del mundo. Este año hemos sido unos 30000 desarrolladores los que simultáneamente hemos creado juegos en todas las partes del globo.

El Tema
Concept inicial

El tema de este año ha sido Transmission, suficientemente ambiguo como para que cada grupo En mi última Global Game Jam, allá por 2014,  el tema fue mucho más intrincado. Pablo y yo teníamos un par de ideas en la cabeza. Después de hablar un rato, parecía claro que él quería experimentar con trail renderers, y yo con luces. Por lo que la idea vendría a ser algo como "transmisión de corrientes de luz". Yo imaginaba algo muy neón con una luz surcando la pantalla, aprovechando las luces dinámicas de Unity.
hiciese un poco lo que quisiese. Aparecieron ideas tipo conectar cables y algo tipo tetris, pero predominó la transmisión de luz o energía.




El Equipo
Cuando se formó el equipo, varias ideas más fueron apareciendo, y durante todo el viernes y el sábado fuimos tantenado con ideas submarinas, futuristas y cósmicas. Pero finalmente la sencillez del claroscuro, el tiempo y las complicaciones técnicas nos hicieron descartar algunas ideas.

Aki, Paul, Pablo, 0nironauta, Milo y Michi

Continuamente buscábamos la sencillez y el minimalismo, y es algo realmente difícil de conseguir. Afortunadamente el equipo que se formó, al cual hemos llamado Mad Controller, estaba lleno de gente muy dispuesta y que sabe calcular tiempos y alcances. Aquí pienso especialmente en Paul, con el que hablaba varias veces sobre lo difícil que es abandonar un concepto que has hecho o una idea que te gusta, en pro del proyecto. Uno de los retos de una jam es acabar el juego a tiempo. No es lo más importante, o mejor dicho, depende de cada uno. En nuestro caso, yo creo que todos teníamos claro que podíamos hacer un juego terminado, y fuimos a por ello.

Evidentemente hay cosas que se quedaron fuera, por ejemplo algunos de los niveles que hizo Michi, quien estuvo a saco preparándolos durante todo el fin de semana. También algunos audios de Aki y Milo se quedaron en la recámara, aunque sí dio tiempo a programar un switch para cambiar de un juego de música a otro (pulsando 1 y 2 en la pantalla de juego).

Sin duda, uno de los motivos de que el juego funcionase, fue que coincidimos gente con experiencia en jams y en juegos, junto con gente que no había venido nunca a una jam y tenían un empuje fresco y especial. Esa suerte, esa coincidencia, es la que ha hecho FOS.

 
Concepto del nivel
El Juego
Fos significa luz en griego. Palabras como fósforo o fosforescente probablemente tengan esa raíz. Uno de los puntos fuertes es la música progresiva que Aki desarrolló, y la agilidad de integración que permite FMOD. Para mí ha sido todo un descubrimiento y me alegro mucho de haberle conocido porque me ha abierto mucho la mente en el tema de audio, que siempre me costaba mucho integrarlo decentemente.


Nivel en Unity
Conseguimos desarrollar 11 niveles, pantalla de intro, créditos y menú de pausa. Además el juego guarda el progreso con PlayerPrefs. Tiene dos juegos de composiciones musicales progresivas, efectos de sonido, luces, partículas, temas para las diferentes pantallas y animaciones "sorpresa", algunas pensadas para la experiencia de usuario y otras para disfrute e intriga.

La Global Game Jam no tiene premios, pero los organizadores prepararon dos premios locales. FOS fue el juego más votado por los participantes en la jam, por lo que estamos muy contentos y muy orgullosos. Había muchas ideas muy buenas y creo que si ganamos ese reconocimiento fue sobre todo por la sencillez que conseguimos al transmitir la idea ;)

Los Jammers
Aunque no tuve tiempo de hacer fotos, en cuanto se cuelguen las de la organización me gustaría enlazar la de la fiesta de pijamas. De repente era como su hubiese pokémons en la sala, por lo que la falta de sueño mezclada con esa visión, y el ruido extraño de un torno o un taladro a las 3 de la mañana, creaban un ambiente irreal y una experiencia totalmente... alterada. Yo soy el típico programador de zulo que se relaciona sólo con los de su mesa, pero cuando el domingo pude relajarme un poco me gustó pasar por los otros grupos y ver lo que habían hecho (¡además teníamos que votar!). Aquí dejo mi selección personal de los proyectos que más me gustaron. 

Super Fok Magazine
Ganó el premio del jurado, merecidamente desde mi punto de vista. Personalmente le di mi mayor puntuación. El arte es, por decirlo de alguna manera, completísimo, rellenando perfectamente toda la pantalla con un estallido de color pop. Es súper original que desarrollasen dos aplicaciones: el juego propiamente dicho y la revista que tienes que mirar para ayudar a tu compañero. Este tipo de asimetría en multijugador me encanta. Además es muy divertido y tiene mucho contenido. A mí me daba un poco de vergüenza jugarlo porque te hacía sentir como una adolescente, lo cual es raro... y creo que también es parte de la gracia.


Cooking for God VR
Los juegos de realidad virtual presentan unas complicaciones especiales y son todo un reto para una jam. Es todo un mérito conseguir montar algo que funcione en tan poco tiempo, y además pelearse con los SDKs de Oculus y HTC y con la instalación del hardware. Me gustó mucho el modelado porque la resolución para el poco tiempo era impecable. Sin llegar al realismo, funcionaba perfectamente y te creías el entorno.
Este juego me gustó porque me pareció muy original la forma de plantear el multijugador. Consiste en una serie de niveles diferentes en los que entre dos jugadores manipulan a una serie de personajes. Por ejemplo el jugador 1 puede mover al personaje a la derecha y arriba, y el jugador 2 a la izquierda y abajo. No sé hasta que punto puede ser frustrante jugar con tu hermano pequeño, pero seguramente mucho. Además el arte 2S y 3Dtanto de los niveles como de los personajes era precioso.
Juego colaborativo (o no) en el que dos pequeños robots se van abriendo paso en un entorno 2D con perspectiva cenital, lleno de salas-puzzle. Tienen diferentes habilidades activas y pasivas, y el punto original está en que se controlan los dos con el mismo mando. Interesante concepto que podría dar mucho de sí.

sábado, 18 de febrero de 2017

LHC Selector MODs [#screenshotsaturday]


Crear una lista dinámica con desplazamiento en Unity es un proceso más tedioso de lo que debería, sin embargo dando los pasos correctos se puede hacer sin mayor problema. Ya sólo falta la magia del caballero DLuengo para darle estética al selector.






A continuación os dejo la configuración que he utilizado por si os sirve para vuestros proyectos.

Jerarquía

Panel principal (la máscara es opcional)

Objeto vacío necesario a partir de la versión 5.2

Panel para el contenido

Ejemplo de uno de los elementos de la lista

domingo, 12 de febrero de 2017

Actualización Space Invaders VR


El año pasado (bueno en 2015) publicamos Space Invaders VR. Sin pretensiones, sólo para probar un poco la realidad virtual para Cardboard y por experimentar. De hecho es un juego sin publicidad y sin compras integradas.

Se lo pasamos a un par de compañeros que tenían gafas de cartón, y el caso es que un año después hemos superado las 100 descargas ¿Son pocas? En términos absolutos, durante un año, por supuesto que son pocas. Pero en términos relativos, teniendo en cuenta que el márketing ha sido 0, es un resultado interesante. El boca a boca y el naming a hecho que el juego se descargue 100 veces, y son las cosas que nos gusta investigar. Tenemos habilitado Unity Analytics, por lo que sabemos que la mitad de ellas han sido de fuera de España. Mercado americano principalmente.

Así que hemos pensado que podríamos sacar una pequeña actualización del juego, que ha quedado así:





Básicamente hemos rehecho el juego desde cero :P pero hemos conseguido mejorar los gráficos, optimizarlo y darle más dinamismo. También hemos quitado la antigua interfaz de usuario y hemos puesto paneles muy simples, más apropiados para VR.

Además, tenemos un icono nuevo, cortesía de Alberto Fernández, que también está desarrollando juegos para VR.