LoginSignup
8
1

More than 5 years have 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ボード)のハマりどころについて書かれるそうです。

8
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
1