Can you create a game using GML in GameMaker?

GML: Tu Guía para Programar en GameMaker

13/12/2022

Valoración: 4.42 (10070 votos)

¡Bienvenido al emocionante universo del desarrollo de videojuegos! El camino para crear tus propias obras interactivas puede parecer intimidante al principio, especialmente si eres nuevo en este arte. Afortunadamente, GameMaker, una de las plataformas de desarrollo más queridas y accesibles, cuenta con un lenguaje de programación propio diseñado para convertir tus ideas en una realidad jugable. En esta guía completa, desmitificaremos el lenguaje de programación de GameMaker, conocido como GML, en términos sencillos para que puedas embarcarte en tu viaje con total confianza. Ya sea que sueñes con crear simples aventuras en 2D o mundos interactivos complejos, GML es la herramienta que te abrirá las puertas.

What is GML in GameMaker?
GML is a scripting language designed for creating games. It is easy to learn and offers a great deal of flexibility for game development. Let’s break it down into key components: In GameMaker, everything is an object. Objects can be players, enemies, bullets, or any game element. Each object has properties and behaviors. You can define them in GML.
Índice de Contenido

¿Qué es GameMaker y por qué GML es la clave?

GameMaker es un motor de desarrollo de videojuegos que simplifica enormemente el proceso de creación. Ofrece una interfaz visual de arrastrar y soltar (Drag and Drop) que permite a los principiantes crear juegos sin escribir una sola línea de código. Sin embargo, para desbloquear el verdadero potencial del motor, personalizar cada detalle y crear mecánicas complejas, necesitas sumergirte en su lenguaje de scripting nativo: GameMaker Language, o GML. GML te permite ir más allá de las limitaciones del sistema visual, dándote un control preciso sobre cada aspecto de tu juego.

Primeros Pasos con GameMaker Language (GML)

Antes de sumergirte en GML, lo primero que necesitas es tener GameMaker instalado en tu ordenador. Puedes descargarlo desde su sitio web oficial. Una vez instalado, inicia el programa y crea un nuevo proyecto en blanco. Aquí es donde tu aventura como programador realmente comienza. Aunque al principio te encuentres con la interfaz visual, pronto descubrirás que cada acción de arrastrar y soltar tiene su equivalente en código GML, y aprender a escribirlo directamente te dará una velocidad y flexibilidad inigualables.

Los Pilares Fundamentales de GML

GML es un lenguaje de scripting diseñado específicamente para hacer juegos. Es relativamente fácil de aprender y ofrece una flexibilidad asombrosa. Para entenderlo, debemos descomponerlo en sus componentes clave.

What is GML in GameMaker?

Objetos: El Corazón de tu Juego

En GameMaker, prácticamente todo es un objeto. Los objetos son las plantillas de cualquier elemento de tu juego: el jugador, los enemigos, las balas, las paredes, los menús, etc. Cada objeto tiene propiedades (como su posición, velocidad o sprite) y comportamientos, los cuales defines a través de eventos y código GML.

Eventos: Los Desencadenantes de la Acción

Los eventos son acciones que se disparan cuando algo específico sucede en el juego. Por ejemplo, un evento "Crear" se ejecuta una sola vez cuando se crea una instancia de un objeto. Un evento "Step" se ejecuta en cada fotograma del juego, lo que es ideal para la lógica de movimiento o comprobaciones constantes. Un evento "Colisión" se activa cuando dos objetos se tocan. Tú escribes el código GML dentro de estos eventos para definir qué debe suceder.

Variables: Almacenando la Información Vital

Las variables son contenedores que almacenan datos que pueden cambiar durante el juego. Son esenciales para llevar la cuenta de la puntuación, la salud del jugador, la cantidad de munición o cualquier otro valor dinámico. En GML, existen diferentes tipos de variables:

  • Variables de Instancia: Son las más comunes. Pertenecen a una instancia específica de un objeto. Por ejemplo, la variable hp (puntos de vida) de un enemigo solo pertenece a ese enemigo en particular.
  • Variables Locales: Estas variables solo existen dentro del evento o script en el que fueron declaradas. Se utilizan para cálculos temporales y se descartan una vez que el script finaliza, ayudando a optimizar la memoria. Se declaran usando la palabra clave var.
  • Variables Globales: Como su nombre indica, estas variables son accesibles desde cualquier objeto y en cualquier momento del juego. Son útiles para datos que deben persistir, como la puntuación total del jugador o la configuración del juego. Se declaran con el prefijo global. (ej. global.score = 0;).
  • Variables Incorporadas (Built-in): Son variables que ya vienen definidas en los objetos y que controlan propiedades fundamentales, como x, y (posición), speed (velocidad) o sprite_index (el sprite actual).

Funciones: Bloques de Código Reutilizables

Las funciones son bloques de código que puedes escribir una vez y llamar múltiples veces desde diferentes lugares. Esto es increíblemente útil para evitar repetir código y mantener tu proyecto organizado. Por ejemplo, podrías crear una función para calcular el daño que un jugador recibe, tomando en cuenta su armadura.

What does GML stand for?
GML appropriately stands for GameMaker language. What Is GML Based On? GML is based on JavaScript, C++ and C# languages, combining them in specific ways. What Is GML Similar To? GML has its roots in JavaScript and the C languages, giving an advantage to those who have experience with those languages.
function calcular_daño(daño_base, armadura) { var daño_final = daño_base - armadura; if (daño_final < 0) { daño_final = 0; } return daño_final; }

Controlando el Flujo de tu Juego: Estructuras y Declaraciones

Las estructuras de control te permiten dictar el flujo de ejecución de tu código. Son las herramientas que te permiten tomar decisiones y repetir acciones, formando la base de la lógica de cualquier juego.

Condicionales (if / else)

Permiten que tu código tome decisiones. Si una condición es verdadera, se ejecuta un bloque de código; de lo contrario, se puede ejecutar otro.

if (hp <= 0) { // El jugador ha sido derrotado instance_destroy(); } else { // El jugador sigue vivo estado = "herido"; }

Bucles (for, while, do...until)

Los bucles te ayudan a repetir acciones múltiples veces sin tener que escribir el mismo código una y otra vez. El bucle for es ideal cuando sabes cuántas veces quieres repetir una acción, mientras que while es perfecto para repetir algo mientras se cumpla una condición.

// Crear 5 enemigos en posiciones aleatorias for (var i = 0; i < 5; i++) { instance_create_layer(random(room_width), random(room_height), "Instances", obj_enemigo); }

Declaración 'with'

Esta es una de las declaraciones más potentes de GML. Te permite ejecutar un bloque de código para una o varias instancias de un objeto específico. Por ejemplo, podrías usar with para dañar a todos los enemigos en pantalla a la vez.

¿Qué es el lenguaje de programación 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.
// Todos los objetos 'obj_enemigo' pierden 10 de vida with (obj_enemigo) { hp -= 10; }

GML para Principiantes: ¿Es Fácil de Aprender?

Esta es una pregunta crucial para muchos. La facilidad con la que aprendas GML dependerá de tu experiencia previa y tu capacidad para pensar de manera lógica. Sin embargo, en comparación con lenguajes como C++ o C#, GML es significativamente más fácil y permisivo.

GML está basado en lenguajes como JavaScript y la familia C, por lo que si tienes alguna experiencia con ellos, te sentirás como en casa. Pero incluso si nunca has escrito una línea de código, GML es un excelente punto de partida. Su sintaxis es clara y el motor GameMaker proporciona retroalimentación instantánea, lo que facilita enormemente el proceso de aprendizaje y depuración.

Tabla Comparativa: GML vs. Otros Lenguajes

CaracterísticaGML (GameMaker Language)Python (con Pygame)C++ (con motor propio/Unreal)
Curva de AprendizajeBaja. Muy amigable para principiantes.Baja. Sintaxis muy limpia y legible.Alta. Requiere gestión de memoria y es muy estricto.
Uso PrincipalDesarrollo rápido de juegos 2D.Multipropósito, bueno para prototipos y juegos indie.Juegos de alto rendimiento (AAA), sistemas complejos.
Velocidad de DesarrolloMuy Rápida.Rápida.Lenta.

Preguntas Frecuentes (FAQ) sobre GML

¿Qué significa exactamente GML?

GML son las siglas de GameMaker Language. Es el lenguaje de programación propietario y nativo del motor de videojuegos GameMaker.

¿Qué es una variable en GML?
Una variable en GML puede almacenar un número real, (como 100, 2.456575, -56, etc.) o una cadena (como "Hola , mundo"). De manera coloquial, una variable es un contenedor para poner un valor que se usará en una o más operaciones o funciones. Imagina el valor "pi", Un número de tipo real que guarda el valor 3.14159265 (etc...). ¿Por qué?

¿GameMaker utiliza Python?

No. Aunque Python es un lenguaje muy popular, el lenguaje nativo de GameMaker es GML. Es posible que existan extensiones o plugins creados por la comunidad para integrar funcionalidades de Python, pero el desarrollo principal dentro del entorno se realiza con GML.

¿GML es similar a C++?

Sí, comparte similitudes conceptuales y de sintaxis con la familia de lenguajes C (C++, C#), así como con JavaScript. GML utiliza C++ en su sistema de ejecución (runtime), por lo que la lógica subyacente tiene raíces en C++. Si conoces C++, encontrarás que GML es mucho más sencillo y flexible en su uso diario.

¿Puedo crear un juego completo usando solo GML?

¡Absolutamente! De hecho, esa es su finalidad. Con GML puedes desarrollar juegos completos y complejos, desde la lógica del jugador y los enemigos hasta la interfaz de usuario, los sistemas de guardado, los desafíos, las tablas de puntuación y mucho más.

Conclusión

GameMaker Language (GML) es un lenguaje de programación versátil, potente y, lo más importante, accesible para crear videojuegos. Con práctica y aprovechando los recursos disponibles, como la documentación oficial y la enorme comunidad de desarrolladores, puedes dar vida a tus ideas más creativas. No temas experimentar. Comienza con proyectos pequeños para afianzar los conceptos básicos y, gradualmente, avanza hacia juegos más complejos. La clave es seguir aprendiendo, ser curioso y, sobre todo, divertirte mientras exploras el fascinante mundo del desarrollo de videojuegos. ¡Mucha suerte y a programar!

Si quieres conocer otros artículos parecidos a GML: Tu Guía para Programar en GameMaker puedes visitar la categoría Juegos.

Subir