サイログ。

~雑多な記事置き場~

Rubyゲーム用ランチャを開発することにした

さて、Rubyでゲーム開発するときには、配布が大きな問題になるわけですが、その問題を吸収できるようにしたかった(あと、コミケなどの同人ソフト頒布や商用ソフト販売も視野に含めて)ので、専用のランチャを作ることにしました。

名前は、「Miyako Launcher」としておきます。本当は、Miyakoだけじゃなくて、StarRubyとかRuby/SDLとかdxrubyとかでも扱えるように考えていますが。

要は、ゲームプログラムを次の2種類に分けて考えて、それらの管理や起動支援するのが本ランチャというわけです。

  • ランタイム(Ruby実行環境と必要なライブラリ(Ruby/SDL,Miyako,StarRuby,DXRubyなど)を組み合わせたもの)
  • ゲーム本体

機能としては、

  • ランタイムの管理
    • ランタイムのインストール
    • ランタイムの削除(依存関係表示は…ちょっと待ってね)
    • インストール済みランタイムの表示
    • バージョン単位に分けたランタイムリスト(ライブラリのバージョンではないことに注意)
  • ゲームの管理
    • ゲームの起動(別プロセスとして起動)
    • ゲーム詳細の表示(説明・画面キャプチャ・ロゴ表示など)
    • ゲーム起動時に立ち上げるランタイムの選択
    • ゲームのインストール
    • ゲームの削除

これらを上手に管理することで、配布や起動を楽にしたいなと。あと、C#2.0を使って、開発をラクしたいなと(笑)。というよりも、ランチャという性格上、完全なマルチプラットフォームのプログラムは作りにくいと思ったので、monoとかが使える.NET系言語を使うようにしました(え、Javaで作れって? 作業ディレクトリを指定したプロセス起動の仕方がすぐに分からなかったもんで…)。

ランタイム・ゲーム本体のインストールは、ディレクトリもしくはzipファイルを指定して行います。そのとき、特別な情報を記述したJSONファイルを用意しておきます(このファイルが無いとインストール・管理できません)。

で、このために導入するソフト・ライブラリは以下の通り。

EXEpressはランチャのインストール用、Json.NETは設定ファイルのやりとり、DotNetZipはランタイム・ゲーム本体のインストールに使います。

Json.NETとDotNetZipは、たぶん「ソフトの著作権表示を忘れないでね」で済む…よね?

というわけで、これから少しずつ作っていきます。