Entry

今日買った本 - 『Windowsゲームプログラミング 第2版』

2010年02月20日

ゲーム方面のアプリケーション開発にはほんと疎いもんで,作る気もあまりないんですけれど,ちと思うところがあって買ってみました。本書は,C言語と IA-32(Intel 32ビット・マイクロプロセッサ・アーキテクチャ)の基本を「ちゃんと」身に着けた人が,Windows のゲームを作ろうと思ったときに読む本。Win32 API の入門書としては,完成度の高い書籍だと思います。 一応,一通り読みました。

Windowsゲームプログラミング 第2版 Game Developer
赤坂 玲音
ソフトバンククリエイティブ
売り上げランキング: 122031

Amazon のレビューに「不親切」とか「初心者向けじゃない」とかいった話があるけれども,そゆ風に感じるとしたら,ぶっちゃけた話,本書を読む前にやることがあるはず。そんなに難しい話はしてないんですけどね。おそらく,本書の冒頭にある次の一節が読めれば,トントンと読み進めるはずです。

Windows は、プログラムの実行時に必要なコードを読み込んで実行するダイナミックリンクをサポートしています。これによって,コードのすべてを実行ファイルに埋め込むのではなく、特定の機能を提供するコード群をダイナミックリンクライブラリとして分離することができるのです。Windows API は DLL で提供されているため、アプリケーションプログラムが必要な機能だけを部分的に利用するのです。

このとき、アプリケーションが DLL を直接参照するのではなく、イメージとしては DLL ファイルの機能をアプリケーションのプロセス(実行空間)にコピーすると考えてください。DLL ファイルは、Windows の機能であると同時に、アプリケーションの機能を拡張する手段であると考えることもできるのです。

『Windowsゲームプログラミング 第2版』(赤坂玲音,ソフトバンククリエイティブ,2008年,p2)

さらっと読めるでしょうか。DLL については説明があるけれども,「実行空間」のような言葉については説明がありません。こゆ Windows API とは直接関係のない基本事項は知っていることが前提になっています。あと,もう一箇所。

WINAPI は関数の呼び出し規約を定める Microsoft 固有の仕様です。通常は __stdcall キーワードを表すマクロとして割り当てられています。__stdcall の呼び出し規約とは、関数を呼び出すときに引数をどのように渡すかなどの決まりごとのことです。具体的にはマシンコードの話になるため、引数の引き渡し手順などについて知る必要はありません。Win32 API の呼び出し規約は WINAPI として定められているため、システムからコールバックされる関数などを宣言する場合は WINAPI を指定しなければならないということを知っておけば十分でしょう。WinMain() 関数もまた、システムから呼び出される関数なので WINAPI を必ず指定します。

『Windowsゲームプログラミング 第2版』(赤坂玲音,ソフトバンククリエイティブ,2008年,p7)

呼び出し規約について,__stdcall や __fastcall といった種類があることまでは知らなくてもいいけれど,「システムからコールバックされる関数」がどういう関数なのかは,常識として扱われています。こゆのはあらかじめ知っておく必要があります。

このサイトではよく書いているけれども,「自分が読めないから親切じゃない本」とかいった感想を持つのは,とんだ甘ったれだと……そんなのはいつまでたっても手取り足取りの入門書しか読めないぞ,と……くどくど……。あ,話が逸れてしまった。

あたしが本書を買ったのは,本書が Win32 API のうち,よく使うものをまとめているものだったから。今時,ゲームプログラミングで Win32 API を直接叩いているのか,あたしゃよく知らないんですけれど,MFC を使うにしても,システムプログラミングするにしても,Win32 API は Windows プログラミングで頼る最後のヨスガだったりします。そゆとこの基本を本書は網羅しています。

あたしの場合,ゲームは作らないけれど,画像処理をゴニョゴニョしている関係もあって,補助ツールを作ることがよくあるのでした。例えば,閾値を変えて処理結果を逐一確認するツールとか,ある画像ともうひとつの画像で計算した結果を表示するツールとか。簡単なモノだし,あたしが使えればいいツールなので,いつもはちゃちゃっと作るんですけど,もちっと使い出のいいものをちゃっちゃか作りたくなったので,ゲームプログラミングのお知恵を拝借しようと思ったわけ。

あたしが普段参照しているのは,『Advanced Windows』なんですけれど,こちらはシステムプログラミングが中心なので,画像やフォントの扱いについては書いていません。

Advanced Windows 第5版 上 (マイクロソフト公式解説書)
Jeffrey Richter Christophe Nasarre
日経BPソフトプレス
売り上げランキング: 10695
おすすめ度の平均: 5.0
5 Advanced Windows第5版翻訳本

その点,本書では GUI アプリで画像を扱う常識的なことが,しっかり説明されている。CreateCompatibleDC で裏画面を作って BitBlt で転送,なんてテクニックは,ゲーム業界では超基本なんでしょうけど,システムプログラミングべったりだと,本当にまったく触れる機会がありません。なにげにたくさん参照しそうな予感。

Win32 API といえば『猫でも』本とかいった感覚もあるかもしれないけれど,目的がはっきりしている場合は,こちらから入るのもいいかもしれません。絵が少なくて情報が多い割に価格も安い。おすすすめです。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN