といっても今回は、開発環境をインストールするまでしかやってない。
C#のウィンドウプログラミング自体は、Visual Studio 2013 Express で十分開発が可能だ。
しかし、ここにDirectXを使った3DCGを表示するにはどうすればいいの?と。
さらにC#のウィンドウは、イベントスレッドによるイベントドリブンの設計で作られている。
そのため、いろいろ調べてみたけれども、安定したフレームレートでゲームループをまわすゲームプログラミングには向いてないように思う。
そこで、XNAというC#でゲームを作るためのフレームワークを試してみることにした。
まずは、XNAのSDKをダウンロード。現在では4.0までが利用可能のようだ。
インストーラをたたいてみるも、あっさりインストール失敗、わはは。
インストールにはWindows Phone Developer ToolsとVisual Studio 2010、またはVisual C# 2010を入れろと。
ここから、しばらくWindows7用の上記ソフトウェアにたどり着くまで、検索と格闘する。
なんだか、Windows8.1の開発環境はすぐに見つかるのだけれども、Windows7用のWindows Phone Developer ToolsとVisual Studio 2010になかなかたどり着けない。
とっととWindows7から最新の8.1に乗り換えてくれ、とでも言いたいのではとかんぐってしまうほどだ。
開発環境にはVisual Studio 2013 Expressが入っているのにもかかわらず、納得のいかないまま、Visual C#を入れてみることにした。
結局、これしか見つけられなかったのだ。
無事インストール終了後にXNA Game Studio 4.0のインストーラをたたくと、こちらも無事にインストールされました。
わっかりにく!
さて、この開発環境なんだけれども、ゲーム用のプロジェクトテンプレートが用意されている。
それを使ってVC#プロジェクトを作るとゲームループが実装済みのウィンドウスケルトンが用意された状態で開発を始めることになる。
つまり、初期化処理、更新処理、レンダリングのメソッドが用意されていて、それぞれの箇所に必要な処理を記述すればよい、と。
肝心の3DCGの描画については、Javaでシェーダを扱うやり方に非常によくにている。
用意されたメソッドを呼ぶだけのBasicEffectと、直接シェーダ言語を扱うEffectというAPIが用意されているというわけだ。
冒頭の画像は、BasicEffectの方を使用して三角形のポリゴンを描いてみたものだ。
ああ、この道はいつか来た道…
ほんと、JavaのGLSLを使うのとほとんど同じ作業。