Los 110 millones de recuerdos.



Hey, cuando me preguntan si tengo canción favorita en todo el mundo que conozco de los videojuegos, mi respuesta siempre es sí. Cuándo me preguntan cual es esa canción, les respondo con esto:




La respuesta está más allá de lo que se podría pensar, no me gusta solo porque está en 8bits, no me gusta solo porque es "genialosamente" épica y pegajosa. Me gusta porque hay un mundo de gente allá afuera a quienes también les gusta.

¿Qué significa todo lo anterior? Significa que la canción es tan asombrosa, que es perfectamente disfrutable en cualquier género musical que pueda pasar por sus traviesas mentes, y eso mismo, hace que haya un "chilión" de covers y variaciones en todo youtube. Empezando, claro por Omoide wa okkusenman.


Omoide Wa okkusenman

Omoide wa okkusenman es probablemente la interpretación más conocida de la banda sonora que nos compete, en cuanto al género, es un conjunto de gritos con un poco de J-Rock. 
La conocí un día que estuve navegando por todo Youtube en busca de otra canción relacionada con megaman que había escuchado, no encontré lo que buscaba pero encontré al chico fan de Ultraman 7. 



Además de la versión original, hay otros varios covers disponibles por ahí, uno de los que más he visto es el de Jam Project. Pero sin duda mi favorito es el de Team Nekokan.


OMOIDE WA OKKUSEMAN de Jam Project



OMOIDE WA OKKUSEMAN de Team Nekokan




Megaman 2 with lyrics

Tal y como lo dice el título, es la música de Megaman 2 con letra, hace parte de la serie de vídeos famosísimos de Brentalfloss, un Youtuber anglosajón. 
Cuándo lo vi por primera vez, funcionaba como un trabalenguas, ya que mi inglés apestaba y no era lo suficientemente hábil como para pronunciar "gotta run gotta run now" sin equivocarme.





OC ReMix #2121: Mega Man 2 'For You'

Un día, no sé ni como, ni por qué me topé con esto. Es una especie de canción original, nacida a partir de un remix del dichoso tema del nivel del Doctor Wily.

"For You", fácilmente podría competir con cualquier canción "real", el remix de fondo es una delicia musical y la letra es el complemento perfecto.
Es una canción llena de sentimientos, ideal para quienes disfruten pasar tiempo interpretando letras ambiguas.

El vídeo está acá abajo. Y recuerden: "Secrets never show themselves".





 

Super Smash Bros

Hace más de un año, en el E3, supe lo que se sentía estar hypeado. Ya sabía que iban a sacar un Smash para Wii U y tenía puestas las esperanzas en ver un trailer. Cuándo llegó el momento, no tuve tiempo ni de parpadear, el trailer había cumplido, mostraba lo genial que se vería el nuevo Smash, y mostraba a un nuevo peleador de la casa de Nintendo, así que me dije a mí mismo: "bueno, ahora a esperar un rato por nuevas noticias". Cuándo la nación del hype atacó, había más después del trailer, y vaya sorpresa al ver que lo que seguía era la presentación de MegaMan, con un toque épico que me vendió el juego en ese momento. Lo que más me gustó, fue el acompañamiento musical, que hacía uso de una versión remasterizada del tema que ya todos sabemos cuál es.

Así que aquí está, al menos la versión que suena en el juego para 3Ds, dado que aún no sale la de sobremesa. 






I Want to Be the one - The Megas

Para empezar a medir lo famoso y popular que es MegaMan, podría tomarse el hecho de que existe una banda completamente inspirada y dedicada al Robot azul.

The Megas, toma la banda sonora de los juegos y crea canciones inspiradas en el mundo de MegaMan. Así que no es de esperar que hicieran una canción del mejor OST de todos.

"I want to be the one", o en español, "Yo quiero ser aquel", es una canción inspirada en Megaman 2, y expresa los sentimientos del súper robot llamado Megaman, y cómo quiere ser aquel que luche por la justicia y aquel que hará lo que pueda para salvar a la humanidad. 






¿Ya mencione lo de ser completamente disfrutable en cualquier género?

Como ya lo mencioné antes, lo mejor de todo es encontrar un sin número de covers y remixes de la música del nivel de Dr Wily, desde covers de rock llenos de guitarras eléctricas, hasta algo más calmado pero igualmente emocionante, con alguien tocando un violín.





Desde temas completamente eléctronicos, hasta otros completamente acapella.
 



Y así podría seguir todo el día, comparación tras comparación. Porque la calidad es innegable, y porque versiones de esta canción, hay más de 110 Millones.  


Game Maker #2: Movimientos Básicos y Colisión

Cuando se empieza con Game Maker, generalmente el primer objetivo es hacer mover algo. Hay muchísimos tutoriales por ahí, y hay muchísimas formas de hacer mover a un personaje.
Pero según mi experiencia, muchos de los tutoriales no solo nos enseñan a darle movimiento a un objeto, sino que también nos deja algunos bugs, que en muchos casos, son motivos de dolores de cabeza.

Así que en el siguiente tutorial, no solo enseñaré a dar los movimientos básicos de un juego en 2D, sino que también daré solución a 2 problemas bastante frecuentes : QUEDARSE PEGADO A LAS PAREDES y QUE EL PERSONAJE SE DETENGA AL CAMBIAR RÁPIDAMENTE DE DIRECCIÓN.

Así que empecemos.

Lo primero será tener los sprites de el personaje y del bloque que nos detendrá de las caídas, para ello vayan a Resources/Create Sprite y creen el sprite de ambos.

Ahora creen un objeto de para cada sprite, ya saben .Resources/Create Object, les ponen los nombres que quieran y seleccionan el respectivo sprite. Y con el objeto de Bloque, marcan la casilla "Solid" para evitar que el personaje atraviese el bloque.

Ahora, nos enfocaremos en el personaje, lo primero será crear el evento Create, estableceremos la gravedad y crearemos 3 variables booleanas y las dejamos en falso. Más o menos así:
leftmove=false
rightmove=false
jump=false
gravity=1.6
Gravity, es una variable predefinida por Game Maker, nosotros le daremos el valor que queramos, teniendo en cuenta que entre más gravedad, más pesado será nuestro personaje.

Las 3 otras variables las creé para que el juego supiera cuando el personaje se mueve a la izquierda (leftmove), a la derecha (rightmove) o salta (jump). Empiezan en false porque al crearse el objeto, este permanecerá estático hasta que le ordenemos que hacer.

Y ya habremos terminado con este evento, en el software deberá verse similar a esto:



Ahora es momento de establecer el movimiento, para ello crearemos los eventos Keyboard/Left y Keyboard/Right. En cada evento estableceremos la velocidad y le diremos al juego que el personaje se está moviendo, para ello usaremos algo como lo siguiente:

hspeed=-4
leftmove=true

hspeed es la variable que usa Game Maker para modificar la velocidad horizontal de un objeto, es igual a un número negativo (como en el ejemplo de arriba) si se mueve hacia la izquierda y es positivo si se mueve hacia la derecha. Ustedes deben poner el valor que quieran, asegurándose de que el número que pongan en left sea el mismo de right pero negativo. Ah, y para los despistados, leftmove es la variable que creamos hace un rato.

En este punto deberán tener dos eventos como estos, para <left> y <right> respectivamente:

Para la izquierda.

Para la derecha.

Listo, cuándo tengan presionadas las teclas de derecha o izquierda, su sprite estático se moverá, ahora debemos decirle al programa que hacer cuándo dejen de presionarlas. Para ello, haremos uso de los eventos Release/left y Release/right. Y en cada uno, pondremos algo como lo siguiente:

Ejemplo obviamente de Release/left.
if leftmove==true
{
    leftmove=false
    if rightmove==true
    {
        hspeed=4
    }
    else
    {
        hspeed=0
    }
}
"¿Qué significa todo esto?", se preguntarán. Daré una explicación en el orden del código.

Con el condicional if leftmove==true, el software revisa si el personaje se está moviendo hacia la izquierda.

Después de la verificación, el software establece que ya no se moverá hacia la izquierda mediante leftmove=false.

Después viene otro condicional  if rightmove==true, esta linea, en este evento, verifica si en el momento de levantar la tecla izquierda se está presionando la derecha, y en caso de que sea así, se ejecutará lo que hay entre los corchetes (en este caso, el personaje se moverá a la derecha con una velocidad de 4). Esto es muy importante, porque suele suceder que en los eventos de Release, solo pongan que el personaje se detenga, siendo molesto, porque muchas veces no tenemos control del orden en que presionamos las teclas y el personaje puede quedarse quieto porque sí.

Lo siguiente es el else, esto significa que en caso de que no se cumpla lo de arriba, se ejecutará la línea en corchetes que sigue, en español, si en el momento de levantar la tecla izquierda, no está presionada la derecha, el personaje se detendrá.

Ahora solo deberán hacer lo mismo, invirtiendo las variables con Release/right, y tendrán 2 eventos como estos:

Izquierda.

Derecha.

Enhorabuena, su personaje ya se mueve a derecha e izquierda, y ustedes no tendrán problemas para controlarlo en una superficie plana, lo siguiente será hacerlo saltar. Así que creen un evento con la tecla que quieran... la ruta por lo general es más o menos así Key Press/ Letters /*insterte letra aquí*.

Una vez creado, tienen que poner un código como este:

if jump==false
{
    vspeed=-18
    jump=true
}
Como arriba, tenemos un condicional, if jump==false, verifica si ya se está saltando, y de no ser así, se ejecuta lo que haya entre corchetes abajo. En este caso establecerá una velocidad vertical (vspeed) de -18 (que gracias a la gravedad, será momentánea), y le dirá a Game Maker que ya está en el aire con jump=true. En pocas palabras, el codigo verifica que no se esté saltando ya para poder saltar. Ya que otro error común es no verificar esto antes, he visto juegos donde los personajes saltan infinitamente.

Según el ejemplo:



Lo siguiente, es hacer por fin, la colisión con el bloque, deberán crear un evento de colisión, Collision/*seleccionan el objeto bloque*, y deberán poner un código similar a este:

if jump==true && place_meeting(x,y+15,other)
{
    jump=false
}
vspeed=0

¡Explicación! Aquí hay un condicional que verifica 2 cosas (se sabe por los &&), así pues, verifica que se esté saltando con el jump==true, y verifica que se encuentre con otro objeto en la posición que se le indique con place_meeting. 

La función place_meeting, requiere que se le indiquen las coordenadas donde hay que verificar la presencia del objeto, y el objeto en cuestión (lo sé, hasta yo me enredé), en este orden: place_meeting(posición en x, posición en y, y el objeto).

En el ejemplo, puse x, que representa la posición x del objeto al que pertenece el evento (el personaje, en este caso), y+15 toma la posición de mi personaje y le suma 15 pixeles, y other, hace referencia al objeto con el que se está colisionando en el evento, en este caso, el susodicho bloque.

Bueno, después de la verificación de que se esté saltando y de que haya un bloque en la posición indicada, jump=false , le dirá al software que ya caímos y que es posible saltar otra vez.

Por último, vspeed=0, hará que siempre que nuestro personaje esté en contacto con el bloque no podrá seguir cayendo. Pero esto implica que si por ejemplo, hay colisión por el lado derecho del bloque, nuestro personaje quedará atascado. Por eso, hay que crear un último evento, pero mientras tanto, verifiquen que su código luzca similar a esto:



El último evento del tutorial es Step, una vez creado, pondremos un código como este bebé:

if place_free(x+hspeed*2,y)
{
    hspeed=hspeed;
}
else
{
    hspeed=0
}
La función place_free, funciona como place_meeting, pero verifica que haya espacio libre en la posición indicada, por lo tanto if place_free(x+hspeed*2,y), verificará que haya espacio libre en tantos pixeles como el doble de la velocidad horizontal sea. En nuestro caso, como nuestro personaje se mueve con una velocidad de 4, verificaremos que haya 8 pixeles de espacio. 

hspeed=hspeed, entre los corchetes, significa que mientras haya espacio libre, la velocidad de mantiene. Y si por el contrario, hay un objeto, Game Maker ejecutará la línea dentro del else, en este caso, hará que nuestra velocidad horizontal sea de 0. Osease, nuestro personaje se moverá con naturalidad mientras haya espacio frente a él, pero si hay un bloque, nos mantendremos alejados unos 8 pixeles y no lo tocaremos, por lo tanto no quedaremos atascados y caeremos con naturalidad. 

Si se preguntan, por qué en Step y no en algún otro evento, como el de la colisión, la respuesta es simple, cuándo algo está en Step se ejecuta siempre, mientras que en cualquier otro evento deberá cumplir ciertas características y no verificará todo el tiempo, por lo que habrá errores visibles. 

Y el código de Step debe verse como así:



Y listo, pueden ejecutar y ver que todo funciona correctamente, la siguiente tarea será hacer los Sprites e implementarlos a nuestros eventos (pero hablaré de eso otro día). 

Para el que lo quiera, el proyecto del tutorial está alojado en MEGA, click en la imagen para descargar.



Y, ya saben, cualquier duda, sugerencia o petición, pueden hacerla en los comentarios abajo, o en la pestaña de contacto arriba. Seguiré con los tutoriales de Game Maker, pronto.

Gracias por leer.



Game Maker #1: Mostrar texto aleatorio

Una introducción breve a todo esto

Game Maker es una herramienta muy potente que permite programar (generalmente videojuegos, pero habrá quien le de otro uso) muy fácilmente, sin necesidad de tener conocimientos de código, ya que posee un cómo sistema de arrastrar iconos, que emulan de algún modo el estar escribiendo en otro idioma, aún así, para sacar el 100% de su potencial, se debe aprender al menos a manejar el GML (Game Maker Language). 

Un problema bastante común para los que inician con este software, es que se acostumbran mucho a los iconos arrastrables, y en muchos casos, se complican demasiado con problemas bastante simples, que podrían solucionarse en una o dos líneas de código. 

Y eso fue lo que me motivó a empezar esto, algunos tutoriales cortos, que solucionan un problema en específico. En español, para su mayor comodidad. 


Ahora sí

¿Alguna vez han jugado Minecraft? Para los que no lo sepan, al iniciar el juego, aparece una frase aleatoria en el menú, al lado del logo. Es justamente algo así a lo que llegaremos siguiendo este tutorial. 

Lo primero será crear un objeto, ya saben, con el botón que parece una pelota o dando click en Resources/Create Object y llámenlo como quieranJusto después de eso, agreguen 2 eventos al objeto: Create y Draw. 



Lo siguiente será empezar a escribir el código empezando por el evento Create, para ello daremos click en el evento, luego iremos a la pestaña Control y arrastraremos Execute code (el que tiene icono de una hojita). Se nos abrirá una ventana y empezaremos a escribir la lista de oraciones de este modo:

oracion[0]="Texto 0"
oracion[1]="Texto 1"
oracion[2]="Texto 2"
oracion[3]="Texto 3"
oracion[4]="42"
oracion[5]="Texto 5"
oracion[6]="Texto 6"
oracion[7]="Texto 7"
oracion[8]="Texto 8"
oracion[9]="Texto 9"
oracion[10]="Texto 10"

En el ejemplo, "oracion" es el nombre de la variable que guardará el texto, y el número entre los corchetes cuadrados, indica la posición en que se guarda, (en programación se llaman Vectores y Matrices). Ustedes pueden nombrar a la variable como quieran y extenderse cuánto quieran, recuerden que cada oración que quieran que aparezca debe ir entre comillas. 

Después de haber establecido el texto dentro de cada oración posible, habrá que crear otra línea de código que cumplirá el papel de seleccionar una aleatoriamente, algo más o menos así: 

variable=oracion[irandom(10)]

Donde "variable" puede tener el nombre que quieran. 

La función irandom, selecciona un número aleatorio dentro del límite que establezcamos, en este caso 10, la misma cantidad de oraciones. Por lo tanto, en el ejemplo, la oración aleatoria queda guardada en la variable "variable" (no cuestionen mi originalidad).

Después de todo eso, su código quedará similar a este: 



Ahora, hay que pasar al evento Draw, crean otra acción de Execute Code y hacen algo más o menos así:

draw_text(x,y,variable)

La función draw_text, dibujará el texto en pantalla, ustedes deben reemplazar "x" "y" por la posición del room donde quieren que aparezca su texto y "variable" por el nombre de su variable. 

Et voilá, habrá texto aleatorio cada vez que se cree su objeto. Si quieren pueden descargar el proyecto del tutorial dando click en la imagen obvia. Agregué un evento para reiniciar el room con la barra espaciadora, así verán como el texto se genera automáticamente sin tener que ejecutar y cerrar repetidamente.  





Estaré subiendo más tutoriales de Game Maker pronto, si quieren un tutorial de algo en específico pueden CONTACTARME o dejar un comentario , responderé en cuanto tenga tiempo. 

Gracias por leer. 

Análisis Personal. Yume Nikki.


No he tenido el mejor día del mundo, a pesar de que todo empezó muy bien esta mañana, sea como sea, tengo ganas de hablar de un juego, que, según yo, encaja perfectamente con mi estado de ánimo.

Antes que nada, si no conocen el juego, me gustaría que escucharan esto, así se adentran un poco a la atmósfera de la que voy a hablar.


Yume Nikki es un juego al parecer independiente, creado por un tipo al que llaman Kikiyama, usando RPG Maker y la versión más actual es la 0.10 del 2007.

Al haber sido creado con el software que mencioné arriba, el juego tiene una apariencia similar a la de algunos videojuegos de 16 bits y tiene una vista aérea. Hasta aquí todo normal, pero, a medida de que avanzamos por el juego, vamos descubriendo que este juego se puede tornar en extremo bizarro, en el sentido anglosajón de la palabra.

Empezamos en el cuarto de Madotsuki, la protagonista, y como en todo juego cuerdo, lo que trataremos de hacer en primer lugar es salir por la puerta, pero para sorpresa de todos lo que lo jueguen por primera vez, Madotsuki, se negará a salir. Lo que debemos hacer es ir a dormir, y ahí empezará la aventura.

Estando dormidos apareceremos en el mismo cuarto, pero, en esta ocasión sí podremos salir y tan pronto como esto pase, descubriremos un lugar desde donde podremos acceder a nuestros sueños, se llama el Nexo y tiene 12 puertas que nos transportarán a lugares diferentes. Cada uno de los lugares a los que podemos acceder mediante el nexo, tiene una ambientación diferente, van desde un bosque nevado a una autopista, y de ahí, a un lugar lleno de luces de neón. A pesar de que en un principio se pueda acceder solamente a 12 zonas, existen muchas más, algunas bastante curiosas, ya que cada zona es accesible mediante otra y hay algunas que tomarán algo de tiempo, suerte y memorización para acceder.

El mundo en general es extraño, en muchas de las zonas, no sabrás en que demonios estás parado, algunas veces sentirás que estás caminando en el cielo y otras que simplemente estás en una infinita oscuridad. Si caminas demasiado hacia un lado, llegarás a donde empezaste, es como si le dieras toda la vuelta al mundo, hay que moverse en varias direcciones, en un principio aleatoriamente, para encontrar algo, con suerte ese algo será un efecto.

NASU


Los efectos son otorgados al interactuar con algunos objetos y personajes que están vagando por ahí, son básicamente poderes para Madotsuki, como obtener una bicicleta, hacer que llueva, volverse pequeña, o cambiar su cabello de color. El objetivo del juego es dejar todos los efectos en el Nexo, en forma de huevos... Pero, antes de dejarlos, hay que ser precavido y cargarlos a todos, ya que en ocasiones, son necesarios para avanzar y los otros personajes reaccionan de manera distinta dependiendo del efecto que tengamos activado.

Existen varios personajes en Yume Nikki, y aunque en su mayoría sean de apariencia monstruosa y rara, nada es una amenaza real para Madotsuki, ya que nada puede lastimarla físicamente, por el contrario, ella es la que puede matar lo que se mueva recibiendo en algunos casos una moneda de recompensa. Algo curioso es que Madotsuki si tiene puntos de salud y puede aumentar la cantidad de estos gastando las monedas en máquinas expendedoras, dependiendo de la bebida, puede subir uno o dos puntos.



Algo que no puedo dejar de mencionar, es que hay algunos sucesos que suceden con cierto porcentaje de probabilidad, por ejemplo, para llegar a la zona de las escaleras, Madotsuki tiene que acostarse en su cama ya estando dormida, pero no siempre se transportará, hay que hacer varios intentos.

Respecto al gameplay, Madotsuki se controla con las flechas del teclado e interactua con la barra espaciadora, la tecla Z o enter, activa los efectos con 1, los desactiva con 3, con 5 deposita un efecto en el Nexo y con 9 despierta, a excepción de cuándo está en su bicicleta, el control de Madotsuki se siente el mismo siempre.

Sonoramente, el juego es tétrico, no sé, la música es ambiental y genera en el jugador la sensación de tensión que marca la diferencia entre un juego aburrido y uno enganchador.

Finalmente, la historia es nula, no existe información sobre el contexto del juego, solo estamos ahí para jugar porque sí.Y aunque haya gente que relaciona directamente la falta de historia con la mala calidad de un juego, no es el caso de este en mi opinión, ya que mucha de su popularidad se debe a las infinitas interpretaciones de los jugadores, existen teorías que van desde una invasión alienigena, hasta la representación gráfica de los miedos de Madotsuki, así que los más curiosos ya tienen que hacer después de jugar.

En conclusión, el juego a pesar de estar inconcluso, es entretenido y alimentará el hambre de surrealismo de todos los que lo toquen, si se mira como un simple juego, no es la gran cosa, pero si se analiza todo, se indaga y se sacan nuestras propias conclusiones, el juego vale mucho más de lo que podría parecer a simple vista.

Aquí les dejo un vídeo bastante curioso que puede sacar una lágrima de los más sensibles, eso sí, si quieren probar el juego, veanlo bajo su propio riesgo de spoilers.





Y por si alguien quiere descargar el juego, puede hacerlo desde aquí.
Copyright © 2013 - 2015 xDGhost and Blogger Templates - Anime OST.