Rubyでゲーム作りたいなどとホザいておきながら何もしてなかったので……
SDLをRubyで使える素敵拡張Ruby/SDLをUbuntuへ導入してみたいと思います。
によれば、
SDLとは、そのドキュメントによると、 「マルチプラットフォームなマルチメディアライブラリ」であり、 Rubyとは、まつもと氏によるオブジェクト指向スクリプト言語です。 そして、Ruby/SDLはRubyからSDLを利用できるようにするための ライブラリです。つまりはRubyでゲームなどを作るためのライブラリと 言えます。
まぁ、いつもの通りgemですよねっと……
gem install rubysdl Fetching: rubysdl-2.1.2.gem (100%) Building native extensions. This could take a while... ERROR: Error installing rubysdl: ERROR: Failed to build gem native extension. /usr/bin/ruby1.9.1 extconf.rb
……え? だ、駄目?
こうなったら元ソースからやるしかありません。
Rubyist Magazine - Ruby/SDLで始めるゲームプログラミング【前編】に従い、インストールしなおします。
まずはUbuntu – Errorを参考に、githubからソースコードを取得
git clone git://git.debian.org/pkg-ruby-extras/ruby-sdl.git
ファイル内のREADME.jaを開きます。すると……
3 必要なライブラリ
このライブラリは、rubyの処理系の他、以下のライブラリを必要とします。
SDL_mixer,SDL_ttf,SDL_image,SGE,smpeg,SDLSKKはなくてもかまいません。
らしいので……
How do I install SDL?を参考に
sudo apt-get install libsdl1.2-dev libsdl1.2debian
として、最新版のSDLを入手します。
(2012年8月2日現在、SDLのバージョンは1.2.15が最新版です)
apt-getを使えば頭のいいOSが勝手に登録等々をしてくれるので、
先ほどcloneしたフォルダに移動し、exconf.rbを実行
# ruby extconf.rb
checking for SMPEG_new() in -lsmpeg... no
checking for Mix_OpenAudio() in -lSDL_mixer... no
checking for sge_Line() in -lSGE... no
checking for IMG_Load() in -lSDL_image... no
checking for TTF_Init() in -lSDL_ttf... no
checking for TTF_OpenFontIndex()... no
checking for TTF_FontFaces()... no
checking for TTF_FontFaceIsFixedWidth()... no
checking for TTF_FontFaceFamilyName()... no
checking for TTF_FontFaceStyleName()... no
checking for Mix_LoadMUS_RW()... no
checking for rb_thread_blocking_region()... yes
checking for rb_enc_str_new()... yes
checking for rb_str_export_to_enc()... yes
checking for SDLSKK_Context_new() in -lSDLSKK... no
checking for glVertex3d() in -lGL... yes
creating Makefile
そして、make & make install
# make <<略>> # make install /usr/bin/install -c -m 0755 sdl_ext.so /usr/local/lib/site_ruby/1.9.1/i686-linux /usr/bin/install -c -m 644 ./lib/sdl.rb /usr/local/lib/site_ruby/1.9.1 /usr/bin/install -c -m 644 ./lib/rubysdl_aliases.rb /usr/local/lib/site_ruby/1.9.1 /usr/bin/install -c -m 644 ./lib/rubysdl_compatible_ver1.rb /usr/local/lib/site_ruby/1.9.1
では、使えるか早速確認しましょう。
さきほどのフォルダにはサンプルフォルダがあるので、実行して確認します。
#cd sample #ruby testsprite.rb
こんな画面が出れば成功です。(実際にはルビーの画像がチョコマカと動いてます)
これで基本的な事はできるようになりました。
しかしながら……
SDL_mixer(オプション) http://www.libsdl.org/projects/SDL_mixer/index.html SDL_ttf(オプション) http://www.libsdl.org/projects/SDL_ttf/index.html SDL_image(オプション) http://www.libsdl.org/projects/SDL_image/index.html SGE(オプション) http://www.etek.chalmers.se/~e8cal1/sge/ SMPEG(オプション) http://www.icculus.org/smpeg/ SDLSKK(オプション) http://www.kmc.gr.jp/~ohai/sdlskk.html
といったものを入れていないため、いくつかのサンプルが動きません。
次の記事で、これらについて対応します。
※備忘録 Macでやる場合はrdslが必要らしいです。