Ruby/SDLとその周辺

Ruby/SDLとその周辺
大林一平 (ohai)
原 悠 (yhara)
発表内容
z 自己紹介
z Ruby/SDLとは何か
z Ruby/SDLでできること、できないこと
z 利用例
z Ruby/SDLの周辺
z Ruby/SDLスターターキット
自己紹介
z 大林一平
z 京都大学理学研究科数学数理解析専攻数
学系
z 専門は力学系
z Ruby/SDL, SDLSKK, RRSE,
Ruby Refactoring Browser
京大マイコンクラブ(KMC)
z 京大のコンピュータサークル
z 発表者は両方ともKMC部員
z 歴史は結構長い
z Linux/98
z Anthy/uim
z http://www.kmc.gr.jp/
Ruby/SDLとは何か
z Rubyでゲームをつくるためのライブラリ
z SDL (Simple DirectMedia Layer)のラッパ
z 様々な環境で動作
z Windows,
Linux, FreeBSD, Mac OS X…
z http://www.kmc.gr.jp/~ohai/rubysdl.html
Ruby/SDLの歴史
z 2000年から開発
z 2001年にversion
0.1を公開
z 2005年10月にversion 1.0を公開
z 最新版はversion 1.3.0
そもそもSDLって?
z クロスプラットフォームマルチメディアライブラリ
z
Linux, Windows, BeOS, MacOS (X), *BSD…
z 様々なバックエンド
z
DirectX、GDI、X…
z ゲーム、エミュレータ、動画再生ソフトなど
z 基本はC言語用→様々な言語バインディング
Perl, Python, Ada, Erlang, ML, Scheme, Java,
C#, Ruby, Haskell…
http://www.libsdl.org/
z
z
Ruby/SDLで何ができるのか
z グラフィック
2D高速描画
z BMP、PNG、JPEGなどの読み込み
z OpenGLと組み合わせて3D描画
z 文字列の描画
z
z 音声出力
z キーボード、マウス、ジョイパッド
z リアルタイムなものに強い
Ruby/SDLで何ができないのか
z ×高水準なGUI
z ×音声入力
z ×高度な画像加工やPNGの出力
z SDLの守備範囲外
z 自前で実装すれば可能
Ruby/SDLの特徴
z SDLのAPIに比較的忠実
z 高速なAPIと便利だけど遅いAPI
z 危険な機能は使えないように
z
ThreadやCallBack関連
z それ以外はできるだけ機能を網羅
z 高いPortability
z
1行も変更せずにWinでもLinuxでも動く!
利用例
z ゲームや簡単なデモなどに使われている
z Ruby/SDL Users – 作品リンク
z http://mono.kmc.gr.jp/proj/rubysdl/?Works
周辺のはなし
z OpenGL
z OpenGL
Interface、Riko
z 高レベルAPI
z Miyako
z MyGame
z その他
z sgl、librend
Ruby/SDLの今後
z 半年に1度はバージョンアップ
z SDLの開発に追随
z 内部構造の改良
z 英語のドキュメント
Ruby/SDLスターターキット
原 悠(yhara)
自己紹介
z原
悠 (yhara)
z 滋賀在住
z Ruby歴6年
z るびま記事
z 「Ruby/SDL
で始めるゲームプログラミング」
z Ruby勉強会@関西での発表
「Plagger meets Ruby」
z 「30分でわかる継続の使い方」 (来週)
z
matzがあまり好きではない^^;言語といえば?
○○P
matzがあまり好きではない^^;言語といえば?
PHP
HSP
HSPとは
z ゲームやGUIアプリを簡単に作れる
z 趣味プログラマに広く使われている
z 本が7冊以上
z
(言語としてはともかく)ツールとしてとても優れ
ているからこそ普及した
HSPはなぜ普及したか
(1) インストールが簡単
(2) 作品の配布が容易
(3) 解説サイトがたくさんある
HSPはなぜ普及したか
(1) インストールが簡単
(2) 作品の配布が容易
(3) 解説サイトがたくさんある
Ruby/SDLでもなんとかできないか?
↓
Ruby/SDLスターターキット
(1) インストールが簡単
z ダウンロードして解凍するだけ!
z Rubyのインストールがいらない
z PATHの設定がいらない
z MS-DOSプロンプトがいらない
使い方
z (1)
main.rbを編集
z (2) game.exeをダブルクリック
内部の仕組み
z Exerb
game.exe
ruby.exe
task.rb
start.rb
main.rb
player.rb
items.rb
z
画像
音声
Rubyスクリプトをexeにまとめてくれるツール
内部の仕組み
z 部分Exerb
↓動的にrequireされる
game.exe
ruby.exe
task.rb
start.rb
main.rb
画像
player.rb
items.rb
音声
z main.rbより先をexeの外に出す
z スクリプト部分は自由に書き換え可能に
応用
z VisualuRubyスターターキット
z RMagickスターターキット
z dRubyスターターキット
… etc
z インストールが要らない
→学校のコンピュータ室で使える
→中高生のクラブ活動で使ってもらえる
(2) 作品の配布が簡単
z 必要なファイルをzip圧縮するだけ
z ランタイム一切不要
z 友達のPCにRubyが入ってなくてもOK
(3) 解説サイトがたくさんある
z 公式サイト
充実したリファレンスマニュアル
z 簡単なチュートリアル
z
z サンプルプログラム
z
Ruby/SDLのパッケージに付属(sample/*.rb)
z Rubyist
z
z
Magazine(るびま)記事
18号 Ruby/SDL で始めるゲームプログラミング【前編】
19号 Ruby/SDL で始めるゲームプログラミング【後編】
Ruby/SDL Users (Wiki)
z http://mono.kmc.gr.jp/proj/rubysdl/
Ruby/SDL Users (Wiki)
z http://mono.kmc.gr.jp/proj/rubysdl/
まとめ
z 人間、使い慣れた言語を使い続けるもの
z 例:最初にPerlを学ぶ→Perl使いに
まとめ
z 人間、使い慣れた言語を使い続けるもの
z 例:最初にPerlを学ぶ→Perl使いに
→先手必勝
→中高生重要
→スターターキット重要
→応援してください (^^;
ご清聴ありがとうございました