Ruby/SDLでゲームフレームワークを作成
先日、Ruby/SDLで軽く動作確認をしたので、Rubyの言語勉強がてらに2Dゲームフレームワークを作ってみました。
ファミリーベーシックのキャラクタを目でトレースw
フレームワーク自体は汎用的ですが「簡単なものを…」と思い、シューティングにしました。
実装した内容は、いつものノリで、
【設計/実装】
01.Ruby/SDL(SGEも使用)にて作成。
02.クラス設計はそこそこ高度に。
03.タスク管理を設計。
04.ステージ制御を設計。
05.擬似スプライトの概念を設計。
06.擬似BGの概念を設定。
07.擬似テキストスクリーンの概念を設定。
08.フレームレート制御も行う。
09.真面目にダブルバッファ方式を採用。
10.エフェクトはフェードイン・アウトのみ。
というアーキテクチャです。
今回はソースを公開するか悩みましたが、私はRubyの素人なので、公開するにはちょっとレベルが低すぎるな…という感じなので、やめました。
SDLを使ってみて思ったのは、
【感想】
01.マルチプラットフォームといえど、インストールが結構大変。(Windowsが一番楽)
02.かなり描画が遅い。
03.アフィン変換にはSGEが必要だが、この処理がSDLの描画よりもかなり遅い。
04.サウンド(特にMIDI)のループ処理時に処理が止まる。(工夫がいりそう?)
特に02, 03が致命的で、ファミコンのハードの擬似実装をしてみたのですが、BGの転送が間に合いません…
また、ダブルバッファ処理で内部処理のスクリーン(224x256)から画面に表示されるスクリーンの倍率(xN)を上げられるようにしたのですが、これもまたネックに…
色々と試してみましたが、やっぱりCやJavaに比べて処理速度はキツイですね…
それでもRubyのプログラミングは楽しく、文字列操作と正規表現以外は結構総ナメして文法を使ってみました。(高速化も検討して、文法もアレコレ使ってみました)
お陰で最近はPS3で遊ぶよりも、こっちにのめり込んでいた感じです。(^^;
そろそろ地球防衛軍やらないとなー。
【2013/09/07 追記】
わで~んさん向けにサンプル動画を作ってみましたw
![]() | ![]() |
フレームワーク自体は汎用的ですが「簡単なものを…」と思い、シューティングにしました。
実装した内容は、いつものノリで、
【設計/実装】
01.Ruby/SDL(SGEも使用)にて作成。
02.クラス設計はそこそこ高度に。
03.タスク管理を設計。
04.ステージ制御を設計。
05.擬似スプライトの概念を設計。
06.擬似BGの概念を設定。
07.擬似テキストスクリーンの概念を設定。
08.フレームレート制御も行う。
09.真面目にダブルバッファ方式を採用。
10.エフェクトはフェードイン・アウトのみ。
というアーキテクチャです。
今回はソースを公開するか悩みましたが、私はRubyの素人なので、公開するにはちょっとレベルが低すぎるな…という感じなので、やめました。
SDLを使ってみて思ったのは、
【感想】
01.マルチプラットフォームといえど、インストールが結構大変。(Windowsが一番楽)
02.かなり描画が遅い。
03.アフィン変換にはSGEが必要だが、この処理がSDLの描画よりもかなり遅い。
04.サウンド(特にMIDI)のループ処理時に処理が止まる。(工夫がいりそう?)
特に02, 03が致命的で、ファミコンのハードの擬似実装をしてみたのですが、BGの転送が間に合いません…
また、ダブルバッファ処理で内部処理のスクリーン(224x256)から画面に表示されるスクリーンの倍率(xN)を上げられるようにしたのですが、これもまたネックに…
色々と試してみましたが、やっぱりCやJavaに比べて処理速度はキツイですね…
それでもRubyのプログラミングは楽しく、文字列操作と正規表現以外は結構総ナメして文法を使ってみました。(高速化も検討して、文法もアレコレ使ってみました)
お陰で最近はPS3で遊ぶよりも、こっちにのめり込んでいた感じです。(^^;
そろそろ地球防衛軍やらないとなー。
【2013/09/07 追記】
わで~んさん向けにサンプル動画を作ってみましたw
| HOME |