MiyakoのWindows用ランチャーを作ってみた
以前から、Miyakoに限らず、Rubyでゲームを作るときの配布にかなり苦労することになります(特にWindowsで)。
たくさんのファイル(ライブラリとか)を一気に送らないといけないし、「このファイルを指定してruby.exeを起動」とか指示しないといけない。
また、Exerbなど、複数のRubyスクリプトやRuby本体を一つのファイルに納めるなどのアプローチもありますが、Ruby1.9に対応しているものがほとんど無いのが実情。
いろいろ考えていたのですが、まずは、専用のランチャーを作って、インストーラー作成ソフトを使って、そこへのショートカットを作ったら、まずはゲーム開始の煩わしさは解消されるはず(内容の暗号化は別の話)。
そこで、こんなのを作ってみました。
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固有の機能は使っていないはず)ので、LinuxやMacOSXでも、Monoを用意すれば使えるようになるはずです。
これから、しばらく使ってみます。
公開は…ドキュメント書くのでちょっと待ってね。