ゲーム開発者の中には、近年「Unity」やオープンソースソフトウエア(以下、OSS)の「Cocos2d-x」といった、クロスプラットフォーム対応のゲームエンジンを使った開発を行っているという人も多いのではないだろうか。「CEDEC 2015」では、これらのエンジンで開発したゲームをWindows 10に対応させ、さらに「Visual Studio」を使って開発を効率的に行うノウハウに関するセッションも行われた。「Unity、Cocos2d-xで始めよう、Windows 10向けゲーム開発」と題された、このセッションを行ったのは、日本マイクロソフト デベロッパーエバンジェリズム統括本部ISVテクニカルエバンジェリズム部長の大西彰氏だ。
Cocos2d-xは、オープンソースで開発されているクロスプラットフォーム対応のゲームエンジンである。シンプルなAPI群によって構成され、動作も速いといった特徴があるという。また近年、2Dだけではなく3D機能の拡張も進んでおり、さまざまなタイプのゲームが、Cocos2d-x上で開発されている。
大西氏によれば「Cocos2d-xのWindows 10対応はすでに完了している」という。その背景として同氏は「ANGLE」と呼ばれるOSSプロジェクトについて説明した。
「ANGLE」は「Almost Native Graphics Layer Engine」の頭文字を取った略称であり、プロジェクトのゴールは、OpenGLの組み込み環境向け実装である「OpenGL ES」のAPIコールをDirectX APIのコールに自動的に変換する環境を作ることである。これにより、Windows上でOpenGL ESアプリのシームレスな実行が可能になる。マイクロソフトは、2013年にANGLEプロジェクトへ参画。品質やパフォーマンスの改善を図るため、プロジェクトへのコード提供などを行ってきたという。
このANGLEプロジェクトの成果により、OpenGL ESを利用するCocos2d-xで作られたゲームアプリが「Windows 10でも問題なく動作する」というのが、大西氏の発言の意図である。
「Cocos2d-xでコーディングされたアプリは、ANGLEの環境を使い最終的にDirectXでレンダリングできるようにしておけば、そのままWindowsの環境でも動作する。さらにUWPアプリとして作れば、PCだけではなくWindows Phoneでも問題なく動作する。開発者側でデバイスの違いを意識する必要はない。すでに多くのゲームアプリがANGLEを利用してWindowsへの対応を果たしている。ぜひ活用してほしい」(大西氏)
大西氏は続いて、近年ユーザーが増えている「Unity」によるゲーム開発において、コーディングやデバッグを「Visual Studio」によって効率化する「Visual Studio Tools for Unity」(以下、VSTU)の紹介を行った。セッションでは、実際に「Unity 5.2」と「Visual Studio Community 2015」の組み合わせによるライブコーディングを行いつつ、機能の紹介が行われた。
VSTUは、Visual StudioとUnityを連携させ、C#によるUnityのコーディング作業やデバッグ作業を効率化するための拡張機能である。かつてはサードパーティが開発していた製品だったが、その開発元をマイクロソフトが買収。現在は、公式の拡張機能としてマイクロソフト内部で開発と提供が行われている。その成果もあってか「最新版は、以前のバージョンと比較して、安定性などが大幅に改善されている」(大西氏)という。
デモでは、Unityでデバッグプレーを行いながら、設定したブレークポイントでVisual Studioのエディター画面を呼び出す動作がデモされた。デバッグプレーのステップ実行や、ブレークポイントの発動を任意の条件式によって制御することなども可能になっている。また、MonoBehaviourに関するひな型の呼び出しや、コード補完機能、Visual Studio内で参照できるMonoBehaviourリファレンスなどについても紹介された。
VSTUの詳細については、記事「ディープだが覚えておきたいUnityゲーム開発の小テク16選まとめ」を参照してほしい。
大西氏は、UnityからWindows 10をターゲットとしたアプリを出力する場合の注意点をいくつか示した。前述のように、Windows 10では従来の「Internet Explorer 」(以下、IE)に加え、新たな標準ブラウザーとして「Edge」が追加されている。「Unity Web Player」を利用して動作するアプリの場合には、プラグインに対応したIEの環境を利用する形になる。Edgeを使う場合には「Unity WebGL」での出力が必要だ。大西氏は、WebGLの出力結果をIISへホストする際に追加設定が必要になることを説明すると同時に、Microsoft Azure(以下、Azure)でのホスト方法についても説明した。
「WebGLの出力結果をAzure上にホストする場合、Visual StudioからASP.NET Webアプリとしてゲームを作成し、PaaSである『Azure Web Apps』にファイルをコピーすれば、特別な設定を行わずに利用が可能になる。応用編として覚えておいてほしい」(大西氏)
また、作成したアプリのWindowsストアを使った配信においては「Windows Bridge for Web Apps」を活用できる点にも言及した。すでに提供されているWindows Bridge for Web Appsを利用すると、Webアプリとして出力したUnityのゲームをUWPアプリとしてパッケージングできる。また、Unity WebGLからはJavaScriptを経由して、Windows Runtimeにアクセスすることも可能なため、ライブタイルなどのWindows独自の機能をUnity側から利用することも可能だという。
「Cocos2d-xやUnityといった、使い慣れたゲームエンジンで作ったゲームをWindows 10に対応させることは、考えているよりも簡単に行えることが分かっていただけたと思う。将来的には、HoloLensのような新たなデバイスで動くアプリの開発にも、これらが活用できるようになる。
また、Windowsというプラットフォームにおけるゲームユーザーも増加の傾向にあり、今後、その比率はさらに高まっていくと予想される。すでに持っている、またはこれから開発するゲームコンテンツのWindows 10対応を進めてほしい」(大西氏)
Copyright © ITmedia, Inc. All Rights Reserved.