Usar GIT (y BitBucket) con Game Maker Studio 2
Ya hablamos en su momento que es un Sistema de Control de Versiones, y ahora veremos como utilizarlo en Game Maker Studio 2. Recordemos que sólo se puede utilizar con cualquiera de las versiones de pago del programa, así que si no ves las opciones que comentamos, es porque estás con la versión trial.
Todos los pasos que vas a ver aquí, está en los blogs de Appstore de Amazon, concretamente hablo de éste, escrito por Alejandor Hitti (al que hicimos una entrevista no hace tanto en el blog, búscala, que dice cosas muy interesantes). Haré pequeñas adaptaciones para adaptar los pasos.
Crear una cuenta en Bitbucket
Ya comentamos que elegiremos BitBucket como repositorio en el servidor, porque nos permite usar proyectos privados gratis para equipos de desarrollo pequeños.
Iremos a la web de BitBucket y creamos una cuenta (o nos logueamos si ya tenemos una). En el menú principal le damos al botón de Crear, con el símbolo +.
Tenemos varias opciones para crear, elegimos crear repositorio. Un repositorio será un proyecto en Game Maker Studio 2. Las opciones para crear el repositorio son las siguientes:
- El dueño es tu usuario. Si perteneces a un equipo, también puedes crear un repositorio para compartir con los miembros.
- El nombre del repositorio no tiene que ser el mismo que el nombre del proyecto, pero no hace falta decir que ayuda si es así.
- Usaré el proyecto Tappy Plane para probar el resultado. Desmarcaré el nivel de acceso para que no sea un repositorio privado, y así cualquiera puede verlo y descargarlo.
- El fichero README es un fichero que puedes escribir lo que quieras. Es lo primero que ves en la página principal del repositorio, así que puedes valorar poner un pequeño manual o instrucciones. Mira el fichero README del proyecto Bootstrap en Github para hacerte una idea. De momento no haremos nada.
- Utilizaré Git como motor para el control de versiones. GMS 2 utiliza éste, pero con GMS 1.4 también puedes usar Mercurial.
- Las opciones avanzadas advanced settings, no sería necesario rellenarlo de momento, pero las opciones son:
- Descripción. Una pequeña descripción del proyecto.
- Forks. dejmos por defecto.
- Administración de proyecto. La gestión de incidencias nos permite que los usuarios envíen incidencias o problemas de tu proyecto, y así puedes controlar y resolver los bugs de tu juego. Con la opción Wiki nos permite crear una página web para documentar tu proyecto.
Ahora que hemos creado el repositorio vacío, podemos ir a Game Maker Studio 2 para configurarlo correctamente.
Configurar Game Maker Studio 2 para Git
Abrimos Game Maker Studio 2, y elegimos la opción de menú File – Preferences. Buscamos en el árbol de la izquierda la opción Plugins – Source Control (Git).
En esta pantalla, en la sección Identity, añadimos el usuario que hemos creado y un email. Ahora añadiremos información con el botón Add UsersPass Authentication.
El Username y el Password son los datos del usuario de BitBucket. El Repository URL lo debemos de conseguir del repositorio que hemos creado, en la sección de Resumen.
El formato que debe tener esa dirección web es el siguiente
https://usuario@bitbucket.org/proyecto/repositorio.git
Si no tienes creado un proyecto, será el nombre del usuario. Le damos al botón OK y guardará los datos. Ahora veremos que aparece un menú nuevo, llamado Source Control.
ACLARACIÓN: Estamos en las Opciones Generales de Game Maker. La URL es sólo para validar el usuario y contraseña que hemos introducido. Luego usaremos cada URL con su proyecto correspondiente.
Ya lo tenemos todo configurado correctamente. ahora estamos en la situación que ya tenemos el proyecto de Game Maker Studio, y lo debemos sincronizar con el repositorio del BitBucket vacío.
Sincronizar proyecto de GMS 2 con BitBucket
Abrimos nuestro proyecto, en este caso Tappy Plane. En el árbol de recursos abrimos las opciones del juego, es decir, dónde pone Options – Main. Activamos la casilla Enable Source Control.
Ya lo tenemos activado. ¿Como lo sincronizamos? Veamos algunas opciones del menú Source Control que tenemos acceso.
Menú Source Control
Las opciones del menú Source Control son:
- Create Project Repository – crear un repositorio de proyectos: se crea un repositorio del proyecto, pero en tu ordenador local. Se pueden hacer commits, y volver a las versiones anteriores si lo necesitas.
- Import Project into Repository – Importar proyecto al repositorio: es la opción que nos interesa ahora. Nos pedirá la URL del repositorio y hará el primer commit al servidor.
- Clone Repository – Clonar repositorio: al clonar un repositorio, te pide la dirección url del repositorio y la carpeta dónde guardarlo. Esta opción nos permite clonar tanto nuestros proyectos (y sincronizarlos en el servidor web), pasar el proyecto a otros miembros de tu mismo equipo, o descargar otros proyectos externos, aunque no tengamos acceso para grabar en él (por ejemplo, los proyectos de Aprende Game Maker).
- Commit Changes – Cambios de compromiso: confirma los cambios en el repositorio local.
- Push Changes – Cambios de inserción: después de grabar los commits necesarios (o incluso un merge), los envía al servidor web (BitBucket).
- Pull Changes – Cambios de extracción: actualiza el repositorio local con los cambios del servidor.
- View history – Ver Historial: podemos ver todo el histórico de los cambios hechos.
- Show Conflicts – Mostrar conflictos: Abre la ventana de conflictos y mira los posibles archivos conflictivos que puedan existir. Podemos tratarlos en Game Maker Studio 2 o en una herramienta externa.
En nuestro caso, tal y como hemos dicho, usaremos la segunda opción del menú para grabar el repositorio en el servidor.
Como trabajar con Control de versiones en Game Maker Studio 2
Si hemos importado correctamente, podemos ir al repositorio de la web, en la sección Anotaciones o Commits, y veremos el primero que hemos hecho.
A partir de aquí, podemos grabar nuestro proyecto como siempre, y además hacer commits cada vez que acabamos algo que merece la pena grabar en el histórico.
Por ejemplo, creamos un objeto nuevo, le asociamos un sprite, lo programamos, y cuando veamos que tenemos una versión inicial, hacemos un commit, poniendo como comentario el que hemos creado el nuevo juego.
Si le damos al menú en Commit Changes, la ventana que vemos será la siguiente:
Todos los commits se hacen en tu ordenador, así que para subir esos cambios al servidor, debemos elegir la opción Push Changes. Si los datos de usuario y contraseña que hemos configurado es correcto, se grabará en el servidor web. Se verán todos los commits de la manera siguiente:Si usas varias ramas, o tienes un proyecto con varias personas, es posible que tengas Conflictos. Cuando aparecen conflictos puedes:
- Use Theirs – Usar el de ellos: reemplaza el archivo local por el del repositorio web.
- Use Mine – Usar el mío: conserva el archivo local y reemplaza el del repositorio.
- Merge – Fusionar: se abren los dos archivos con la herramienta de fusión, de GMS2 o externa, y decides como juntar los dos archivos.
Una vez has resuelto los conflictos, puedes volver a grabar (con commits y push).
Descargar código fuente de BitBucket
Hemos hablado de clonar un proyecto a tu ordenador, pero puedes descargar el código fuente sin necesidad de usar Git. En Bitbucket, tienes una opción de descargas del código, ya sea tus repositorios, o repositorios de otros usuarios. En nuestro caso, al ser un repositorio público, tienes el enlace de descarga de Tappy Plane aquí.
A partir de ahora, iré pasando todos los tutoriales del blog a Bitbucket para descargar.
Resumen final
Aquí tienes todos los pasos para configurar tus proyectos con un repositorio Bitbucket, y de esta manera siempre tendrás una copia de seguridad de tus juegos.
No sólo tendrás una copia de seguridad, sino que podrás detectar errores deshaciendo los cambios, y probar nuevas opciones sin que afecte al código final.
A partir de ahora siempre trabajaré para todos mis juegos de esta manera. ¿Y tú? Dime en los comentarios que te parece hacerlo así.
Excelente tutorial, de lo mejor que hay por la web respecto a control de versión!
Gracias!😉
Espero que te sirva para tus futuros proyectos.
Admito que de esta forma hay un mayor control sobre tu trabajo… Pero igualmente hecho de menos la sencillez de los primeros gamemakers hasta 8.1