読者です 読者をやめる 読者になる 読者になる

酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

「Windows Bridge for iOS」でGame Technologyを使ったiOSゲームプロジェクトを変換できるのか試してみる

iPhone Windows

Windows Bridge for iOSは、Objective-Cで書かれたiOSアプリをWindowsアプリに変換するソリューションです。詳しくはこちらの記事を御覧ください。

結論を先に書くと、Game TechnologyにSceneKitを使ったGameプロジェクトはSceneKit自体が未サポートで変換できません。

OpenGL ESを使ったGameプロジェクトだと変換できますが綺麗に表示されません。

正直なところGameプロジェクトに関してはほとんど知らない(Xcodeで初めてプロジェクトを作成したレベル)なので、簡単に紹介していきます。

SceneKitを使ったGameプロジェクトを変換する

まずはXcodeを起動してプロジェクトを新規作成します。

f:id:ch3cooh393:20160720234827p:plain

Game TechnologyはXcode 7.3.1では4つあります。

  • SceneKit
  • SpriteKit
  • OpenGL ES
  • Metal

本記事では「SceneKit」と「OpenGL ES」を使ったゲームプロジェクトが動くか試してみました。まずはSceneKitを選択します。

f:id:ch3cooh393:20160720235302p:plain

iPhoneシミュレータで実行します。

f:id:ch3cooh393:20160720231756g:plain

Windows Bridge for iOS SDKを使った変換自体には成功するのですが、Visual Studioを起動させてビルドする際にコンパイルエラーが発生します。

1>C:\works\gametest\gametest/GameViewController.h(10,9): fatal error : ‘SceneKit/SceneKit.h’ file not found

残念ながらSceneKitにはまだ未対応だったようです。

OpenGL ESを使ったGameプロジェクトを変換する

さて次はOpenGL ESを使ったGameプロジェクトを変換してみたいと思います。適当に作成したプロジェクトをまずはiPhoneシミュレータで実行してみました。

f:id:ch3cooh393:20160720234822p:plain

Windows Bridge for iOS SDKを使って変換してみました。SceneKitと違いOpenGL ESの方は問題なく実行できているようです。ただ問題があり、画面に対して表示されるオブジェクトがものすごく小さいです。

f:id:ch3cooh393:20160720235759g:plain

この辺りは、本職の方なら対応が簡単にできるのでしょうか。

Windows Bridge for iOS SDKで対応している3D技術

先日紹介したWOCCatalogではカタログという名前の通り、Windows Bridge for iOS SDKで対応しているUIコントロールやAPIがピックアップされています。

iOSで標準的に使用されているViewが、Windowsではどのように表示されるのかを調べるにはとても便利なサンプルプロジェクトです。

そのWOCCatalogに掲載されていた3D技術を紹介します。

OpenGL ES 1.1

f:id:ch3cooh393:20160720232745g:plain

GLKit

f:id:ch3cooh393:20160720232923g:plain

そもそも3DゲームでマルチプラットフォームというとUnityを使っているようなイメージです。

これらの技術でiOS向けのゲームを作られている方は一度Windowsゲームに変換できるか挑戦してみてください。それでは!

関連記事

このエントリでは、Windows Bridge for iOS (旧名: WinObjC)についてを紹介させていただきました。Windows Bridge for iOSは、Windows 10で使用できるようにブリッジさせて、Objective-CのコードやiOS APIを使ったコードを再利用するためのプロジェクトです。

この他にもWindows Bridge for iOSのネタを紹介しております。Tipsをまとめておりますのでこちらのページをご参照ください。