Recordando a Game Maker
Publicado 2021-12-19.
"Jugar juegos de computador es divertido. Pero en realidad es más divertido diseñar tus propios juegos de computador y dejar que otras personas los jueguen." - Designing Games with Game Maker (version 5.0), Mark Overmars
Introducción
Diría que Game Maker no necesita presentación por el tiempo que lleva entre nosotros, pero quizá no sea tan conocido como me gustaría creer, a pesar de ello.
Según su creador, Mark Overmars, Game Maker es un programa que permite
crear emocionantes juegos de computador sin necesidad de escribir una sola
línea de código
. Cuenta con un sistema de arrastrar y soltar acciones que
permite programar juegos de forma visual, pero también incluía un lenguaje de
programación muy agradable, similar a C, llamado GML o Game Maker Language, en
el que se escriben los proyectos más complejos. Game Maker apareció por primera
vez a finales de 1999 y desde entonces se actualiza cada par de años.
Pero, ¿es necesario recordar un producto que es actual, que se sigue vendiendo y utilizando ahora mismo? Yo diría que sí. Al menos, las "versiones clásicas" anteriores a Studio sí. En comparación con las versiones de Game Maker que todos utilizamos en su día, sería difícil reconocer que Game Maker Studio 2 procede del mismo linaje.
Un niño que juega juegos viejos
A principios y mediados de la década de 2000, me gustaba jugar juegos de Sega Genesis en cualquier emulador inexacto que hubiera en ese momento. Tengo recuerdos muy vívidos de la lava en la arena del jefe del Acto 2 de Lava Reef (de Sonic & Knuckles) que no se mostraba más que como un desastre en KGen98, un emulador para DOS. Más tarde, recuerdo haber intercambiado CDs con miles de ROMs y mejores emuladores con mis compañeros de clase. Para entonces, ya sabía exactamente lo que era una ROM, y quería más. Cuando nuestra casa tuvo banda ancha, por fin pude navegar libremente por Internet y, sobre todo, conseguir un montón de ROMs. Esta sería la razón por la que más tarde se me ocurriría mi nombre: quería unirme a un foro de emulación para descargar un juego, y todo el mundo tenía nombres japoneses, así que el mío tenía que ser cidoku.
Pero divago. Fue antes de eso cuando me topé con uno de esos sospechosos sitios de descarga de software que eran tan populares (creo que era Softonic) y vi un programa llamado "Game Maker". Mi inglés era básico por aquel entonces, así que pensé que maker significaba algo así como mezclador. En la descripción del programa o en las capturas de pantalla se mencionaban los rooms, y pensé que se refería a las ROM de los juegos. Así que en mi pequeña mente, creí que Game Maker era un programa mágico mezclador de ROMs que crearía nuevos juegos para mí. Entusiasmado, descargué Game Maker 5.3a y se parecía a esto:
Lo primero que intenté hacer fue soltar unas cuantas ROMs en la carpeta de rooms. No funcionó. ¿Me habré dado cuenta de mi error en ese momento? Bueno, me decepcioné, pero seguí con el programa instalado de todas formas, y eventualmente lo abriría de nuevo para ver de qué se trataba.
Entendiéndolo
Creo que no entendí nada de cómo funcionaba hasta que encontré unos cuantos sitios que tenían recursos relacionados con los fangames de Sonic (¡algunos incluso siguen arriba!). Habían algunos tutoriales para mi versión de Game Maker y los descargué para ver de qué se trataba. Había un tutorial que me gustaba más que los demás, y lo edité de todas las maneras posibles hasta que quedó irreconocible.
Pasé la mayor parte de mis días con Game Maker editando de la misma manera tutoriales aleatorios que encontraba en Internet, y rara vez hacía mis propias cosas originales desde cero. Usando las plantillas que encontré, hice muchos juegos incompletos que me entretuvieron durante un tiempo. Plataformeros, presentaciones que se burlaban de mis profesores, simuladores de Windows, juegos con el Será Será de Shakira cuando la cacnión era nueva, etc. Cuando me cansé de hacer el tonto, intenté hacer cosas más originales, y luego juegos completamente desde cero. El primero fue, creo, un juego de plataformas con una bola en un nivel de desplazamiento vertical en el que no podías tocar los bordes. Un tiempo después recreé más o menos el motor de WarioWare, y añadí unos cuantos microjuegos hasta que no me quedaron más ideas. Creo que Game Maker 8 ya había salido cuando empecé a trabajar en mi motor de Earthbound, alrededor de 2011. En 2015 y tras mil reescrituras lo terminé y me puse a trabajar en mi malogrado proyecto Metro Stardust por unos años. Eso fue lo último que hice con Game Maker.
Creo que me salté la versión 6 por aquel entonces. Era algo compatible con la 5.x, pero rompía todos mis proyectos, así que no me gustó. Fue la versión 7 la que me hizo actualizar. Seguía rompiendo los archivos más antiguos de la 5.x, pero tenía más paciencia y ganas de arreglarlos, y además estaba haciendo cosas más nuevas. Pasé mucho tiempo con GM7, ya que realmente se sintió como una actualización: Añadió extensiones, lo que permitió a la gente distribuir archivos con scripts y DLLs para extender Game Maker, y soporte de canal alfa para los gráficos (antes de esto Game Maker tenía transparencia de 1 bit; el color transparente era el color del píxel en la parte superior izquierda de la imagen). Lo siguiente no tenía nada que ver con mi uso del programa, pero fue la primera versión realizada en colaboración con una empresa llamada YoyoGames, que sigue haciendo Game Maker hasta el día de hoy (siempre escondía la imagen de Yoyogames que añadieron al IDE).
Un negocio serio
Antes de Game Maker 5, el programa era gratuito y se financiaba con donaciones. Luego la 5.x pedía un registro opcional, y para la versión 6 ya parecía que Mark Overmars estaba intentando hacer de Game Maker una herramienta SÚPER SERIA, siendo esa la razón por la que buscó la ayuda de Yoyogames para GM7. GM7 fue la primera versión que añadió DRM real al proceso de registro con una cosa llamada Softwrap; todo el mundo lo odiaba porque era tan inestable que era más fácil crackear la maldita cosa. De hecho, yo lo crackeé.
Yoyogames hizo muchas cosas interesantes para Game Maker. Por ejemplo, crearon un plugin que te permitía jugar a juegos de Game Maker en tu navegador y que funcionaba junto a su tienda de juegos, donde todo el mundo podía subir juegos para que otros los jugaran y los descargaran. No recuerdo cuándo se dejó de usar, pero creo que a nadie le disgustó. Sin embargo, el plugin no era lo más estable del mundo.
De todos modos. Antes del lanzamiento de la versión 8, Yoyogames quiso comprometerse con el pensamiento de que Game Maker había evolucionado y se había vuelto más avanzado y profesional y lanzó un concurso para diseñar un logo con un nuevo diseño "más moderno". Por alguna razón el clásico martillo sobre una bola empezaba a parecerles "cansado":
Dos meses después, en un increíble despliegue de mal gusto reconocido universalmente, éste fue el ganador:
Nadie en la comunidad podía creerlo. Algunos estaban tan en contra que incluso hicieron una petición para que Yoyogames reconsiderara sus crímenes contra el buen diseño. En un cambio de opinión igualmente increíble, hicieron OTRA votación (¡realmente necesitaban lanzar GM8 pronto!) con 19 variaciones del "ganador" y finalmente la versión 8 salió con un nuevo logo relativamente más bonito. No mostraba realmente que Game Maker se utilizaba para construir cosas tan explícitamente como un literal martillo, pero al menos no era ofensivamente malo. De todos modos, el autor del logotipo sonriente se quedó con el dinero del premio, ¡de seguro!
Por qué el Game Maker clásico era genial
- Era simple: Para mí, la versión 8 fue la versión definitiva del Game Maker clásico (incluso mejor que la 8.1) porque Yoyogames aún no había empezado a jugar mucho con la interfaz de usuario. GM8 todavía se parecía mucho todavía a la imagen de ahí arriba, pero tenía resaltado de sintaxis y comprobación de errores y scripts complejos, así que era una herramienta compleja en un paquete diminuto.
- Era rápido: No diría que era ideal, pero para hacer prototipos rápidos Game Maker estaba bien. Añade unos pocos recursos y en menos de un minuto puedes tener una imagen moviéndose en la pantalla. GML era un lenguaje muy flexible; podías escribirlo como quisieras y tenías algo que funcionaba. No era necesaria la compilación, así que para los juegos sin muchos recursos pesados como los sonidos, los juegos se ponían en marcha muy rápidamente (cargar la música era uno de los principales cuellos de botella que recuerdo, por lo que la gente utilizaba FMOD y otras cosas por el estilo). Studio añadió muchas características que hacían que el editor no respondiera y anduviera lento.
- Su aspecto era agradable: El programa parecía realmente parte de tu sistema operativo, sin extraños motores de pieles ni nada por el estilo, haciendo que la interfaz fuera ágil y con un aspecto nativo. Studio introduce mucha inestabilidad y asperezas con sus temas.
- Era sólido: nunca tuve que lidiar con proyectos rotos ni con caídas abyectas del IDE, a diferencia de lo que ocurría con Studio, donde a veces respondía tan erráticamente que me parecía que se iba a desinstalar en cualquier momento. Hasta la versión 8.0, intentaban realmente entregar un programa terminado. Después de eso y hasta hoy Game Maker se mentiene en beta perpetua.
- Era extensible: Los paquetes de extensión y las DLLs añadían una increíble cantidad de funcionalidad a tus juegos cuando la simplicidad de Game Maker no era suficiente. ¿No te gusta el motor de sonido incluido? Podías utilizar una biblioteca externa en su lugar. ¿Querías incrustar Flash, PDFs, o cargar modelos 3DS? Todo se puede hacer con extensiones hechas por la comunidad. Podría seguir.
Teniendo en cuenta todo esto, parece que, en retrospectiva, Mark Overmars ha logrado su objetivo. Sin embargo, no podemos mirar todo con las gafas rosas de la nostalgia:
Por qué Game Maker es terrible
- GML tiene demasiadas peculiaridades: Por poner un ejemplo, ¿te
gusta poder nombrar argumentos en una función cuando escribes en un
lenguaje más estándar? Hasta Game Maker Studio 2, no se podía. Tenías que
usar
argument0
,argument1
, etc. Digamos que tienes un script llamadostring_reverse
que invierte una cadena dada. Tal vez podría haberlo escrito así:var result = "" for (i = 1; i <= string_length(argument0); i+=1) { result = string_insert(string_char_at(argument0, i), result, 0) } return result
Es fácil que te veas repitiendoargument0
una y otra vez, y que la situación se te vaya pronto de las manos con más argumentos. Podrías haber hecho tu código más legible con algo como esto:///string_reverse(string) var str = argument0 var result = "" for (i = 1; i <= string_length(str); i+=1) { result = string_insert(string_char_at(str, i), result, 0) } return result
Te ahorraría algo de monotonía. La primera línea es una sugerencia del editor que te dice lo que la función espera sin abrir el script, y eso sólo se añadió en Studio. Además, estaba limitado a sólo dieciséis argumentos. Una restricción artificial, en mi opinión. Si preguntas a otras personas, te darán aún más ejemplos.
Game Maker también permitía malas prácticas: solía haber una opción que suprimía todos los errores. Sólo puedes imaginar cuánta gente desprevenida la activó cuyos juegos se rompían inexplicablemente. - No es portable: Al estar escrito en Delphi y depender tanto de la WinAPI y de DirectX, ni el IDE ni los juegos funcionaban en nada más que en Windows. Había una versión de GM7 para Mac, pero eso era todo. Cuando salió Studio, el IDE era prácticamente el mismo y sólo funcionaba en Windows, pero tenían opciones de exportación para todos los sistemas actuales imaginables... por un precio elevado, eso sí. Al menos podías exportar a Windows y Linux si tenías la edición estándar de escritorio de Studio.
- No era lo suficientemente visual: no sé si esto cambió con Studio 2, pero en las versiones anteriores diseñar cualquier cosa con funciones de dibujo requería una planificación metódica. No se podía diseñar nada visualmente, sólo tenías el código. Digamos que tienes un objeto que dibuja un texto dentro de un rectángulo. Incluso si colocas el objeto en una habitación, no verás nada hasta que ejecutes el juego. Así que diseñar GUIs era un completo desastre. Comparado con lo que Godot puede hacer, por ejemplo, Studio 1 y los anteriores se sienten muy carentes para algo que se suponía que era muy fácil de usar.
- En realidad, no estaba hecho para juegos grandes: Yo lo ignoraba a menudo, pero podías sentir las limitaciones una vez que empezabas a añadir un montón de recursos. Ni siquiera pienses en usar el sistema de sonido clásico de Game Maker para cargar la música, los juegos tardarán una eternidad en cargar. Por eso la gente usaba librerías de sonido externas tan a menudo. En su defensa, sin embargo, el manual te dice que, si puedes, evites usar recursos gráficos y de audio de muy alta calidad y te da consejos sobre cómo trabajar con eso. Studio es ligeramente mejor en todo esto, ya que los recursos se cargan externamente. Pero a medida que tu juego creciera en cuanto a código, empezaría a tardar una eternidad en compilarse1.
Nada de esto impidió a los desarrolladores de muchos grandes juegos conocidos que fueron hechosen Game Maker. Se me vienen a la mente Hotline Miami y la versión original de Spelunky, que se hicieron en el Game Maker clásico. Undertale se hizo en Studio 1, y no quiero ni pensar en lo mucho que le habrá costado a Toby Fox. Hyper Princess Pitch es un juego poco conocido hecho en Game Maker 5 (que ni siquiera tenía finalización de pestañas en el editor de código) en 2011 MUY en la era de 8.x.
In memoriam
Más de una vez en mi vida me he cabreado por lo estúpidas que eran algunas cosas de Game Maker y he sentido que había que tirarlo por un barranco (aunque más con Studio que con los otros...). Recuerdo perfectamente el mal rato que pasé cuando compartí una versión muy temprana de mi motor de Earthbound con otra persona para que la usara en su proyecto y que al final no funcionara en su computador, aunque en el mío era perfectamente funcional. Después descubrí que era una peculiaridad de Game Maker y lo solucioné, pero, ¡qué vergüenza! Tal vez fue por la mencionada opción de "suprimir todos los errores" o algo por el estilo. Finalmente, la lentitud de Studio 1 me hizo buscar otra cosa. En este caso, me pasé a Godot, aunque últimamente apenas hago juegos y todavía no he hecho nada importante con él, y no sé si lo haré algún día.
Pero, pensando en el pasado... bueno, creo que el Game Maker clásico era disfrutable. Y si se hicieron tantos juegos con él, entonces no podía ser tan horrible. Por decirlo de alguna manera, Game Maker significó para mí lo que Flash significó para otros2. Como creador, claro. No he jugado a demasiados juegos de Game Maker hechos por otros (para ser sincero, no se nota cuando un juego está hecho en Game Maker); ¡he jugado más a juegos de Flash con diferencia!
Hablando de juegos Flash y de juegos Game Maker que no jugué, me gustaría terminar esta retrospectiva con un bonito proyecto de los mismos chicos que hacen el archivo Flashpoint. instance_archive(); es un archivo de juegos clásicos de Game Maker, algunos parcheados para que funcionen en sistemas modernos. Game Maker nunca fue tomado muy en serio por mucha gente, así que ¿no es agradable que haya al menos un grupo dispuesto a archivar lo que fue capaz de crear?
¿Usaste alguna vez Game Maker en la década de 2000? Si es así, ¿por qué no volver a instalarlo y revivirlo? Haz un juego corto, como en los buenos tiempos. Tal vez haga lo mismo con 5.3a uno de estos días. Game Maker ha muerto, larga vida a Game Maker.
1Por supuesto, soy consciente de que lo normal en el desarrollo es que la compilación lleve más tiempo a medida que el proyecto crece. Sin embargo, a Game Maker Studio 1 le gusta guardar y hacer una copia de seguridad (o varias) de tus archivos cada vez que intentas ejecutar tu juego. Este proceso puede tomar mucho tiempo ya que Game Maker verifica y escribe cada uno de los archivos del proyecto y LUEGO comienza el procedimiento de compilación.
2Aunque creo que si pudiera volver atrás y hablarle a mi yo de diez años, lo convencería de bajarse Flash y no Game Maker...