2009年1月30日金曜日

C#で書かれたiPhoneゲームが既に40本以上!

@ITの記事より。C#で書かれたiPhoneゲームが既に40本以上存在するとか。もちろん、Jailbreak環境向けではなく、アップルの審査を通過した正規のアプリで、ちゃんとApp Storeで販売されているそうです。

画像はC#で書かれたゲームの例「Raptor Coptericon

これには正直驚きました。本来、iPhone向けのネイティブアプリは、Objective-Cでなければ開発できないはずなのに。特に、C#のように、実行時に独自のランタイム(.NET Framework)を必要とする言語では、よしんば、アプリを開発できたとしても、アップルの審査を通らないはずなんですが。
# 任意のコードを実行可能なランタイムは、セキュリティ上の理由から配布が禁止されています。
# PhoneGapBig Fiveのように、JavaScriptによる開発を可能としたフレームワークもありますが、あれらはiPhoneに標準搭載のJavaScriptエンジンを利用しています。


これらのゲームは全て、デンマークのUnity Technologies社製の「Unity」という3Dグラフィックスフレームワークを使用して開発されているそうです。

Unityはオープンソース版の.NET Framework実装であるMonoをベースにしています。ただし、そのままでは、iPhone SDKの規約(独自ランタイム配布の禁止)に抵触するので、実行時にランタイムを必要としなくてすむよう、手が加えられているようです。

本来、.NETでは、実行時に動的に、プログラムをネイティブコードに変換し、ライブラリとリンクして実行する、という手法を使うのですが、Unityでは、事前にプログラムを全てネイティブコードに変換し、かつ、必要なライブラリを静的にリンクしたバイナリを作成してしまう、という手法で、iPhone SDKの規約の問題を回避しているようです。

なるほど、その手があったか! なかなかにうまいやり方です。リンクするライブラリも必要最小限のもので済むので、ダウンロードサイズも小さくなるし、一石二鳥とはこのことですね。

ゲームやエンターテイメント系に限られるとはいえ、C#での開発が可能、というのは、特にWindows系のデベロッパーにはありがたい話ではないでしょうか。また、Unityは、C#の他に、JavaScriptとBoo(Python系の言語)での開発も可能だそうです。

「iPhoneゲームの開発に参入してみたいけど、Objective-Cがなぁ」と思っていたそこのあなた、UnityでiPhoneゲーム市場に参入してみては?(笑)
# ちなみに、Unityは有償です。iPhone向けセットは、$598~。
# Unityを使えば、C#で開発可能ですが、Windowsで開発できるようになるわけではありません。念のため。

関連する記事

0 コメント:

BlogPeople People