LoginSignup
18
18

More than 5 years have passed since last update.

MacにRuby/SDL、rsdl、SGEを入れて、ゲームライブラリMyGameを動かす

Last updated at Posted at 2013-07-03

51sWOzSOqbL._SL500_AA300_.jpg

『Rubyではじめるゲームプログラミング』山本団著(工学社、2007年)
をMacで動かすためのメモ:

必要なライブラリ

  • SDL
  • SDL_image
  • SDL_mixer
  • SDL_ttf
  • SGE(SDL Graphics Extension)
  • Ruby/SDL
  • rsdl
  • MyGame

この順にインストールしていく
  


環境

  • OS X Mountain Lion(10.8.4)、または Lion(10.7.5)
  • Ruby 2.0.0-p.247、または 1.9.3-p.429(※ 2.0.0-p195では rsdlのインストールでエラー)

  


手順

1.SDL(および関連ライブラリ)のインストール

Homebrew を使用

# Homebrewのアップデート、確認
$ brew update
$ brew upgrade
$ brew doctor

# SDL関連のインストール
$ brew install sdl
$ brew install sdl_image
$ brew install sdl_mixer
$ brew install sdl_ttf

必要なら、その他 SDL関連ライブラリもインストール
(sdl_gfx、sdl_rtf、sdl_sound など)

  

2.SGE(SDL Graphics Extension)のインストール

(2013.11.18 追記;
 Ruby/SDL 2.1.3 から SGE が含まれるようになったので、SGE のインストールは省略できるかも

= SGEをインストールせずに使う
Ruby/SDLが内部で SGE を持っています。
gem install rubysdl -- --enable-bundled-sge
 〜(中略)〜
ただし、この仕組みはできれば使わないでください。
SGEが別にインストール可能ならそちらを使ってください。
            〜 「Ruby/SDL README.ja」より)

  
    
これは、HomebrewにFormulaがない
  
(参考)

(2014.5.28 追記;
 こちらにも SGEのインストール法が載っていました。こちらの方が情報が新しいかも

 
mitmulさんの方が新しかったので、こちらを使用してインストール

# SGEのインストール
$ brew install https://gist.github.com/mitmul/5410467/raw/c4fa716635e951b61f489726976b10f00dd41306/sge.rb

  

3.Ruby/SDLのインストール

# RubyGemsのアップデート
$ gem update --system

# Ruby/SDLのインストール
$ gem install rubysdl

  

4.rsdlのインストール

MacでRuby/SDLを起動するのに必要
※ Macでは、Ruby/SDLの実行は $ ruby foo.rb の代わりに、$ rsdl foo.rb とする
    

# rsdlのインストール
$ gem install rsdl

(注; 2.0.0-p195 ではインストールでエラーになる)
  

5.ここまでの動作確認

# すべて trueならば OK
$ ruby -r sdl -e 'p [:mixer, SDL.constants.include?(:Mixer)]'
$ ruby -r sdl -e 'p [:ttf, SDL.constants.include?(:TTF)]'
$ ruby -r sdl -e 'p [:sge, SDL.respond_to?(:autoLock)]'

# 灰色のウィンドウが 1秒間表れて閉じれば OK
$ rsdl -r sdl -e 'SDL.init(SDL::INIT_EVERYTHING); SDL.set_video_mode(640, 480, 16, SDL::SWSURFACE); sleep(1)'

  

6.MyGameのインストール

MyGameホームページから、最新版mygame-0.9.1.tar.gzをダウンロード、展開

・修正

Use RbConfig instead of obsolete and deprecated Config.
というエラーを回避するために、
ConfigをすべてRbConfigに修正する

install_mygame.rb
# 修正
17: dlldir    ||= RbConfig::CONFIG["bindir"]
18: sitelibdir  =  RbConfig::CONFIG["sitelibdir"]
19: sitearchdir = RbConfig::CONFIG["sitearchdir"]
20: datadir     = RbConfig::CONFIG["datadir"]   
/lib/mygame.rb
# 修正
311: datadir = RbConfig::CONFIG["datadir"] 

  
・ MyGameのインストール

# 展開したディレクトリ barに移動
$ cd bar

# MyGameのインストール
$ ruby install_mygame.rb

  

7.MyGameの動作確認

# 真っ黒なウィンドウが表れれば OK
$ rsdl -r mygame/boot -e ""

  

8.いろいろなサンプルプログラムで動作確認

(注意)

  • Macでは、Ruby/SDLを使ったプログラムの実行は $ ruby foo.rb の代わりに、$ rsdl foo.rb とする

  • Ruby 1.9.2からrequireがカレントディレクトリをロードしなくなったため、それ以前のプログラムはrequireでエラーが出ることがある
    そのときは、require 'bar'require_relative 'bar' と書き換えれば動くことが多い

(2014.5.28 追記;
 あるいは、Ruby の起動時にコマンドラインオプション -I directory名 を使ってファイルをロードするパスを追加する。カレントディレクトリを追加するには .(ドット)を追加すればよい。
$ rsdl -I. baz.rb
で実行。
→ ・Star Rubyのインストール - ザリガニが見ていた...。

  

サンプルプログラム

- Ruby/SDLが必要(MyGameは不要)

 
- MyGameが必要

   
  
(→・元記事

18
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
18