Visual Studio 2015でDirectXの開発環境を作る

ここではゲームを開発するための開発環境の構築方法について説明しています。

■はじめに

ゲームなどのアプリを開発するには、一般的にプログラムを入力するためのテキストエディタや、
これを最終的に実行形式にするためのコンパイラやリンカというソフト必要ですが、
ここではマイクロソフトが無償で提供しているVisual Studio 2015というソフトを使います。

VisualStudioというのはエディタやコンパイラなどの機能が1つにまとめられた総合開発環境で、
C言語の他にBasicやC#などの言語での開発がサポートされていたり、
さらに最近のバージョンではAndroidやiOS用のアプリも開発出来るように拡張されています。

なお、昔は言語ごとに開発環境が別々に用意されており、C言語の開発を行う場合はVisualC++(略してVC)、
Basicの場合はVisualBasic(略してVB)といった名称で呼ばれておりましたが、
開発用の画面を全ての言語で共通で使用出来るようになったため、まとめてVisualStudioという名称に統一されました。

またVisualStudioにはエディションがあり、規模の大きな会社が使用するProfessional版やEnterprise版の他に、
研究用やホビー用、教育用として無料で使用可能なExpress版やCommunity版というものがあります。

ちなみにExpress版とは初心者向けのエディションで、最低限その言語のプログラムが行えるというバージョンであり、
機能を拡張したりといったことが出来ない簡易版の開発環境となっています。
例えばC言語の環境で言うと、MFCというマイクロソフトのライブラリが入っていないなどの制限はありますが、
特にこれを使わなくてもWindowsプログラミングは出来るのと、コンパイラの最適化機能などは上位のものと
まったく同じものなので、基本的にこれでも困ることはありません。

対してCommunity版はProfessional版と同等機能を持ったもので、
Express版には含まれていなかったMFCが含まれていたり、アドオンにてAndroidなどの開発が可能となります。
ただし、そのためExpress版と比べてメニューなどが増えており、
初心者だと意味不明なものばかりあるため混乱の元になる可能性があります。

ちなみにExpress版とCommunity版では微妙にライセンスが異なるようで、
Community版では社員数が250人以上だと使ってはならないなどの制限があるようです。
※詳しくはこちらに説明されていました

なお、ここでは特に社員数など気にしてもしょうがないのと、初心者だからといって
Express版を使って初心者のままで居てもらっては困るので、
ここではProfessional版と同じく全機能が使えるCommunity版を使うことを前提とします。

実際にはこのサイトではC言語での開発がメインなのでExpress版で特にも問題は無いと思われますが、
ここではあくまでもCommunity版での環境の構築のみ説明しているため、
どうしてもExpress版がよいという方は自分でインストールしてください。


■VisualStudio2015の動作条件

VisualStudio2015をインストールするにはPCが以下の用件を満たしている必要があります。
ただし、あくまでもインストールが出来るという意味であり、快適に動作するかはまた別です。

・1.6GHz以上のCPU
  VisualStudioは複数プロセスを使って一度にたくさんコンパイル出来るので、
  コア数があればあるほど高速になります
・最低1GBのRAM
  OSが使用するメモリなどを考えると実際には2GB、64bitOSであれば4GBは必須だと思われます
・4GBのハードディスク空き容量
  コンパイル時は大量にファイルを読み書きするため、ソースコードのあるディスクをSSDにするのがおススメです
・DirectX9対応ビデオカード
  アプリ実行用ではなくVisualStudio自体が使っているため
・Windows7 SP1以上
  それ以上のOSでも必ずWindowsUpdateを行って最新の状態にしておくこと

WinXPやVistaはマイクロソフトが既にサポートを打ち切っているためインストールの対象から外れています。
これらのOSで開発を行うには古いVisualStudioが必要となります。

古いVisualStudio(Express版)は以下からDL可能です。
 ・Microsoft Visual Studio 2005 Express Edition
 ・Microsoft Visual Studio 2008 Express Edition with ServicePack 1 Combo DVD
 ・Microsoft Visual Studio Express 2012 for Windows Desktop
 ・Microsoft Visual Studio Express 2013 for Windows Desktop Update 4
  ※リンク切れの可能性あり

■DirectXについて

DirectXとはマイクロソフトが提供しているゲーム向けのライブラリで、
描画、入力、サウンドといったライブラリをまとめたものです。
これを利用することで2Dや3Dの描画、キーボードやジョイスティックの入力、
サウンド再生といったことを高速かつ簡単に行えるようになります。

各ライブラリにはそれぞれ名称があり、描画系はDirect3D、入力系はDirectInput、
サウンド系はDirectSoundと定義されていますが、
勘違いしないように説明すると例えば1つのアプリ内でDirect3Dを使う場合、
必ずDirectInputを使わなければならないといった制限はありません。
このため、例えば通常のウィンドウでDirectSoundだけを使った音楽プレーヤーというような使い方も出来ます。

DirectXにはバージョンがあり現時点の最新版は12となりますが、
実はこれはあくまでもDirect3Dのバージョンであり、
入力系やサウンド系はバージョン8から何も変わっていません。

このため3D以外の機能は古いAPIとなりますが、実際にはWin10などの
新しいOSでもこれらのAPIが動くように設計されているため、
今でもDirectInputやDirectSoundを使ってゲームを作ることは可能です。

またこれが一番重要ですが、Direct3Dに関してはバージョン9から10にかけて
大幅に変更があり、考え方や使い方がまったく異なっています。

Direct3D9までは初心者や中級者向けの実装であり、
単純なゲームや少し凝ったものを作るのに向いていますが、
Direct3D10以降は中級者から上級者以上を対象とした実装になっており、
基本的に3Dを熟知していないと扱いきれないレベルのものです。

さらにDirect3D10以降はWinXPには非対応となっているため、
このサイトではDirect3D9を使った実装方法を説明しています。


ちなみに最近のグラフィックボードはDirect3D10以上に最適化されており、
実はDirect3D9はグラフィックボードのドライバなどがエミュレートしています。
つまり、本来のグラフィックボードの性能を発揮するためにはDirect3D9だとダメなのですが、
新しいグラフィックボードの性能自体がDirect3D9世代のものと比べ、
格段に上がっているおかげで、結果的に古いグラフィックボードより高速に動きます。
このため、新しいOSやハードウェアでもDirect3D9を使っても基本的に問題はありません。

それとサウンドに関して、マイクロソフトはDirectSoundは古い技術のため非推奨にし、
今後はXBoxと共通のXAudio2というAPIを使うように推奨しているようですが、
Direct3D9と同様に新しいOSでも問題なく動作します。
ちなみに新しいOSではDirectSoundを新しいOSにあった新しいサウンドAPIを使ってエミュレートされているようです。
興味があるなら自分でXAudio2を使ったり、低レイテンシのWASAPIなどを使って再生エンジンを作ってみてください。
※WASAPIはこちらに記事を掲載しています


■ランタイムとSDKの違い

ランタイムと言うのはたいていはDLLなどで提供されるライブラリで、
OSにインストールしておくことでゲーム側からそれ呼び出して使うことが出来る仕組みです。

もしDLLにバグがあった場合はこのDLLを更新するだけで修正出来るため、
ゲームプログラムを再度コンパイルし直す必要が無いといった利点があります。

対してSDKと言うのはゲームの開発者が使用するもので、
このランタイムを使うための関数定義などが含まれた開発用ソフトウェアのことです。

そしてDirectXも同じくランタイムとして提供されており、これをOSにインストールしておくことで
ゲーム側からそれを呼び出して実行することが出来ます。
ゲームをただプレイするだけならばSDKは必要なくランタイムさえインストールされていれば問題ありません。
このためユーザーに配布するゲームは必ずランタイムをインストールしておくように説明しておく必要があります。

DirectXを使ったゲームを作るには、開発PCにDirectXのランタイムとSDKが必要です。
なおDirectXにはバージョンがありますが、ランタイムには過去のバージョンのライブラリも同梱されているため、
そのゲームを開発する際に使用するSDKのバージョン以上のランタイムが入っていれば問題なく動作します。

ちなみにDirectX SDKは最近のVisualStudioには一緒に同梱されていますが、
実はヘルパー関数と呼ばれるD3DXライブラリが含まれていません。
このサイトではこのD3DXライブラリを使用しているため、VisualStudio付属のDirectX SDKは使わずに
別途D3DXが含まれた少し古めのDirectX SDKを使用します。
※ここで使用するDirectX9は既に更新はされていないため、古めと言っても最終版となります

■プレイ環境

開発環境とは別に実際にゲームを動かすには対応したハードウェアが必要です。
ただし、VisualStudio2015を開発するためのスペックを満たしているPCであれば、
このサイトで紹介しているゲームは問題なく動作すると思われます。
このため開発しながらテスト実行もそのPC上で行うことが出来るので、
特に追加でハードウェアを購入する必要はありません。

作成したゲームを配布する場合は、作成したゲームのスペックに合わせて
ユーザー側の環境をあわせる必要があります。
例えば描画に必要なDirectX9に対応しているグラフィックカードとしては、
GeForceFX5200以降またはRadeon9500以降でかなり古いハードウェアでも対応しています。
またオンボードで対応しているものは、Intel915G以降やATIがAMDに買収されたあとの
内蔵グラフィック全般となります。
これらはあくまでも動作するというレベルであり、処理落ちせずに動作するかどうかはまた別の話です。

このことからゲームの対応スペックとしてはCore2Duo、Athron 64 X2などの
DualCore対応のCPU、GeForce7600GSやRadeonHD2600Pro以上を推奨します。
また、オンボードグラフィックで動作させる場合は最低でもIntel G35チップ以上が必須です。

ちなみにWin8世代の安いタブレットPCに搭載されているATOMのグラフィック性能は、
既にこの時代のレベルを遥かに超えているため、十分動作対象に含めることが出来ます。
※Atom Z3735Fなど

■Visual Studio Community 2015のインストール

ここではマイクロソフトのサイトからVisual Studio Communityを
ダウンロードしてインストールする手順を紹介します。

インストールには2種類あり、マイクロソフトのサイトから直接インストールする方法と、
DVD用のISOイメージをダウンロードしてからインストールする方法があります。
なお、ここでは複数のPCにインストールして使う場合を考慮し、
後者のISOイメージを使用したインストールを行います。

①ISOのダウンロード
まずは以下にアクセスしてISOをダウンロードします。
https://www.visualstudio.com/downloads/download-visual-studio-vs



②インストール
ダウンロードしたISOをDVDに焼いてドライブに挿入するか、
DAEMON Tools Liteのような仮想CDソフトでディスクとして認識させます。

次にディスク内の「vs_community.exe」をダブルクリックして起動します。


このVisualStudioにはC言語の他にもいろいろな機能がありますが、
ディスク容量やインストール時間を考え、ここではC言語のみをインストールしてみます。
それには以下のようにカスタムインストールを選択して次へを押します。

※C言語以外もインストールするなら標準インストールを選んでください

次の画面ではインストールする機能を選択するので、ここでプログラム言語の中の「Visual C++」を選択してください。


設定が全て済んだらインストールする機能を確認し、問題が無ければインストールを選択してください。


インストール中は進行状態が表示されます。


インストールが完了すると以下の画面が表示されるので、ここで直接VisualStudioを起動するなら「起動」を、
終了するなら右上の×ボタンを押して閉じてください。
③VisualStudioの起動
インストールが完了したらひとまず起動してみます。

起動するにはスタート内から「Visual Studio 2015」を選択してください。
※Win10の場合は「V」の中にあります
 

初回起動時にはサインインの画面が表示されますが、ひとまずここでは「後で行う」をクリックして起動します。


次にVisualStudioをどの用途で使用するかを選択します。


問題なく起動出来ると以下のような画面が表示されます。


これでVisualStudioのインストールは完了ですが、VisualStudioにもバグ修正などがあるため、
常にWindowsUpdateにて更新を行ってください。
④サインインして30日制限の解除
VisualStudio2015はサインインしないと30日後に使用出来なくなります。

サインインとは単純にユーザー登録のようなもので、マイクロソフトのアカウントを作ってそのIDでサインインをすることで、
それ以降ずっと使用することが出来るようになります。
アカウントは無料で作成出来るので、アカウントを持っていなければアカウントを作成しておきましょう。

アカウントの作成をする場合は、まず以下のURLにアクセスします。
https://login.live.com/

次に以下のような画面が表示されたら、右下の「新規登録」をクリックします。


その後は指示に従ってユーザー情報を登録します。


最後に確認のため、登録したメールアドレスに確認用のURLが送信されるので、
そのメールを受け取りURLをクリックすることでアカウントの登録が完了となります。
※当然ですがユーザー名(メールアドレス)とパスワードは忘れないようにメモして置いてください

アカウントを作ったらあとはVisualStudioにサインインします。

VisualStudioが起動している状態なら、以下のように「ファイル」から「アカウントの設定」を開きます。


登録したアカウント情報を入力して「サインイン」を押します。


認証が完了したら以下のような画面が表示されるので、名前を設定して「続行」を押します。
※それ以外の設定は特に必要ありません


認証が完了すれば以下のような画面が表示されます。
これで30日制限が解除されたので、それ以降は制限無くVisualStudioを使用することが出来ます。

※認証が済んだらこの画面からアカウントを削除しても、それ以降も継続して使用出来るようです


■DirectX SDKのダウンロード

新しいVisualStudioであればDirectX SDKは既に入っていますが、
このサイトでは新しいSDKには入っていないD3DXライブラリを使用しているため、
これが使えるSDKをダウンロードしてインストールします。

まずは以下のアドレスからDirectX SDKをダウンロードしてください。
DirectX SDK(2010/6)のダウンロード
https://www.microsoft.com/en-us/download/details.aspx?id=6812


■DirectX SDKのインストール

上記のSDKがダウンロード出来たらセットアップを開始します。

ダウンロードしたDXSDK_xxxxxx.exeを実行してください。(xxxxxxはSDKの日付)

※こちらの環境では下の部分が文字化けしていましたが、特に重要なものではないので無視してください

ライセンスが表示されるので「同意します」を選択してください。


問題があった場合に報告するかを選択するようですが、ここではとりあえずNoを選択。


SDKのインストール先ですが、ここではデフォルトのままにしておきます。


インストールするものを選択する画面ですが、ここでは最低限「DirectX Headers and Libs」を選択してください。

※デフォルトの状態でインストールされるので、よく分からなければ何も設定しなくても問題ありません

選択したものがインストールされます。


問題が無ければインストール完了です。



インストール時にエラーが発生する場合の対処法について
OSによってはインストールの最後あたりで以下のような「S1023」エラーが発生することがあります。


これはDirectX SDKのインストーラーのバグで、最新版の「Microsoft Visual C++ 2010 x86 Redistributable」と
Microsoft Visual C++ 2010 x64 Redistributable」がインストールされている場合に発生するようです。

この場合は先にこれらをアンインストールしてからDirectX SDKのインストールを行うことで回避出来ます。
※32bit版OSの場合はx64版はインストールされません(ちなみに32bit版は昔のCPUの名残でx86と表現されます)


DirectX SDKのインストールが終わったら再び最新版にアップデートしておきましょう。
Microsoft Visual C++ 2010 SP1 再頒布可能パッケージ (x86)
Microsoft Visual C++ 2010 SP1 再頒布可能パッケージ (x64)