#

Mobility RADEON 2300HD(ノート向けのGPU、nVidiaで言うところのx200程度のスペック)を搭載したノートPCで、Wankoエンジンの描画が乱れてクラッシュする、具体的に言うと「モーションの入ったメッシュだけが表示されず、その状態で敵に何か技を当てるとクラッシュする」、そしてデバイスドライバを変えても改善しない、と言われた。何が原因かはよく分からなかったものの、モーション周りの実装が変化しているという話を聞いていたので、ひょっとしたらと思い、面倒くささから放置していたVC6 / DirectX9aからVC8 / DirectX9cへの開発環境移行を行った。これには大体2日かかった。

-

完成したバイナリを前記の環境で実行して貰ったところ、「d3dx_30.dllが見つかりません」というメッセージが出て起動しない、と言われた。これは文字通りD3DXランタイムが存在しない事を意味しているので、DirectXのアップデートが不完全である旨を伝え、アップデートしてもらった。その上で再度実行してもらった結果、VC8 / DirectX9cバイナリは正常に動作した。ここまでは良かったのだが、念のため同梱したVC6 / DirectX9aバイナリが、同じ環境で正常に動作してしまった。つまりコンパイラや使用するランタイム、エンジンのコードには元々異常はなく、結局はクライアントの環境が悪かった。しかも起動時のDirectXバージョンチェックに引っかかる事もなく、表面上正常に起動しながら、実際には微妙に異常動作していた。聞けば、クライアントの環境はXP SP2であり、DirectX9cは最初からインストールされていて、さらにそれはWindows Updateによって最新版に更新されているという前提の元、特にDirectXランタイムのインストールは行わなかったという。だがその環境では、古いSDKを使ったバイナリは、エラーメッセージすら出せずに中途半端な異常動作を起こしていた。

-

これは有名な問題なのかもしれないが、かなり痛い。エラーが出て全く起動しないならともかく、一応起動しておいて異常動作している、というのが非常にまずい。誰にも説明されなければ、ユーザは自分の環境に問題があるとは思わず、ただプログラムにバグがあると信じて疑わないだろう。

-

プログラマ側から見た場合、回りくどい考え方ではあるが、「d3dx_??.dllが見つかりません」というエラーが出て異常が顕在化するだけマシなので、とにかく新しいSDKを使うべきだ、と言える。諸々の事情により、DirectX9a向けのコードは、そのままではDirectX9cでコンパイルできないので、どうしても古いSDKを使いたい場合もあると思うが、それでも移行した方がいい。

ユーザ側から見た場合、端的に言えば、WindowsXP SP2に最初から入っているDirectX9cランタイムは不完全でやばい物だ、と言える。上記のようなケースを解決するためのアップデートはWindows Updateでは実行されない事が分かっているので、「自分の環境には既に最新版がインストールされている」という思い込みを捨て、手動でアップデート処理を行った方がいい。


// Time Stamp
  2007-08-08 16:46:45 (Last Modify)
  2007-08-08 16:46:36 (First Edition)

// Bookmarks


// 関連した記事 -

# 2010-02-18 23:26:20 - ?

// アクセスの多い記事

# 2007-07-30 11:29:32 - レイクドリャフカ - しろくま屋
# 2006-10-26 06:09:21 - MMORPG用語の基礎知識
# 2006-10-11 01:16:45 - 似非SFでよく誤用される近代~近未来兵器についての知識
# 2006-12-11 02:59:04 - 彼にはカルドセプトサーガの前に数当てゲームを作らせるべきだった
# 2010-02-18 23:26:20 - カミナギ - 人工無能
# 2006-12-25 04:53:42 - febgm Build100
# 2007-06-05 17:34:54 - フィーチャーから見る格闘ゲームの歴史
# 2007-04-30 15:04:20 - 格ゲー衰退の根本的な問題点と解決策とは?
# 2007-06-14 20:00:20 - カプコンとSNKの必殺技コマンド入力判定の厳しさの差を検証
# 2006-12-13 02:44:53 - 真の低脳は意外なところに潜む
# 2006-10-28 11:38:39 - 文系はコミュニケーション能力という名の処刑斧を振るった
# 2006-10-24 03:08:51 - 「MMORPG」の画期的特性とは何だったのか

Sitemap: インデックス > blog

ConnectingDB: 0.00ms.
Logging: 0.06ms.
QueryingPrimary: 0.00ms.
OutputtingRelationEntries: 0.00ms.
OutputtingPopularEntries: 0.00ms.
OutputtingReferer: 0.00ms.

Powered by PHP / MySQL, 54917th Visitor