Programando

 juegos con ruby

Julio López Montalvo - @TheBlasfem




Disculpe... ¿Tiene un momento para conversar 
sobre Ruby? Le va a cambiar su vida

MATZ



"Ruby is designed  to make programmers happy"


Facilidad de codearlo

Legible, lenguaje natural

Dinámico

Todo está orientado a objetos

Distintas maneras de hacer las cosas : Libertad

Altamente productivo: Mayor tiempo libre

Divertido



https://github.com/xenda/limagamejam

https://github.com/TheBlasfem/thegrim



http://megamanruby.com/



http://www.libgosu.org/



http://ippa.se/chingu

Instalación de gemas


Ingresar por terminal:

gem install gosu
gem install chingu

GET READY

... For this

DESARROLLEMOS UN JUEGO

Hagamos una Ventana con Chingu::Window


creemos una nave!

Trabajemos nuestros objetos heredando Chingu::GameObject



Démosle movimiento a la nave!

Usamos los traits de velocity y effect


Comprendiendo los offset...



corrijamos algunos bugs...

Los propulsores de la nave no tienen energía infinita, detengámosla. La nave no puede desaparecer!



pongamos pausa al juego

Conozcamos los GameState, crearemos 2 estados de juego, uno de pausa y otro para jugar




hagámoslo más divertido

Crearemos 30 monedas aleatoriamente para ganar puntos cuando pasemos por encima de ellas =)


Creamos el objeto moneda




Crearemos monedas cada 1500 ms, usaremos el trait timer


Ahora le daremos a las monedas y a la nave los traits de colision y forma

traits :collision_detection, :bounding_circle

Y definimos que si el jugador colisiona con una moneda, esta desaparece y el jugador gana 10 puntos




YAPA!!!

Animaciones y un editor super cool de escenario

Diseña Sprites, crea movimiento



Class Mario < Chingu::GameObject
def initialize(options)
super
@animations = Chingu::Animation.new(:file => "mario.bmp") @animations.frame_names = {:run => 0..2} @animation = @animations[:run]
end
def update; @image = @animation.next; end
end

crea tu escenario con el editor gui

class Play < Chingu::GameState
def initialize
super
self.input = { :e => :edit}
load_game_objects
end

def edit
push_game_state(GameStates::Edit)
end
end




GRACIAS

https://github.com/TheBlasfem/flisolchingu

Programando juegos con ruby

By Julio López Montalvo

Programando juegos con ruby

Cómo desarrollar videojuegos con Ruby? Desarrollaremos un videojuego empleando las gemas de Gosu y Chingu, las cuales nos aportan una lógica inicial para desarrollar videojuegos rápidamente.

  • 7,464