Posted at

RGSSというものがあった、そんなお話

More than 1 year has passed since last update.

[本記事は、Shinosaka.rb Advent Calendar 2016の12/13分の記事です]

Rubyの記事を書くのは本当に久しぶりなので、緊張しておりますが、よろしくお願いいたします。

今日のテーマは、「RGSS(Ruby Game Scripting System)」なるものです。先日、その終焉を知り、筆を執ることにいたしました。

手前味噌ですが、当方も「るびま」にRubyistが知りたいかもしれないRGSSの世界という記事を書いています。

記事の公開が2005年と、もう10年以上経っているシステムなんですね。


RGSSは元の名前の通り、「Rubyを使ってゲームを作る」というコンセプトで作られたシステムです。

「聞いたこと無いぞ、そんなシステム!?」と思われるかもしれません。というのも、RGSSはアプリケーションソフトの基幹システムだったので、あまり表に出てくる事がありません。

そのアプリの名は「RPGツクール」(参考:ツクールWeb)です。

RPGツクールは、様々なプラットフォーム(PC-8801,PC-9801,Windows,SFC,PS,Gameboy,Nintendo DS他)上で、難しいロジックを考えずにRPGが作れることを目的としたツールアプリです。

内部ロジックをいじるのは元々コンセプトとはずれているので、ちょっとしたフローチャートのようなろ実行構築しかできませんでした。

そんな折に登場したのが、2004年に発売された「RPGツクールXP」でした。

「XP」には、初めてロジックをプログラミングできる「RGSS」が搭載され、速度を気にしなければ(20fps、1秒間に20回しか画面を更新できなかった。通常のゲームでは60fpsが標準)、大抵のロジックが掛けるようになっていました(もちろん、低レベルな部分は無理ですが…)。

大きなポイントは、RGSSが「Rubyプラスアルファ」として存在していることでした。Rubyでゲームプログラムが掛けるようになっているのです。メインループを書き、その中にロジックや描画処理などを挿入して…という、昔ながらのやり方で実装できます。

Wikipediaにも記事がございますので、ご参考にしてくださいませ。

従来とは違い、この1行だけで「キーパッドのBボタンが押下の状態を返す」を実装できるのは大きなことでした。

    @final = Input.trigger?(Input::B)

他にも、画像をファイルから取り込んだり、位置を調整したりすることもできました。他にも、標準で付いているテキスト表示機能を使ってメッセージも制御できました。

とはいえども、いい事ずくめではなく、


  • 遅い(20fpsはちょっと…)

  • Rubyが古い(v1.8ベース)

  • 再配布に実行時モジュールが必要(結構でかい)

といったものがあり、厳しいところもありました。

とはいえ、「RPGツクール」新版(VX,VX Ace)へ映っていくごとにRGSSの性能も変わり、VXでは60fps対応、VX AceではRuby1.9ベースとなり、ますます使いやすくなっていきました。

しかし、盛者必衰かな、2016年に発表された「RPGツクールMV」では、基幹部分がHTML5+Javascriptとなり、RGSSの終焉が現実のものとなりました。

ただ、VX Aceも同時販売されており、RGSSの灯が消えたわけではありません。もしご興味がお有りでしたら、一度触ってみてください。数多のフリーゲームや同人ゲームなどで動いているRubyの存在に感謝しながらプレイしてみることもおすすめします。

ちなみに、RPGツクールVX AceとRPGツクールMVの日本語版がSteamで配布されていますので、時間と資金に自身のある方はお楽しみくださいませ。


14日は、honeniqさんが、GR_CITRUS(mrubyボード)のハマりどころについて書かれるそうです。