SDL.NET なゲーム 「MIZU GAME」を Linux 上で mono 使って動かしてみる
「MIZU GAME」は id:fslasht さんが SDL.NET で作られたパズルゲームです。
SDL が動いて .Net Framework が動けば動くはずなんで Linux + mono でも動くはず。ということで試してみました。ちょっと前に試したSPS2 *1 も動いたしきっと動くよね…
事前に mono や SDL 一族*2をインストールしておきましょう。
とりあえず実行してみます。
% unzip MizuGame_latest.zip % mono MizuGame.exe Unhandled Exception: SdlDotNet.Core.SdlException: Couldn't open font\mplus-2p-black.ttf at SdlDotNet.Graphics.Font..ctor (System.String fileName, Int32 pointSize) [0x00000] at MizuGame.Game.Init () [0x00000] at MizuGame.Program.Go () [0x00000] at MizuGame.Program.Main (System.String[] args) [0x00000]
うーん、おしい! ってかファイルのディレクトリ区切り文字が '\' 決め打ちですか… そこは System.IO.Path.DirectorySeparatorChar を使うか '/' の方を使ってほしかったところですが… でも元が Windows 用だししかたがないところですかね…
まぁ "font\mplus-2p-black.ttf" というファイルがないなら "font\mplus-2p-black.ttf" というファイルを作ってしまえばいいじゃない! ということでサブディレクトリ内にあるリソースにシンボリックリンクをはる ruby でスクリプトをでっちあげてみる。
#! /usr/bin/env ruby Dir::glob("*/*").each(){ |file| link = file.gsub('/', '\\') puts "#{file} => #{link}" File::symlink(file, link) unless File::exist?(link) }
というファイルを mklinks.rb とかに保存して実行します。
% ruby mklinks.rb
シンボリックリンク群ができたら再度 Mizu Game を実行。
% mono MizuGame.exe