Jewel-mmo開発日記

RubyでMMORPGを作る過程を記録する日記。 Yokohama.rb 発起人。
2012-03-23

UnityでCoffeeScriptを使うのは諦めた

CoffeeScriptで生成したJSをUnityで動かそうと頑張ってみたのだけど挫折。

例えば、UnityではこんなのがNG。

var a, b;

以下のように書き直さないといけない。

var a;
var b;

これはほんの一例。

で、次に考えたのはNodo.jsとUnityの両方で動くように気をつけながらJavaScriptを書くということ。

でもこれさえも断念。UnityのJavaScriptはふつうのJavaScriptじゃなさすぎる。 (JavaScriptの定義を調べてないので正しくないかどうかはわからない。)

というわけでC#を試してみた。 C#は今まで1行も書いたことがなかったので、まずはMac上でC#を動かすべくMonoをインストール。(今回入れたのはMonoFramework-MRE-2.10.8_3.macos10.xamarin.x86.dmg)

普通にインストールするだけでターミナルからC#が使える!

ただ上記dmgをインストールするだけで、以下のようにしてコンパイルと実行ができちゃう。

mcs hello.cs
mono hello.exe

さっそくFizzBuzzのコードを探してきて、それをMac上とUnity上とで動かしてみる。 動くっ!動くぞっ!

というか、そもそもUnityのC#はMonoを利用しているそうで、少なくとも言語部分については安心して使えそうだ。

なんでMac上でも動かしたいかというと、可能な部分だけでもMac上でテストしたいから。 ゲームの開発環境は、特殊なハードと特殊なライブラリを特殊な開発環境で使うことになるのだけど(例えばUnity)、これがプログラミング環境として使いやすいとは限らない。特にコードを書き換えてから実行結果を確認するまでの時間的なサイクルが遅くなってしまうのがいやで、部分的だったとしてもコンソールからビルドして実行したくなってしまう。極力マウスも使いたくない。

グラフィカルなキャラクターの動きなどは実機で動かしながらでないと作り込めないし、作るのにある程度時間がかかってしまうのはしょうがない。でもどんなゲームもビジュアルと関係ないロジックの実装は存在するので、この部分の開発に関してはターミナルの中で完結してテストできるようにしておくことで開発速度が飛躍的に向上するのだ。