Aprender GML paso a paso
Hasta ahora hemos hablado de la interfaz gráfica de Game Maker Studio y de todos los recursos que nos ofrece el programa. Hemos detallado que son los sprites, como añadir y modificar fondos, agregar sonidos, crear rutas, líneas de tiempo… y lo más importante: crear objetos con sus eventos y acciones para que nuestro juego sea lo más interactivo posible.
Pero si de verdad queremos potenciar nuestros juegos, crear proyectos más complejos o ampliar las características y opciones, está claro que toca programar código. Y Game Maker nos da esa posibilidad.
Aprender a programar un lenguaje no debe de ser difícil, es cuestión de practicar, practicar y practicar. Aunque veas cientos de ejemplos y te leas cómo funcionan los algoritmos, si no escribes líneas y líneas de código no aprenderás a crear nuevos juegos o mejorar lo que ya sabes. No quiero ser pesado en el tema e insistir demasiado, la teoría está muy bien, pero la clave es ponerlo en práctica.
Como enfocaré los posts
Si ya has programado en otros lenguajes, te adaptarás muy fácilmente al lenguaje de Game Maker Studio, ya que es menos restrictivo que otros lenguajes de programación.
Mi intención es enseñar el lenguaje desde cero, así que es posible que mucho de los posts que haga no interesen demasiado. Pero espero aportar a todos los que quieran empezar desde el principio.
Iré enseñando el lenguaje de programación con pequeños ejemplos prácticos que podéis aprovechar en cualquier juego que hagáis, y así vemos que el código es aprovechable en muchos casos.
Hasta ahora eran necesarias explicaciones detalladas de cómo funcionan los sprites, los sonidos, los objetos, eventos, etc… pero en el apartado de GML haré post mucho más cortos, espero que de esta manera puedo escribir más frecuentemente.
En paralelo, también empezaré a añadir los tutoriales. Empezaré con el primer juego Tappy Plane, así vemos de una manera muy sencilla cómo crear un mini juego, que puede ser perfectamente válido para un portal web o un juego de móvil.
¿Qué lenguaje usa Game Maker?
Si te preguntas que lenguaje de programación usa Game Maker, diremos que usa GML. ¿Qué significa GML? GML son las siglas de Game Maker Language. Es un lenguaje de programación propio y exclusivo de Game Maker, aunque se parece mucho a Java o C. La ventaja es que es mucho más flexible. Haré un post específico de las diferentes maneras que se puede escribir, pero es importante usar un estilo adecuado y siempre hacerlo de la misma forma.
No hace falta decir que las acciones de Drag&Drop que hemos visto hasta ahora tiene su equivalente en GML.
¿Dónde podemos usarlo?
Se puede escribir código en varios lugares de Game Maker, tal y como hemos visto. Vamos a refrescarlo:
- Scripts. Los scripts son trozos de código que podemos aprovechar en cualquier objeto. Está pensado para escribir tus propias funciones.
- Eventos. Dentro de un objeto podemos escribir código con la acción Execute Code. Recuerda que también puedes combinar tu código escrito con otras acciones que hemos arrastrado.
- Código de crear la room. Ya vimos que desde el editor de rooms podemos poner código específico en la room. Podemos decir que tiene su propio evento Create. Podemos añadir código cada vez que se entra en la room.
- Código de crear en la instancia. Sabemos que las acciones del evento Create se ejecutará en todas las instancias que tengamos en la room. Pero es posible añadir código a una o varias instancias desde la room. Recordemos tener en cuenta el orden de ejecución de eventos del juego para no tener sorpresas.
Como nos referimos a los recursos
Ya hemos ido comentando como solemos llamar a los recursos. Para poder utilizarlos mientras codificarlos, es importante saber que se pueden usar las letras, el guión bajo “_” y números que no estén al principio. Por ejemplo “spr_wall”, “SprWall”, “sprwall6” son válidos. Pero si usamos nombres como “spr wall” o “6 wall”, no podremos usarlo en GML.
Otro tema importante, Game Maker distingue mayúsculas y minúsculas. Es decir, para Game Maker es diferente “sprwall”, “SprWall” o “SPRWALL”. Pero está claro que tampoco tenemos que intentar confundirnos.
Yo utilizaré la misma forma que se ve en las constantes y variables de sistema de Game Maker. Escribiré todo en minúsculas, usaré bastante el “_” y usaré prefijos para identificar los diferentes recursos spr_, obj_, snd_, etc. Es curioso porque he programado en otros lenguajes y no he visto nunca esta nomenclatura.
Cuando veamos ejemplos de código veremos lo importante que es saber si al escribir “wall” nos estamos refiriendo a un sprite, un objeto o una variable.
¿Qué es un programa? ¿Cómo funciona el código?
Cuando añadimos un nuevo evento, podemos arrastrar acciones que se ejecutarán en ese evento. ¿Cómo se haría en GML? Exactamente igual.
Un bloque de código es un conjunto de instrucciones que se van ejecutando línea a línea. Por eso se dice que es secuencial. Puede ser una instrucción sencilla, como una suma o puede ser una instrucción compleja, como calcular la distancia entre dos objetos.
Escribir las instrucciones es tan sencillo como esto:
instruccion1;
Vemos que cada instrucción acaba con un punto y coma “;”, es una manera de decirle al programa que ha acabado esa instrucción. Debido a que Game Maker es bastante flexible, como hemos comentado, no es obligatorio poner “;”, pero yo lo recomiendo para tener un código lo más ordenado posible. Otro ejemplo:
instruccion2;
…
Conclusión
Hemos hecho una pequeña explicación la importancia de programar con código. Con una pequeña introducción hemos comentado el lenguaje de programación que podemos usar con Game Maker Studio. En el próximo post hablaré de las variables y cómo las podemos usar en nuestro código.
gracias
no entiendo como programar aun
Aprender a programar es como aprender un idioma, se necesita mucha dedicación y práctica.
Te animo a emprender este camino paso a paso, ya verás como al final podrás hacer tus propios juegos.
gracias esto ayuda mucho
¡Gracias a tí! Espero poder ofrecer más cosas útiles a todos.
David muchas gracias por la dedicación de tu tiempo a instruirnos y enseñarnos a usar GM desde todas sus perspectivas y funcionalidades.
¡A sus pies! 😀
Gracias me estoy animando estoy leo y anotó jajaja
Poquito a poquito 😉
gracias me ayudo bastante
Vaya gracias, ahora estare haciendo mi juego, primero hago los sprites en piskel y luego lo programare a GM gracias!!! 😀
¡Muchas gracias!, buena explicacion, estoy haciendo un juego desde cero y esto me sirve de mucho
👍
gracias pana