るびげ - Ruby Game Engine(開発中断)

  • RGSSよろしく、RubyにてWindows用ゲーム制作可能な開発環境を作る計画です。
    最終的には、オープンソースのツクールもどきが出来ればいいなー。
    …と考えてましたが、計画中断。要はエターなった。

概要

  • るびげ - Ruby Game Engine - は、RGSS(Ruby Game Scripting System)のように、
    RubyによるプログラミングでWindows用ゲームを制作しようという試みです。
  • 単純にRubyでゲームを作りたいだけならばRGSSでも良いのですが、
    こちらはRPGツクールXP/VXを購入しなければ使う事が出来ません。
    また、解像度などシステム的な部分は操作できず、若干機能に不満があります。
  • これまで、候補として Ruby/SDLDXライブラリをるびげのベースに使おうとやってきていましたが、
    どちらも個人的にどこかしら一部に不足感、不満感を感じていまして難儀していました。
    そんな折にDXRubyを作者さん自ら紹介して頂きまして、
    構成がシンプルで拡張しやすく、「これはいいな」と思いましたので
    今後はDXRubyをベースにるびげ製作を進めていきたいと思います。
  • 参考までに、これまで試したライブラリの比較。
    • Ruby/SDL

      ○機能豊富
      ○マルチプラットフォーム対応
       →GuruGuruSMFを併用するつもりだったので、マルチプラットフォームを求めていない。
      △リファレンスは充実しているが、それ以外の情報が揃いにくい。
      △独特のライブラリ構成(と私は感じました)になっており、習得を難しく感じる。
      ×加算合成、減算合成非サポート
      ×ライブラリサイズが大きく配付に向かない
       →ランタイムを配付する方式にすれば共通部分はカットできるがランタイム対応が必要になる

    • DXライブラリ

      ○機能豊富
      ○リファレンスが充実しており、質問掲示板がある。また知名度も比較的高いので情報集めしやすい。
      △Windows専用
       →GuruGuruSMFを併用するつもりだったので、マルチプラットフォームを求めていない。
      ×Ruby用のライブラリでないため、ラッパの作成から必要になる。
       →機能豊富な分、対応の作業量が大きい。
       →DXライブラリ自身は高速でもRubyを通すことで低速化するかもという危惧あり。
      ×ライブラリサイズがやや大きい。

    • DXRuby

      ○必要最小限の機能に絞られている。
       →ライブラリサイズが小さく配付しやすい。
       →習得が容易。
      ○開発環境の導入が楽(ActiveRuby+DXRuby)
       →DXRubyスターターキットというインストール不要な環境もある。
      ○Rubyで動かすことを前提にチューニングされているので高速。
      △Windows専用
       →GuruGuruSMFを併用するつもりだったので、マルチプラットフォームを求めていない。
      ×最近(2009/06/14現在)リリースされたばかりなので、知名度が低くノウハウが蓄積されていない。
       →るびげ製作、DXRuby製ゲームの公開で知名度アップに貢献する……?

予定していたこと

  • るびげベース作成
    • DXRubyをよりゲーム製作しやすいようにモジュール、クラスを用意する。
      今の所で(できるかどうかは別として)必要なのかなと考えるのは以下のようなもの。
      • コンフィグプログラム(画面モード設定やキー配置など設定)
      • スプライト管理機能
        →キャラクタスプライト
        →アニメーションスプライト
      • ウィンドウスプライト機能
        →RPGツクールシリーズよろしく、スキン画像でゲーム中のウィンドウを作れるように。
      • トランジション機能
      • シーン管理機能
      • セーブ/ロード機能
  • るびげサンプル作成
    • るびげを使って、簡単なミニゲームレベルのものを幾つか作ろうと思います。
      どのゲームも、本当に基本の部分は定型化されていたりしますので、
      その部分のコーディングを簡略化できないかの検討なども同時にやっておこうかと。
      ↑の、るびげベースの修正、拡張も必要であれば行っておきます。
  • GUI開発環境作成
    • マップエディットやデータ項目設定などが可能なGUIの開発環境を用意します。
      ソースレベルでの開発は、ミニゲーム程度なら良いのですが、
      ある程度の規模以上を作ろうとすると非常に効率が悪いです。
      そのあたりをフォローし、かつGUIにする事による制約もなるべく抑えた形での実現を目指します。
      イメージとしてはRPGツクールXP/VXのように、基本はエディタでの編集、 凝った部分はスクリプト編集で、というような。

副産物など

INIFile.rb

  • 副産物その1。INIファイルを読み書きするスクリプトです。
    require して使ってください。

GuruGuruSMF.rb

  • 副産物その2。RubyでGuruGuruSMF を使用できるようにするスクリプトです。
    require して使ってください。
  • ←GuruGuruSMF ver4用

QPC.rb

  • 副産物その3。高精度タイマーのモジュールです。
    require して使ってください。

DXRConfig

  • DXRubyで画面モードやキー配置設定を行えるようにするプログラム一式です。
    デフォルトではQVGA(320x240)用ですが、VGA(640x480)用にも対応可能です。