Oh hai.
- Frilans 10 år, affiliate marketing
- Hittade Ruby för ~4-5 år sen, Rails nåt halvår senare
2D Spelutveckling i Ruby
- Kortare genomgång av spel libs
- Spelutveckling är en hobby, finns säkert duktigare folk i publiken!
- Presentationen finns online på ippa.se:1234
Enklast möjliga spel ram
class Game ‹ Gosu::Window
def initialize
super(800, 600,60) # width, height, fps
@game_objects.push(Player.new)
end
def update; @game_objects.each { |o| o.update }; end
def draw; @game_objects.each { |o| o.draw }; end
end
Game.new.run
Spelbibliotek - Rubygame
- Rubygame 2.x ( http://rubygame.org/ )
- SDL - crossplatform - normal "långsam" 2D
- Stöd för sprites, kollisions detektering (bounding box) och ett utbyggd Event-system
- Jacius @ #rubygame (freenode)
- 3.0 in the works, lutar åt OpenGL
Ramverk - Gamebox
- Gamebox. Bygger på Rubygame
- Shawn42 @ #rubygame (freenode)
- rails-liknande generators, actor, scene and behaivors
Ramverk - Jemini
- Jemini - JRuby framework av Logan Barnett
- Bygger på Slick och Phys2D
- OpenGL 2D för snabb GFX
- Cross platform, lägg till / ta bort "behaivors" runtime
- Aldrig använt, men intressant ur deployment synvinkel (framtida browser deployment? android?)
Spelbibliotek - Gosu
- Gosu - Tyskt och minimalistiskt
- C++ och Ruby
- OpenGL accelererat, textures as sprites, max 1022 x 1022 pixels
- Snabb GFX, skalning, rotering, zorder, fading. Ogg/wav stöd.
- @image.draw_rot(x,y,z,scale_x,scale_y,angle,color,mode)
- Enkel deployment. iPhone deployment (bara C++ dock).
Ramverk - Chingu
- Chingu - github. Bygger på Gosu.
- GameState, BasicGameObject, GameObject, Animation, Parallax, Text
- Traits (modules) addar logik till GameState och GameObject: timer, collision detection, viewport etc...
- Online high scores via GamerCV.com
Chingu
- GameObject.new(:image => Image["player.png"], :x => 100, :y => 200)
- Railsinspirerat: GameObject.new vs GameObject.create
- Enemy.all
- Enemy.each_collision(Bullet) do |enemy, bullet|
Chingu Ram
class Game ‹ Chingu::Window
def initialize
# width, height, fps
super(800, 600,60)
Player.create # Det skapade objektet hamnar i "game_objects"
end
end
Game.new.run
Ocra (Win32)
- Ocra mitt_spel.rb lib\*
- Ocra autodetekterar till 99% gems och DLLs
- En Ocra-skapas exe packas upp till tmp dir med full ruby-miljö, sen exekveras mitt_spel.rb. Så tänk på dina paths!
- GAMEROOT = File.dirname(File.expand_path($0)); ENV['PATH'] = File.join(GAMEROOT,"lib") + ";" + ENV['PATH']
Community
- #gosu, #rubygame @ freenode. #ludumdare @ afternet
- www.ludumdare.com, www.tigsource.com etc ...
- Ludum Dare 48-timmars speltävling. några ggr om året. ~130 deltagare.
- Rubyspel i Top5