Crazy Monkey

crazymonkey_screenshot

About 2005 I discovered Game Maker 6, and having no experience in programming at that time, I found it incredibly useful and easy to use. A few months later I released Crazy Monkey, my first finished game, a bizarre platformer consisting on a monkey trying to get to the cheese in each level while avoiding surreal enemies in the way.  I did all the work of programming, animations and level design, then uploaded it to a personal website I had at that time, and made all my classmates play it.

Download Crazy Monkey.

La mejor explicación del LHC

Hace un tiempo estuvo en boca de todos el LHC, una gigante construcción que causó una enorme polémica a nivel mundial por los rumores y teorías que predecían el final del mundo por causa de este experimento.

Lamentablemente no todos sabían lo que hacia este aparato o de que se trataba el trabajo mencionado. Por suerte, encontré un video que a mi parecer es la mejor explicación de que es el LHC (en ingles) y me alegra poder compartirlo para que uds tambien lo puedan disfrutar.

Video y fuente aquí:

La mejor explicación del LHC

Espero les haya aclarado sus dudas 🙂

El scroll del scroller

ultimo “gran avance” de el juego en desarrollo Mad Butcher es una parte muy importante de todo juego scroller 2D, el scroll. El Carnicero es seguido por una “camara” que lo mantiene en la mitad de la ventana de juego todo el tiempo y los objetos se dibujan de manera relativa a la posicion del personaje, en otras palabras, el mono se mueve y no se sale de la pantalla. El problema de todo esto es que al acercarse al principio o final del escenario, como no hay algo para dibujar fuera de el, se ven los restos de dibujo de lo que habia antes en esa parte de la pantalla y eso se ve feo. Por suerte es fácil de solucionar.

Otros detalles que han cambiado es el sprite del personaje, el cual, además de tener fondo transparente y no un cuadro blanco, ahora es basado en un dibujo hecho en papel y luego photoshopeado gimpeado en sus pequeños detalles para luego ser usado en el juego. Además, el mismo personaje es mas grande que antes, algo asi como el doble del tamaño original, esto con la explicación de que le queremos dar mas énfasis a la la violencia que a saltos enormes y cosas que requieran una visión mas amplia.

Esta vez no hay terminal para que puedan ver que el juego es real, asi que quienes asisten al taller de videojuegos tendrán el honor el privilegio la oportunidad de ver el juego en acción. El resto espera.

Sansano Sky Defender

El proyecto de progra, un dolor de cabeza para aquellos sansanos que quieren asegurarse un 100 en un ramo que no pescaron ningún certamen, no tienen ideas y dependen de este proyecto para aprobar. Otros dicen que no les interesa, porque no son informáticos, porque es fome, porque no andan ni ahí, y por eso hacen una agenda. Otros juntan a su grupo y les dicen “voy vamos a hacer un juego”, el resultado, Sansano Sky Defender.

Como dije entonces, este juego es el proyecto de programación que hice hicimos en C y Allegro. Empezando de saber nada, logramos hacer algo que funcionaba, no es nada del otro mundo ni el mejor juego que existe, pero cumplió los objetivos, aprender, entretener, buena nota.

Este juego trata de una nave espacial de papel que se mueve de lado a lado y dispara “misiles” a los “extraterrestres” que se acercan al planeta, muy al estilo de space invaders. Pero eso no es todo, el juego cuenta con una historia (solo texto) que en pocas palabras dice que un grupo de 5 mechones de la utfsm crearon un avión de papel para salvar al mundo de la invasión ET.

Por razones de tiempo el juego lo entregamos tal y como lo presento ahora en este blog. Entre las cosas que le hicieron falta están:

  • Sonido.
  • Pausa.
  • Puntajes guardados.
  • Fondo con movimiento.
  • Niveles (aunque la dificultad aumenta con el tiempo).
  • Variedad en general.

Pero no importa, igual me saqué una gamba la pasamos bien con este proyecto y fue un paso importante en mi aprendizaje (el gran salto despues del crazy monkey). Lamentablemente el proyecto fue hecho compilado en windows, si algún día me doy el tiempo lo subo para los linuxeros también.

Descargar Sansano Sky Defender.

Nuevos pequeños avances

El desarrollo de Mad Butcher sigue y no se detiene, esta vez las actualizaciones en el código en relación al ultimo post incluyen:

  • Capacidad de incluir distintas etapas con sus respectivos mapas mas facilmente.
  • Etapas que se dibujan asi misma.
  • Punteros.
  • Imagenes en png y con transparencia.
  • Mas punteros.
  • Error de aceleración horizontal en contacto con el suelo solucionado.
  • Aceleración notoria y velocidades máximas para evitar problemas.

Aunque muchos de estos avances pueden parecer muy básicos para alguien que maneja la programación en C++ y más si han usado SDL antes, algo es algo, en un principio las primeras lineas de código tenían la intención de crear un mundo y entender como transformarlo en algo funcional, editable y expansible, para después preocuparse de definir los detalles.

Luego se escanearán unos dibujos que luego de un poco de retoque reemplazaran al sprite anterior. Despues de eso el plan es agregar un enemigo, que aunque no ataque, sea un tonto y se vea feo, que por lo menos exista, se mueva e interactue con el mapa. Aun no hemos visto nada del sonido en el juego, pero con tiempo se verá.

Ahora se ve y se mueve !

En relacion al post anterior, ahora el Mad Butcher se puede ver y mover al mismo tiempo. Todo gracias a la corrección de un error, que para varíar un poco, era increiblemente tonto (nota: no olvidar darle valor a las variables recién declaradas). Con la corrección del error se pudo avanzar un poco mas en el desarrollo (que había sido un poco dejado de lado) específicamente detallando las colisiones con el mapa para evitar situaciones ilógicas al momento de jugar, agregando colisión con techos que antes no tenía, también agregando velocidades horizontales límites y movimientos acelerados que se aprecian en un 0% pero que luego tendrán mas sentido, además dando la posibilidad al jugador de modificar ligeramente la velocidad horizontal cuando el Mad Butcher está en el aire permitiendo subirse a plataformas con un salto sin la necesidad de estar alejado de la misma plataforma.

Mad butcher Esta es entonces la primera screenshot publicada del juego Mad Butcher, la cual carece de cualquier tipo de valor artístico (eso se verá despues, por mientras lo pueden ignorar) pero muestra los pocos elementos que se han mencionado y funcionando como corresponde. Para los desconfiados, que podrían pensar que esta imagen fue hecha con paint gimp y para los que quieren ver un poco mas aprovecho de dejar la imagen que muestra un terminal de gnome con algunos de los valores del Mad Butcher en cada frame.

La ensalada de números que se ve aquí se puede traducir como “(posición horizontal, posición vertical) velocidad vertical”, y si se fijan se pueden apreciar los cambios de valores con aceleración. Gracias a este desorden podía seguir probando el juego cuando no dibujaba las cosas ya que me permitía saber donde estaba el objeto y a que velocidad caía.

Se ve o se mueve, pero no las dos a la vez

Cosas de la programación, mas que publicar un avanze estoy publicando un obstáculo, pero de todos modos sirve para aclarar que el trabajo no se ha detenido. Hasta ahora tenemos al personaje principal moviendose en un mapa 2D de 0 y 1 donde el 0 representa nada y el 1 es el piso, el personaje cae con gravedad, no se permite el cambio de dirección horizontal en el aire (una vez mas desarrollado el juego hay que ver que tan bueno es esto) y tiene detección de colisiones de forma rectangular con el mapa.

Mad Butcher se mueve, se ve, pero no las dos a la vez ¿Por qué? No sé, si supiera estaría arreglando el problema en vez de estar escribiendo esto. Lo que si sé es que esto sucedió cuando quize que el código quedara mas ordenado y reescribí algunas cosas, como las funciones de movimiento y detección de piso y paredes que no tienen nada que ver con las de dibujo, la cual fue una de las funciones que quedó intacta y que es la que ahora sin razón aparente no funciona. Yo sé que las otras funciones estan bien porque viendo los valores que me tira en modo texto me doy cuenta de que todo tiene sentido… como sea, tengo que seguir revisando el código para darme cuenta de el seguramente muy estúpido error y seguir con todo lo demas.

Dificultad de juegos de plataforma

Angry Video Game NerdPara el taller al que asisto me ofrecí de voluntario para hacer una presentación simple pero entretenida acerca de este tema. Lamentablemente por falta de tiempo no pudimos hacer algo mas elavorado y original asi que utilizamos el artículo de gamedev.net que nos linkeó el organizador del taller de video juegos, agustin.antonissen.

Tomamos este artículo y lo resumimos (muy muy resumido) en un pdf (en español) que, aunque esta hecho para ser acompañado por una explicación hablada de cada uno de los puntos, le puede servir a alguien que este buscando pistas simples y rápidas para hacer que un juego en desarrollo no termine en algo muy fácil, muy difícil, repetitivo o ridículo.

Para acompañar la descarga, recomiendo ver específicamente dos videos del Angry Video Game Nerd que tratan de juegos que les habría hecho bien leer artículos como este (pero lamentablemente (para nosotros) en esos tiempos no existía tanta documentacion) , Die Hard, y Silver Surfer.

Descargar presentación en pdf.

Artículo original en gamedev.net

Mad Butcher: The Flesh Seeker

MB1Esta es la primera publicación del proyecto de juego en el cual trabajaré con deeckh (que desde ahora tambien es autor en este wordpress) para el taller de videojuegos al que estamos asistiendo.

Inspirados en este video, nuestra idea es desarrollar un juego de plataformas, simple, y con un alto contenido de violencia. Programarlo para PC en C o C++ y usar una biblioteca gráfica como allegro o sdl y preparar gráficas simples, con muy poco color a excepción del color rojo que queremos que resalte bastante.

El juego, hasta ahora, trataría de lo siguiente: Un jóven carnicero que luego de tener que cortar tanta carne de mala calidad se vuelve loco completamente y en búsqueda de una carne mas suave, blanda y perfecta empieza a matar y cortar todo ser de carne que se le cruze en el camino armado sólo con su cuchillo y con su delantal mientras es atacado por una variedad de enemigos como policias, ciudadanos valientes, esquadrones de fuerzas especiales y algún otro tipo de criaturas. Todo esto en un mundo bastante bizarro donde la gente con aspecto mas inocente puede ser portadora de poderosas armas o puede transformarse en cosas inesperadas.

La métología del juego es simple, plataformas, con un indicador de vida y sin muchas otras variables de las cuales el jugador se tiene que preocupar, movimientos simples en distintas direcciones, ataque, saltos. Distintas etapas que terminan cuando uno logra matar cierto numero y tipo de personas sin ser derrotado antes.

Todas estas ideas obviamente podrán variar durante el desarrollo de este proyecto buscando siempre lo mejor para hacer un juego mas entretenido y los avances o cambios serán publicados aquí mismo donde tambien se aceptan opiniones, críticas y sobretodo sugerencias que nos ayudarán mucho en esto que estamos comenzando.

Crazy Monkey

Parece que voy a usar este wordpres para publicar mi “desarrollo de videojuegos”, veré si resulta.

Como primer juego tengo la obligación de publicarlo aca, Crazy Monkey, un juego que hice el año 2005 usando la versión gratis del GameMaker 6. En ese tiempo no sabía de la existencia Crazy Monkey Game, un grupo de gente que desarrolla juegos en flash creo, claro que hay mil cosas que también tienen el nombre de Crazy Monkey, en ese momento me pareció un buen nombre y lo usé sin pensar en lo común que sería.

Crazy Monkey es un clásico juego de plataformas en 2D, creado con GameMaker 6, tiene controles muy simples , la capacidad de guardar y cargar (en cualquier momento) el juego, está en inglich (si, en inglich ) y como fue el primero de mi creación no es raro encontrarse por derrepente un bug o algo parecido mientras se juega (lo típico es un enemigo que se atasca en un rincón y no deja pasar).

En cuanto a historia, es un mono que está loco, por lo mismo durante todo el juego la gente que tiende a la cordura mas que a la demencia tiene problemas para saber que es lo malo y que es lo bueno, partiendo del hecho de que el primer enemigo es una lavadora y que el objetivo es un queso que es el que determina el fin de cada una de las 13 etapas las cuales, van subiendo en cuanto a complejidad para finalizar con una batalla en contra de un salvaje enemigo.

Luego de este juego empezé con el desarrollo de otros, los cuales nunca terminé ni me acerqué a una base sólida, a excepción de la segunda parte de este juego, la cual por razónes antes dichas no se llamaría Crazy Monkey sino Delirious Monkey, tratándose de lo mismo pero con mejoras, y claro, nuevas estapas y enemigos.

El juego cuandó lo terminé el 2005 lo publiqué en una pagina antigua que tenía y ha permanecido en internet en una que otra pagina personal que siempre mantengo por ahi, las cuales por falta de contenido no llegan muy lejos. Ahora le hice una pequeña modificación al juego y relanzo a internet para que pueda ser descargado desde aquí con el fin de marcar un primer paso en lo que intento que sea un “desarrollo de videojuegos” propio.

Descarga Crazy Monkey