原子力プログラマの備忘録

作る、遊ぶの爆発力

【DirextX12】導入~サンプルプログラムを動かすまで

f:id:uranium9292:20180706025931p:plain[:contents]

雑談

ご無沙汰しております

ブログ解説して二個記事書いて以来すっかり何も書いてないやんけ!ってなってましたが、言い訳としてはDirectXと格闘しておりました。前まではUnityを使っていたのですが、将来のことを考えるとDirectXもある程度触れるようにして独自ライブラリとか組めるようになっておくと強いかなと。

サークルでは


なんか作るの楽そうやしUnity使お

Unityわかりにくいわ!Unity特有の記述勉強するのめんどくせえ!

せや!DXライブラリ使ってゲーム作ったろ!

ゲーム量産したいからやっぱUnity使うわ*1


みたいな流れで来てまして、一旦DXライブラリ直打ちでゲーム作ってるからまあ何とかなるかな...?と思いつつ。多分挫折はしないと思う。

で、どうやってDirectX勉強するかが問題なんですが、DX12の情報が圧倒的に少なすぎる。あってもレベル高すぎて「なに言ってだこいつ(ハナホジ)」になってしまって勉強すらままならない。一からコード書いていくのも大変すぎるんで、サンプルコード弄るところから始めようかな!

――そして現在に至る

現在の自分なりの考え

DirectXとは

DirectXMicrosoft様が開発したAPIで、ざっくり言えばWindows上でゲームをするために必要な画像処理とか音声処理とか、そういったものを高速で処理するためのものだと思う。なんか処理を効率よく行うためにグラフィックカードとかに直接命令が下せるみたいだけど、そこまでのクオリティは求めてないので後回し。そんなのどうでもいい今は覚えなくてもよさそう*2

やりたいこと

2Dゲームを作る予定なので

- 2D画像の表示

  • キーボードやマウス、ゲームパッドなどからのボタン入力
  • 音楽を取り込んで再生

は最低限出来なければならない。というかこれできたらゲームになる。

環境

VisualStuido はCommunity の2017、DirectXは12です。ノートPCでやるのでIntel UHD Graphics 620の内蔵グラフィックスが入ってます。

導入

この辺を参考にしながら導入しました。ありがたや
techblog.gmo-ap.jp

VisualC++とDirectX SDKの設定 最新情報

サンプルコード

ダウンロード

GitHubにサンプルコードが転がってるそうなのでそこからDL。
github.com
GitHubのダウンロード方法わかりにくいね。丸一日費やしました。

動かしてみる

さあDX12のダウンロードは完了した。サンプルコードを実行させてみるぞ!っとなったところでエラーが504件。なんじゃこりゃあああ


「"~"がincludeできません。」っていっぱい出てるから何かのライブラリが足りてないんかな?VisualStudioのDirectXゲーム開発関連のキットをもう一度ダウンロード。そしたらこんなエラー1つだけになった。

f:id:uranium9292:20180706025343p:plain
SDKのバージョンがない...?

外部からDLしたプロジェクトファイルだからSDKのバージョン設定がずれてるのかな?*3と思って調べたらドンピシャ!

f:id:uranium9292:20180706025737p:plain

SDKの一覧に10.0.17134.0がない!代わりに10.0.16299.0に設定してみる

f:id:uranium9292:20180706025931p:plain

うごいたあああああああああああああああああ
ということでDirectX12を無事導入し、サンプルコードを実行させることができたのでした*4。これからこれを読み解きながら勉強していこうと思ってます。

以上!

*1:うーんこの優柔不断

*2:いつかはやるべき

*3:ここ名采配

*4:この時点で2週間かかったという恐ろしい事実