Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

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が必要

   
  
(→・元記事

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away