Archive for the ‘Book Review’ Category

『DirextX + VB.NETではじめるゲームプログラミング』

2006年10月1日

2004年08月13日 (金) 20:28 | 編集
『DirextX + VB.NETではじめるゲームプログラミング』
藤田伸二 著
出版社 翔泳社
ISBNコード:4-7981-0220-2

『DirextX + VB.NETではじめるゲームプログラミング』
  著:藤田伸二/出版:翔泳社
  ISBNコード:4-7981-0220-2

 

【はじめに】
2004/7 のINETA-Japan のリーダーズミーティングで、ブックレビューを行うことになり、持ち寄り+出版社のご好意により、50冊ほど集まりました。この中で、好きな本を持って帰って、レビューをしましょうと言うことで、選んだ1冊がこの本です。というのは、.NET のGDI+ で、かなり楽チンにグラフィックス処理はできるようになったのですが、やはり3Dものに比べると、見劣りするんですよね。たとえば、簡単な例でアナログクロックやスクリーンセーバなどの、グラフィックス系アプリケーションだと、どうしても3Dのほうがかっこよくなりますよね。
(お前のセンスが悪いんじゃないか!というのは却下)
それで、前からDirectX について知りたいと思っていました。
ところが、.NET + DirectX の書籍って、無いんですよね。
そこで、目に付いたのが、この『DirextX + VB.NETではじめるゲームプログラミング』です。
自分としては、C#の解説本が欲しかったのですが、VB.NET でも基本的には同じなので、ある程度VB の文法がわかれば、C#に読み替えて理解することは容易だと思います。
前振りはこの辺にして、早速中身についてです。

【DirectX7,8 が前提】

まずは、DirectX7のCOMである「DirectX for Visual Basic Type Library」をベースに書かれています。DirectX8の仕様についても言及しています。
CD-ROMも添付されており、掲載されているサンプルコード、DirectX 8.1 SDK などが入っている親切設計です。サンプルコードもVisual Studio 2003 でまったく問題なく動作することを確認しました。
DirectX7,8 に関して、何も知らない人を対象にやさしく解説されているので、DirectX7, 8 をベースに作るのであれば、問題ありません。
ところが、DirectX9 でManaged DirectXとなっており、概念はあまり変わらないと思いますが、コードはだいぶ変わってきます。このため、DirectX9でマネージコードを書く上では、あまり参考にはなりません。ただ、いきなりDirectX9でわけのわからない単語を並べられるよりは、この本である程度DirectX7,8 の基本的な考え方を理解した上で、DirectX9 に取り組むのがよさそうです。
 
【各章の構成】
第1章 DirectX 概説

DirectX の概要については、さらっとしかふれらておらず、DirectX7,8の変更点、歴史的背景、SDKの入手方法、VBでの開発上の注意点などが書かれており、入門者がつまずきやすい点や、疑問に答えている。
DirectDraw、DirectSoundなどの中身については、ほとんど触れられておらず、第2章、第3章、第4章で、実例をもとに解説を行っているスタイルをとっている。 はじめて読む人には、そのような形がわかりやすいと思いますが、 DirectXの全体像をもう少し詳しく説明して欲しいというような不満が残ります。
 
第2章 DirectDraw スクリーンセーバーを作る

「スクリーンセーバーを作る」を題材に、DirectDraw の概要説明、および説明がなされています。 実際にサンプルコードで動作を確認しながら学べるので、直感的にわかりやすいです。また、TIPSや注意点なども、適切に記載されています。DirectXとは!なんて、大上段に構えず、具体的なプログラミング例から解説されているので、第1歩でつまずくことなく読み進められるように工夫されていますので、とっつきやすいと思います。
 
第3章 DirectSound/DirectMusic

3Dサウンド、DirectMusic の解説です。この章もDirectSound/DirectMusicを使った 簡単なアプリケーションをベースに説明を行っています。内容的にも次のDirect3Dに比べれば、かなり容易なので、理解するうえでは特に問題にはならないと思います。
第4章 Direct3D

ポリゴン、シェーディング、テクスチャマッピング、Xファイル、ライティングなどの概要説明に 続き、簡単な「3Dシューティングゲーム」を実際に作っていくという内容です。 テクスチャの作り方などの「コツ」も親切です。
簡単なゲームのサンプルコードを元に解説していますが、 自分自身、DirectX について、まったくの無知だったので、 この程度のコード量でこのぐらいのことができるんだ!って、感動しました。
ただ、Windows プログラミングとはまったく別物なので、コード自体は簡単そうに見えるけど、 いろいろノウハウが詰まっていて、奥が深いのだと思います。
 
リファレンス

各関数の解説に80Pほど費やしています。
全体のうち、この本で使用している主要なメソッドだけだと思います。
そういった意味で、DirectX の全体像 (どのようなクラスやメソッドがあり、どのぐらいの機能があるのか、 この本で解説している部分、していない部分) といったことには触れられていないので、DirectX の全体像がわからないという不満が残りました。
入門編ということなので、そこまで細かく書いていくと余計わからなくなってしまうのでしょうが、 リファレンスを削ってでも、第1章のDirectX 概説で、 全体像と機能一覧を図解でわかりやすく解説してもらえたらよいと思いました。
【DirectX関連書籍】
 
【総括】

非常に残念なのが、出版時期が2002年5月であることを考えるとやむ終えないのですが、DirectX 9 がカバーされていないことです。このため、DirectX 9 に関しては、新たに勉強しないとだめです。
しかし、DirectXに関する書物がほとんど無いので、そもそもDirectX って何?何ができるの?と思っている人は、DirectX の概要をつかむ上では一読して、サンプルを動かしてみると、かなりDirectXに関するイメージがつかめると思います。
希望としては、早期に DirectX 9 対応の第2版を出して欲しいですね。また、C# 対応してもらえると、とてもうれしいです。
2004/8/13

広告

『ADO.NET 専修講座』 VB.NET編

2006年10月1日

『ADO.NET 専修講座』 VB.NET編
William R. Vaughn 著
伊藤 由起子 監修
株式会社 トップスタジオ 訳
出版社 翔泳社
ISBNコード:4-7981-0400-0
【はじめに】
2004/7 のINETA-Japan のリーダーズミーティングで、ブックレビューを行うことになり、持ち寄り+出版社のご好意により、50冊ほど集まりました。この中で、好きな本を持って帰って、レビューをしましょうと言うことになりました。このとき、この本の監修をされた伊藤さんも来られていて、この伊藤さんが監修する本は一体どんな本なのだろう??ということで、選びました。
で、選んだ後から、INETA-Japan の懇親会の席で「今度この本をブックレビューすることにしたんだ!」ってAI-LIGHTさんへ説明したら、『えっ?VB.NET の本をレビューをするの?』って言われました。あわててよく見ると、『えっ”、こっ、これって、「VB.NET」じゃん!』って、気がついたしだいでした。
とはいえ、選んでしまった後なので、『VB.NETもC#も、アセンブリになればみな同じ!』というのりで、レビューすることにしました。^^;
それはさておき、早速中身に入ります。

【読み始めて驚いた!】

まずは、読み始めて驚きましたね!!専修講座と書いてあるだけあって、レベルが高い!初心者向きじゃないです。はっきり言って、中級以上です。
VB,ASPで苦労されてきた人たちが読むと、きっと『うん、うん、そうだよね!』となると思います。勧めの対象読者は、VB, ASP の経験者で、かなりできる人です。初心者には、全く向いていません。また、読み物風になっていて、リファレンス的に使うのは難しいと思います。ピンポイントで調べたいという忙しい人には向いていません。じっくり読む時間がある時に読む本です。
IMHO(意見)、BP(一番いいやり方)、TIP(チップス)、NOTE(メモ)、Sample(サンプルコードの場所)、Warning(警告) などの吹き出しがあり、わかりやすくなっています。ただし、英語の本にありがちな、図が少なく、文字が多くなっています。またフォントも小さめなので、本の厚さの割りに、中身が非常に濃いです。
 
【各章の構成】
第1章 ADO.NETの概要

これまでの歴史的な流れ(VB, ASP, ADO⇒VB.NET, ASP.NET,ADO.NET)と、どのような理由でこれらの変化が起きたのかを説明しています。その上で、ADO.NET全体のアーキテクチャ、インフラストラクチャ、主要クラス、.NETデータプロバイダー、既存COMの扱い方、System.Data名前空間、ADO.NETの低レベルデータストリームについての説明がなされていきます。 自分のように、VB、ASP, ADO なんて知らない人にとっては、???だらけになってしまいます。逆に、VB, ASP, ADOは知っているけど、VB.NET, ASP.NET, ADO.NETって、どうしてそんなことするのよ!!って思っている人には、ぴったりだと思います。
あと、あまりたいしたことではないのですが、章の構成の問題点としては、章の番号までしか振られていな いのと、文字が多い読み物風なので、いまどの階層にいるのか時々混乱 してします。
 
第2章 接続

この章の主目的は、どのデータプロバイダを使うかと言うことで 、OLEDB.NETプロバイダ、SqlClient、Odbc.NET、従来のADOの4つを比較、説明しています。
具体的な節の構成は、.NETデータプロバイダの選択、ADO.NET のConnectionオブジェクトの作成、SqlClient.NETデータプロバイダの接続、トランザクションの管理、ODBC.NETデータプロバイダの接続、コードで接続を作成する方法、接続の終了、.NETでCOMベースのADOを使うから構成されています。
各データプロバイダでのコネクションストリングの注意、接続プールの注意など、MSDNをあさっても きれいにまとまった情報が出てこないので、とても役に立つ情報が満載されています。
 
第3章 コマンド

ADO.NETのSELECT文などのコマンドの作成方法、パラメータクエリ、ストアドプロシージャの作成方法、データセットの作成方法、結果セットの扱い方などをウィザードなどを利用して作成する方法が述べられています。また、最後に、結果セットの最適なアクセス方法についても述べられています。どのようなアクセス方法を取るかで相当パフォーマンスに効いていることも解説されています。
第4章 データリーダー、第5章 データテーブルとデータセットの使用

ADOとADO.NETの比較、DataReader, DataTable, DataSetについての説明です。ADOから何が変わったのかを中心に、ADO.NETではどのように扱うべきかが述べられています。
ADOからADO.NETへ移行しようとしている人には必見でしょう。
 
第6章 フィルタ、並べ替え、検索

Selectを使ったフィルタと並べ替えの方法、DataView, Findメソッドの使い方が書かれています。
ところが、この著者は、IDEでDrag&Dropを使うことが嫌いで、プログラムと文字での説明が延々と続いて、いいかげんうんざりします。確かにコードを理解するうえでは、IDEを使わずに説明したほうがいいのかもしれませんが、説明とコードだけが延々と続きます。ビジュアルデザイナを駆使してという説明はほとんどありません。図解も少ないので、読み進む上では、忍耐力が必要です。

第7章 更新、第8章 制約

7章では、データベースのデータの更新、8章では制約をプログラミングする方法について述べられています。
これらの章では、データベースについて細かいこと(永続化、ロック、制約、エラー処理など)がわかっていることを前提に書かれています。このため、データベースのことをある程度わかっていないと、とても読めないと思います。
 
第9章 エラー管理

この章は、Try/Catch, SqlException, OleDbException などの使い方が述べられています。このあたりの説明まで解説している本が少ない中で、なかなか良心的です。
 
第10章 ADO.NETとXML

文字通りADO.NETとXMLの関係、さらにはXML Webサービスの話まで解説しています。中身的にもDiffGramとかDataSetをXML Webサービスで受け渡しする例など、結構目が@@になります。
 
【ADO.NET関連書籍】
 
【総括】

この本は、初心者の人は手を出してはいけません。
また、ADO, VB を知らない人は、よけい混乱するので避けたほうがいいでしょう。ADO, VBからADO.NET, VB.NETへ移行しようとしている、プロ向けの本です。この本を読みこなせば、かなりノウハウが得られると思います。
また、忙しい開発の合間に、リファレンスとして使う本ではありません。じっくり読める環境で、読んでください。
この本を監修した伊藤さんに脱帽!!
2004/8/13