サイログ。

~雑多な記事置き場~

MiyakoのWindows用ランチャーを作ってみた

以前から、Miyakoに限らず、Rubyでゲームを作るときの配布にかなり苦労することになります(特にWindowsで)。
たくさんのファイル(ライブラリとか)を一気に送らないといけないし、「このファイルを指定してruby.exeを起動」とか指示しないといけない。

また、Exerbなど、複数のRubyスクリプトRuby本体を一つのファイルに納めるなどのアプローチもありますが、Ruby1.9に対応しているものがほとんど無いのが実情。

いろいろ考えていたのですが、まずは、専用のランチャーを作って、インストーラー作成ソフトを使って、そこへのショートカットを作ったら、まずはゲーム開始の煩わしさは解消されるはず(内容の暗号化は別の話)。

そこで、こんなのを作ってみました。


(タイトルバーの名前間違えてる…OTL)

Miyakoに対応したランチャーソフト「MiyakoLauncherLite」です。たった一つのexeファイルです。このソフトは、スクリプトファイルを指定すれば、ファイルが置かれたディレクトリのbin\ruby.exeを起動します。

このファイルをRubyのインストールディレクトリ(たとえば、c:\Program Files\ruby直下、すぐ下にbinディレクトリがある場所)に置いて、そこへのショートカットを作っておけば、コマンドプロンプトを開くことなく、自動的にRubyのプログラムが始まります。

起動方法は以下の4種類です。

- 「ここにRubyスクリプトをドラッグしてください」の場所に.rbファイルをドラッグする
- プログラム本体かショートカットに.rbファイルをドラッグする
- 起動履歴から、指定のファイルパスを選んで「再実行」ボタンを押す
- exeファイルと同じディレクトリにmain.rbがあれば、自動的に、main.rbを読み込んで実行(Ruby/SDLスターターキットの起動方法に似ている)

これだけあれば、たいていのことはできると思います。

ほかの特徴は…

- main.rbを読み込むときは、ruby.exe立ち上げだけでランチャーを終了(本当に立ち上げだけ)
- 標準出力・標準エラー出力、終了コードの表示(プロセス監視)
- 投げっぱなしモード(起動したら監視はしないのでスピードアップにはなるが、標準出力・標準エラー出力が確認できない)
- ruby起動時にウインドウ最小化を設定可能
- 実行中のrubyプログラムを強制終了(ただし、ランチャーが監視しているもののみ)
- 設定・履歴の自動保存/読み込み
- (ぼそっ)実は、Miyakoじゃなくても起動できる。DXRubyやStarRubyでも使える(Miyako自体の存在チェックはしていない)

ただし、このプログラムは以下の制限があります。

- 同時に監視できるプログラムは1つのみ
- rubyインストールディレクトリ(binディレクトリの真上)に置かないと起動すらできない
- .NETFramework 2.0が必要(Vistaや7では大丈夫かな?)

制限にもありますが、.NET2.0(つまり、C#2.0)で作っています(本当にWindows固有の機能は使っていないはず)ので、LinuxMacOSXでも、Monoを用意すれば使えるようになるはずです。

これから、しばらく使ってみます。

公開は…ドキュメント書くのでちょっと待ってね。