Bienvenidos sean a este post, en el post anterior vimos algunas nociones basicas del lenguaje pero hoy comenzaremos con lo realmente importante como es el lenguaje propio del editor.
Hasta ahora vimos un proyecto hecho con Drag and Drop pero fue solamente para que vean con cual «facilidad» se puede crear un juego pero esto nos trae varias limitaciones:
- Al trabajar con Drag and Drop, estamos haciendo trabajar al triple al compilador, primero porque debe traducir todos los esquemas en lenguaje, luego ese lenguaje en codigo maquina haciendo que se pierdan ciclos de usos importantes, en pequeños juegos no se nota pero en grandes juegos si va a ser evidente.
- Trabajar con GML nos va a facilitar la posibilidad de encontrar errores y situaciones que no cumplen la logica que pensamos porque estamos trabajando con la logica directamente.
- Habran notado que el Drag and Drop es bastante limitado para concretar ciertas situaciones, por ejemplo manejar condicionales, trabajar con GML nos facilitara tener un mayor control sobre el flujo del programa.
- Al trabajar con GML lo haremos a un mas bajo nivel que Drag and Drop lo cual no solo mejorara la performance del juego sino tal como dijimos antes tendremos un mejor control y menores limites a la hora de crear los juegos.
Por el lenguaje en si no se deben preocupar porque es bastante simple e intuitivo, tambien la GUI nos facilitara a la hora de trabajarlo, como hemos visto tiene cierta similitud con C++ o Java por lo tanto aquel que sepa un poco de programacion no tardara mucho en adapatarse, al igual que en Godot siempre es mas conveniente trabajar con el lenguaje de script propio del Game Engine pero recuerden que la mayoria soporta otros lenguajes para crear los scripts pero como dije antes por un tema de performance y compilacion siempre es mas recomendable trabajar con el interno.
Si bien es mas recomendable trabajar con un lenguaje no podemos negar que con la forma anterior vimos los conceptos basicos tanto para crear los sprites, los objetos, como son las colisiones y como nos ayudan para poder agregar una mejor interaccion entre los distintos objetos, tambien hemos visto como hacer que se disparen los sonidos y las interacciones con elementos del nivel, con esta breve introduccion terminada podemos pasar a crear nuestro nuevo proyecto.
Pero antes de comenzar si no tienen el proyecto anterior pueden descargarlo desde aqui:
Una vez descargado extraigan todos los archivos en la carpeta donde estan los proyectos de GameMaker, en general es dentro de Documentos y la carpeta GameMaker Studio, esto es solamente para los que no crearon el primer proyecto de lo contrario ignoren todas estas acciones, con esto comentado pasemos a nuestro segundo proyeto.
En este caso volveremos a crear el juego anterior pero esta vez con codigo para GML, para ello iremos a File -> New project, nos solicitara como lo crearemos y seleccionaremos GameMaker Language, nos pedira un nombre y lo llamaremos ElCalabozo2.0 cuando nos abrira una nueva ventana para crearlo, una vez que lo hagamos nos quedara un Workspace vacio, nuestro primer paso sera recuperar los sprites creados en el proyecto anterior y para ello iremos a nuestro Assets browser donde buscaremos la carpeta llamada Sprites, hacemos click con el boton derecho sobre esta y seleccionaremos Add Existing y nos aparecera la siguiente ventana

En este seleccionaremos a nuestro proyecto anterior (ElCalabozo en mi caso) y ahi iremos a la carpeta sprites, despues iremos a spr_Cj (el sprite de nuestro personaje jugable) y ahi seleccionaremos el archivo spr_Cj.yy para poder agregarlo a nuestra biblioteca quedando de la siguiente manera

A continuacion les muestro un ejemplo de como agregar otro sprite del proyecto anterior mediante el siguiente video
En el video tuvimos que desplazarnos desde nuestro proyecto hasta el viejo pero se puede ver como es el procedimiento para poder importar nuestro sprites, en el caso del video importamos al sprite de la pared (spr_Prd), esto mismo debemos hacerlo con cada uno de los sprites de nuestro proyecto anterior, una vez hecho nos debera quedar de la siguiente manera

Con esta tarea realizada ya tenemos la primera parte de nuestro trabajo realizado, nuestro siguiente paso sera crear un nuevo room al cual llamaremos rm_raiz, el cual sera el encargado de definir nuestros valores globales de nuestro proyecto a medida que vayamos necesitando, para ello deben ir al Asset Browser, seleccionar la carpeta Rooms, hacer click con el boton derecho y seleccionar Create -> Room, una vez creado lo llamaran rm_raiz, lo siguiente sera renombrar a Room1 como rm_main para saber que sera nuestro nivel o room principal, lo unico que deben asegurarse es que rm_raiz quede por arriba de rm_main, para ello deben hacer click del lado izquierdo del Room llamado rm_raiz sobre un icono como este

Este nos hara aparecer la siguiente ventana

En este caso sera el Room Manager donde nos apareceran todos los rooms del proyecto, debemos seleccionar a rm_raiz y presionar la flecha que va hacia arriba con una linea horizontal que ese encuentra entre los cuatro botones inferiores para llevarla a la parte superior de los rooms y quedara como el primer room, debe quedar de la siguiente manera

Con esto ya tenemos un nuevo room que nos sera generico y el cual solo sera utilizado para declarar y definir los elementos globales de nuestro proyecto, ya sean desde variables hasta funciones, en el room editor de este room deben hacer click en Creation Code, nos abrira una nueva ventana y agregaremos el siguiente codigo:
room_goto(rm_main);
Esta linea lo unico que hace es llevarnos al rm_main porque sera donde esta nuestro proyecto en si, con esto terminamos por ahora con nuestro segundo proyecto y en los proximos posts iremos agregando mas elementos.
En resumen, hoy hemos visto una leve introduccion sobre como crear un proyecto con GameMaker Language (GML), tambien sobre las ventajas que nos traera trabajar con este lenguaje en lugar de Drag and Drop, hemos creado nuestro «nuevo» proyecto pero tambien hemos visto como se pueden importar elementos de un proyecto anterior al nuevo, tambien hemos creado un room para manejar ciertos aspectos a futuro de nuestro proyecto, espero les haya gustado sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.00
