29/8/12

Guía Game Maker completa

1. CONCEPTOS BÁSICOS


En Game Maker existen sprites, rooms, objects, fonts, scripts, backgrounds, sounds, time lines y paths. Todo esto se puede resumir en muy pocas palabras, y antes que nada, debes conocer qué es cada cosa, ya que será con lo que trabajarás en tu proyecto:


En el primer cuadro que está marcado con rojo aparecerán los objects, sprites y demás que tengas creados y haciendo clic podrás editarlos.
Ahora voy a explicar qué es cada cosa y el icono correspondiente, y después, ya veremos con más profundidad cada uno.
Sprites: Son los dibujos del juego. Por ejemplo, el dibujo del personaje principal, el dibujo de una roca... En definitiva, las cosas que aparecerán en el juego de forma gráfica.
Sounds: Son los sonidos. Puedes administrar desde allí la música de fondo, etc.
Backgrounds: Son los fondos del juego. Por ejemplo, si queremos que nuestro juego se juegue como si estuviésemos en el cielo, haríamos un background de un cielo, lo ponemos, y ya tenemos un fondo.
Paths: Son movimientos que puedes ponerle a algo. Por ejemplo, puedes hacer que un personaje vaya a la izquierda, luego a la derecha... y repita el proceso. Es como si se moviese por el nivel como quieras.
Scripts: Si eres nuevo con Game Maker no tendrás ni que mirar esto. Los scripts son códigos de programación que luego puedes agregar al juego. Por ejemplo, un script podría ser "speed=0" que haría que quien tenga ese script, no se mueva. Pero para ello necesitas saber programación GML que ya veremos más adelante porque tiene un poco de complejidad.
Fonts: Es el tipo de letra que aparecerá en el juego. Puedes escoger entre muchos tipos de letra: Arial, Times New Roman...
Time lines: Con esto puedes hacer que algún objeto pueda realizar una acción pasado un tiempo. Por ejemplo, que cuando pase un segundo, haga algo.
Objects: Son todos los objetos del juego: el jugador y todo lo que aparecerá en el juego. Desde allí programaremos casi todo lo del juego.
Rooms: Son las pantallas del juego. Por ejemplo, una room podría ser el menú de inicio, otra room un nivel, otra room otro nivel...

2. SPRITES, BACKGROUNDS Y SOUNDS


Vamos a ir de cosas más simples a cosas más difíciles para que no te sea muy difícil entender las explicaciones. Empezaremos por los sprites, así que ya sabes, haz clic en el icono correspondiente a los sprites (que lo vimos en la primera parte) y aparecerá esto:


NameAquí podrás ponerle un nombre de referencia al sprite. Da igual el que pongas, ya que el nombre no aparecerá en el juego, solo te servirá a ti para guiarte mejor.
Load spritePuedes poner un sprite que tengas ya en tu ordenador y cargarlo directamente.
Save spritePara guardar el sprite
Edit spriteSi no tienes el sprite creado puedes hacerlo directamente desde Game Maker desde aquí. Para ello, haz clic ahí y aparecerá esto:


 Haz clic en "File" y luego en "New". A continuación debes colocar el tamaño del sprite, y ya podrás hacerlo:


Ahora vamos con los backgrounds:
Es igual que los sprites, así que no haré ninguna explicación. Solo recordaros que aquí tenéis que poner los fondos del juego.


Vamos con los sounds:

 - Name: Al igual que con los backgrounds y sprites, ahí debes poner un nombre para el sonido aunque no aparezca en el juego. Ya sabes, solo te servirá para tenerlo como referencia.
Load sound: Agrega el sonido.
Play-Stop: Para escuchar cómo suena.
Filename y effects: Con esto puedes ponerle efectos a tus sonidos para que suenen de forma distinta.
Volume y pan: Para el tono y el volumen.

3. OBJECTS I : EVENTOS


Como el tema de los objects es posiblemente lo más complejo y lo que más vamos a usar, voy a dividir en dos partes la explicación. Vamos a aprender en esta primera parte cómo crearlo y personalizarlo, y los eventos (events).


 - Name: Lo mismo de siempre. Es el nombre que quieras ponerle al object/objeto.
Sprite: El objeto puede tener un sprite. Por ejemplo, si vas a hacer que ese objeto sea el personaje principal, debes ponerle el sprite del personaje principal. Si va a ser un enemigo, le pones el sprite del enemigo, y así con todo.
Visible: Si marcas esta casilla el objeto será visible. Si no tienes esa casilla marcada, será invisible.
Solid: Hace que tu objeto sea sólido.

Ahora voy a explicar los events/eventos:
Para agregar un evento haz clic en "Add Event" y aparecerá un cuadro como el de la imagen. Dentro de los eventos debes poner acciones (que veremos en la próxima parte)
Create: Realiza las acciones cuando aparece el objeto.
Mouse: Realiza las acciones al hacer clic con el ratón, etc. 
Destroy: Realiza las acciones al eliminar el objeto
Other: Realiza otras funciones.
Alarm: Activa una alarma (veremos más de las alarmas próximamente)
Draw: Realiza las acciones de dibujo
Step:  Hace que las acciones se hagan al empezar la partida y no paren. Si quieres que ocurra algo que esté durante todo el juego, debes poner las acciones ahí.
Key Press: Realiza las acciones al mantener presionada una tecla
Keyboard:  Realiza las acciones al presionar una tecla
Key Release: Realiza las acciones al soltar una tecla
Trigger: Es para usar cosas muy complejas de GML que apenas ni yo sé, y además, no es apenas usado para los juegos ya que no es casi útil. 

4. OBJECTS II: ACCIONES


En la lección anterior acabamos viendo los distintos eventos que se pueden agregar a un object/objeto. Ahora, aprenderemos las acciones que se pueden agregar en los distintos eventos.
Para aclarar dudas: lo que veremos, será la acción que el object hará al realizar un evento. Es decir, si por ejemplo ponemos de evento "Key press right", y dentro tenemos una acción que hace que se mueva nuestro object a la izquierda, lo que ocurrirá será que al tener presionada la tecla derecha, el object se moverá a la izquierda. 
Ahora que está todo explicado, vamos a ver las distintas acciones:


En la pestaña de move encontramos distinas acciones. Son referidas al movimiento. Vamos a ver primero la sección Move:
- Move fixed: hace que el object se mueva hacia alguna dirección. En "speed" eliges la velocidad.
Move free: hace que el object se mueva hacia alguna dirección pero especificándolo en grados. En "speed" eliges la velocidad.
Move towards: cambia la posición del object a una específica. En "speed" eliges la velocidad. Ten en cuenta que si marcas la casilla "Relative" la velocidad y la posición aumentará al doble.
Speed horizontal: sirve para determinar la velocidad horizontal del object. Si pones el número negativo irá hacia la izquierda.
Speed vertical: sirve para determinar la velocidad vertical del object.
Set gravity: con esto pones gravedad. Puedes poner la dirección y aceleración de la gravedad.
Reverse horizontal: hace que el object cambie horizontalmente de dirección.
Reverse vertical: hace que el object cambie verticalmente de dirección.
Set friction: determina una fuerza de rozamiento, lo que hace que disminuya la velocidad del object.

Ahora vamos a la sección Jump:
- Jump to position: hace que el object vaya a un lugar determinado indicado en el eje x e y.
Jump to start: hace que el object vaya al lugar inicial donde apareció por primera vez en la pantalla.
Jump to random: hace que el object vaya a un lugar aleatorio de la pantalla. En "snap" puedes alinearlo a una cuadrícula, indicada en píxeles.
Align to grid: para hacer una cuadrícula imaginaria, y que se alinee en ella.
Wrap screen: hace que si el object sale de la pantalla, aparezca por el lado contrario. Podemos elegir si esto solo ocurre en el lado horizontal, vertical, o en los dos.
Move to contact: hace que el object se mueva en una dirección hasta que colisione con otro. Puedes elegir la dirección, la máxima distancia para encontrar el object, y si esto ocurre solo en objects sólidos, o en todos.
Bounce: para que rebote. Puedes elegir si es preciso o no.

Ahora vamos a ver la sección de Paths que veremos cómo hacerlos más tarde, pero que ya explicamos su definición en la primera parte de este tutorial:
Set path: sirve para poner a funcionar un path que hayamos creado. Podemos elegir la velocidad, si queremos que pare al terminar ("stop"), que continúe desde el principio ("continue from start"), que continúe por donde va ("continue froms here") o que lo repita en sentido contrario (reverse).
End path: para que pare el path que esté haciendo, aunque no lo haya terminado.
Path position: para determinar la posición del path con los números 0 y 1. El 0 es el primer punto, y el 1, el último.
Path speed: para determinar la velocidad del path.

Por último, veamos la sección de Steps:
Step towards: hace que se mueva un paso hacia donde indiques. Recuerda que si pones esta acción dentro del evento "Step" dará un paso cada medio segundo.
Step avoiding: hace lo mismo que el anterior pero esquivando. Puedes decidir si esquiva sólo objects sólidos, o todos.

Ahora explicaremos la pestaña de main1:



Empecemos con la sección de Objects:
Create instance: crea un object desde la posición que queramos.
Create moving: crea un object desde la posición que queramos pero con movimiento.
Create random: crea un object aleatorio. Puedes poner un máximo de cuatro, y de entre ellos, saldrá uno en la posición que escojas.
Change instance: cambia un object por otro.
Destroy instance: elimina el object.
Destroy at position: elimina todas las instancias en el lugar que indiques.

Ahora vamos a la sección Sprites:
Change sprite: cambia el sprite del object. Si tienes un sprite con varias subimágenes, el 0 sería para la primera, el 1 para la segunda, y así sucesivamente. También puedes elegir la velocidad de la animación (en caso de que el sprite tenga subimágenes) con un número entre -1 y 1.
Transform sprite: cambia algunas cosas del sprite.
Color sprite: para cambiar el color del sprite. Puedes cambiar la transparencia en alpha, siendo 1 totalmente visible, y 0, transparente (puedes usar decimales como 0.5 para una transparencia media)

Para los sonidos vamos a la siguiente sección, Sounds:
Play sound: para que comience a sonar una música. Puedes elegir que se repita al acabar ("loop true") o que solo suene una vez ("loop false")
Stop sound: para parar la música.
Check sound: realiza las acciones que coloques debajo entre flechas (pestaña "control") si se está reproduciendo una música.

Y para terminar, vamos a la sección de Rooms:
Previous room: para ir al room anterior.
Next room: para ir al room siguiente.
Restart room: para reiniciar el room en el que estés.
Different room: para ir a la room que quieras.
Check previous: hace que vayas al room anterior, en caso de que exista.
Check next: hace que vayas al room siguiente, en caso de que exista.

Vamos ahora a la tercera pestaña, la pestaña main2:



Empecemos con la sección Timing: 
Set alarm: sirve para que al pasar los steps que pongas, ocurra la acción que pongas (debe estar entre flechas/corchetes)
Sleep: pausa la escena en el tiempo que eligas, en milisegundos.
- Time lines: estos seis lo veremos más adelante, en la tercera parte.

Y ahora, la sección Info:
Display message: muestra un mensaje escrito por ti en la pantalla.
Show info: muestra la información del juego, que aprenderemos a editarla en la lección 3.
Splash text: muestra un archivo de texto ".txt" (ejemplo.txt), que esté dentro de la carpeta del juego.
Splash web. muestra una página web.
Show video: es igual que el que he dicho para texto, pero para mostrar vídeos. Puedes hacer que se repita al finalizar ("Loop") o que no se repita ("Don't loop")
Spash settings: parece algo como para hacer aparecer alguna ventana especial, pero no sé... No le veo ninguna funcionalidad, y creo que no sirve de nada.

Vamos a la tercera sección, la de Game:
Restart game: reinicia el juego completo.
End game: cierra el juego.
Save game: guarda la partida. Puedes modificar el nombre del archivo con los datos guardados.
Load game: carga la partida guardada.

Como última sección, veamos la de Resources:
Replace sprite: carga una imagen para que sea el nuevo sprite del object.
Replace sound: igual que el anterior, pero para un sonido.
Replace background: también es igual, pero para el fondo.

Ahora veamos la cuarta pestaña, control:
Empezamos con la sección de Questions:
- Check empty: verifica que si el object se encuentra en una posición no colisione con ningún otro object.
- Check collision: es lo contrario al anterior. Verifica que el object, al encontrarse en una posición, colisione con un object.
Test instance: crea un número determinado de objects iguales a ese con que tan solo debas poner uno en la room.
Test chance: es para hacer cosas al azar. Con dos lados del dado hay un 50% de posibilidades de que ocurra lo que indiques posteriormente, con cuatro un 25% y así sucesivamente.
Check question: muestra una pregunta al jugador, con respuesta "Sí" o"No". (En inglés: Yes, No)
Test expression: verifica si una variable es mayor que 0.5.
Check mouse: realiza la acción que indiquemos entre bloques/flechas posteriormente si un botón del ratón está pulsado.
Check grid: para hacer una cuadrícula.

Ahora vamos a la sección de Other:

- Start block y end block: sirve para abrir y cerrar un bloque. Entre ellos puedes poner las acciones que se harán cuando pase lo que pongas arriba. Por ejemplo, ponemos un "Check mouse" del botón izquierdo, y luego, encerramos entre bloques "Change sprite". Entonces, al pulsar el botón izquierdo del ratón, se cambiará de sprite.
Else: sirve para que, si no se puede realizar la acción anterior, se realice otra. Por ejemplo, ponemos la acción de que si conseguimos 10 puntos pasamos de nivel. Entonces, sería algo como: "If score is equal to 10 -> Next room", "Else", "Restart room". Así, si no se consigue 10 puntos, se reinicia el nivel.
Exit event: hace que las acciones que vayan después no se ejecuten.
Repeat: repite la acción siguiente tantas veces como indiquemos.
Call parent event: no sé para qué sirve. No le veo ninguna utilidad.

Tercera sección, Code:
Execute code: sirve para poner códigos en GML que veremos en lecciones posteriores.
Execute script: ejecuta un script que hayas hecho anteriormente.
Comment: sirve para poner anotaciones donde queramos, pero no sirven de nada en el juego ni serán visibles.

Y por último la sección de Variables, aunque veremos qué son las variables en la lección siguiente.
Set variable: le pone un valor determinado a una variable.
Test variable: hará que si una variable tiene el valor que le indiques, realice la acción que pongas posteriormente entre bloques.
Draw variable: tiene que ir obligatoriamente en el evento Draw. Dibuja el valor de la variable en la room.
Las otras pestañas no las explicaré. Solo son para poner puntuaciones, vida, algunas acciones para dibujar y hacer partícula, y poco más. No creo que necesiten explicación.

5. VARIABLES



Para explicarme mejor, las variables son como el dado de un parchís. Si me toca uno, avanzo una casilla, si me toca el dos, avanzo dos... En definitiva, si una variable vale por ejemplo 1, podremos hacer que ocurra tal cosa. Si vale dos, ocurrirá otra...
Las variables se escriben en Execute code, que como vimos en la lección anterior, está en la pestaña "Control".
Aquí va un ejemplo de una variable:

Y con esto tan sencillo ya tenemos una variable llamada "monedas" que vale 10.
Ahora, teniendo creada esa variable, pongamos que si las monedas valen 20, el juego finaliza.

Para eso iniciamos con un "if", que significa en español "si", y luego entre corchetes lo que queremos que ocurra en ese caso.
A las variables se le pueden dar otros usos como hacer que si consigas cien monedas consigas una vida, que si tienes cinco monedas puedas comprar algo... Y la variable podrá llamarse como sea y para el uso que sea.

6. TIME LINES


Un time line sirve para que pasen ciertas acciones en ciertos momentos que se miden en steps (ya definido en anteriores lecciones).


En este ejemplo en el step número 20 ocurre una cosa, en el step 34 otra y en el step 89 otra.
Para asignar un time line a un object mira la lección anterior para ver qué accion corresponde a esto.

7. PATHS


Los paths sirven para marcar una trayectoria definida a un object. Imaginemos que hay un personaje malo y queremos que se mueva por la sala con un recorrido que nosotros hagamos. Entonces haremos un path de la siguiente forma:
- Seleccionamos el icono de las rooms y cogemos la room con la que trabajaremos.
- Desmarca la casilla "Closed".
- En la pantalla donde aparece la room, ve poniendo el recorrido.


Para asignar un path a un object mira la lección anterior para ver qué accion corresponde a esto.

Próximas partes en construcción...


2 comentarios:
  1. Muy buen Emilio, va a favoritos, luego me lo leo más detenidamente.

    ResponderEliminar
    Respuestas
    1. Perfecto Fernando, ¡muchas gracias por tu comentario! Espero que te sea de ayuda :)

      Eliminar

Bienvenido al sistema de comentarios de Campamento Web. Todos los comentarios serán respondidos lo más brevemente posible. Por favor, no incluyas publicidad de sitios web o productos ni palabras ofensivas. ¡Gracias por comentar!