書籍版 DirectX9実践プログラミング (I・O BOOKS)

書籍版 DirectX9実践プログラミング (I・O BOOKS)

工学社の本は基本的に誤植が多かったり、説明不足な構成になっていたりと、
あまりよろしくないのですが、この本だけは中々のデキです。
DirectXの主要な機能をほぼ網羅して解説しているのは、
この本だけではないのでしょうか。
 
まあ、工学社は昔からDirectXの本はたくさん出してましたから、
これは「集大成」とも言ますね。
 
ぎっしりと内容が詰まっていますよ〜。
 
DirectX 9 シェーダプログラミングブック

DirectX 9 シェーダプログラミングブック

最初の方は易しい内容なのですが、
中盤から一気に難しくなるので、要注意です(笑)
シェーダについて、ここまで突っ込んだ内容で、かつ、分かりやすいのは、
この本だけではないでしょうか。
 
基本的な3D数学について、細かく解説しているのも嬉しいですね。

Java

Javaは実行速度が遅いですが、以下のメリットがあります。

  • 超強力な統合環境「Eclipse」が無料で手に入る
  • C/C++と比べるととてもシンプルにできている
  • ガベージコレクタにより、メモリ管理に悩まされない
  • ポインタを明示的に使えない
  • 標準ライブラリがかなり充実している
  • その他構文がシンプル(例外処理など)

 
最近では業務アプリの多くJavaだったり、iアプリJavaでできていますので、
そちらの方面に進みたい人は、覚えておくといいかもしれません。


Javaゲームプログラミングアルゴリズム (CD付)

Javaゲームプログラミングアルゴリズム (CD付)

表紙がいかにもアレなので、買うのをためらってしまう人が多いと思いますがw
中身はかなり硬派で本格的です。
(逆に表紙につられた人はつらいかも…(笑)
 
さて、ゲームプログラム本は基本的に、ゲームはあまり作らないが言語を知っている人、
というような「言語屋」が書いています。
そういったものは、ツマラナイ、ありがちな、ゲームの作り方を解説していて、
読んでいてヒジョーに退屈です。
 
ですが、この本の作者は元ゲームプログラマーで、発想も面白いものを持っています。
なので、サンプルもひとひねりあるゲームでなかなか楽しいです。
また、
 
「ゲームを作るには何が必要か?」
 
ということが、経験や実績に裏打ちされていて、
 
「ゲーム製作の本質とは?」
 
がとてもよく分かる説得力のある解説になっています。
 
あと、ゲームの「フレームワーク」の作り方も説明していますので、
なかなか高度な内容になっていると思います。
自分で「フレームワーク」「ライブラリ」を作るときの参考にもなると思います。

Win32API

Windowsゲームプログラミング (Game developer)

Windowsゲームプログラミング (Game developer)

イマドキ珍しく、MFCDirectXを使わずに、
Win32APIとCのみという硬派な本です。
 
ウィンドウや画像の表示、音声の再生、キーの入力など、
今までのAPI本ではテキトーに扱われていた(笑)項目を
しっかり解説していていい感じです。
 
例えばDirectXなどだと、
ランタイムをインストールしてもらわなければいけなかったりと、
プレイしてもらうには、ユーザに多少なりとも負担になります。
 
その点、Win32APIとCのみであれば、
すぐにでも実行してもらえるような、
非常にコンパクトにゲームを作ることができますね。
 
応用として、テトリスブロック崩しなど、
ゲーム作成の基本となる題材も解説されているのも、
なかなかポイント高いです。
 

画像処理

フルスクラッチによるグラフィックスプログラミング入門

フルスクラッチによるグラフィックスプログラミング入門

ゲームプログラム本ではないのですが…。
DirectXなどの画像処理ライブラリを使用しているうちに、
 
「その中身はどーなってるの?」
 
と、ふと思うときがあります。
 
この本では、画像の矩形転送から、回転・拡大・縮小、αブレンド、モザイク、ぼかしなど、
画像処理の基本的なものを非常に分かりやすく書いています。
(応用で画像解析も書いてあります。まだ読めてませんが…(´Д`;)
 
こういった本は、理系向けの難しい内容(数式だらけ〜(笑))で書かれることが多いのですが、
これは数学の知識はあまり必要としないので、とっても分かりやすいです。
 

数学/物理

ゲームを作るのに、「数学」や「物理」の知識は必ずしも必要ではありません。
 
ですが、知っているのと色々と楽ができます。
 
例えば、キャラを円を描くように動かしたいとします。
 
その場合、三角関数を知っていれば、
「ああ、sinとcosを使えばいいんだな」
とすぐに分かります。
(さらに、ちょっと工夫すれば、「渦」の動きもできてしまいます)
 
ですが、知らないと、
「あああ、分からない…。まあいいや、直線の動きを組み合わせて…」
というように、すごく面倒な手順を踏むことになります。
 
というわけで、「数学」や「物理」の知識があると色々と有利なのです。
 
余談ですが、最近のゲームプログラマの採用基準として、
「プログラムはできて当たり前。
 数学や物理の知識がないと、ゲームプログラマとしては失格」
という傾向があるそうです。
(まあ、最低3Dゲームぐらいは作れないと、、、ということがありますが)