Meltdown

川西さんからただ券を頂戴して,CEDEC内で開催されるMeltdownに行ってきました.個人的に印象に残ったことを元にメモでも残しておきます.


第1部「Windows ゲーム開発」

Windowsの雑多な注意事項が意外なぐらい網羅されていて感心しました.制限ユーザでも動作するゲームを作るための要件や,WindowsXP SP2の新機能(No Executeや新しいファイアウォール),Background Intelligence Transfer System (BITS)など様々な言及がありました.

第2部「DirectX グラフィックス」

CENTROID修飾子に関してはほとんどチェックしていなかったので参考になりました.全体を通して目立ったのは,「デジタルコンテンツ制作ツールにプレビューパイプラインを構築し,HLSLベースのコラボレーションを」というストーリーです.もっともこのプレビューパイプラインのあるバラ色生活はまだまだ未完成で,発展の余地があることそのものが魅力なのでしょう.一方で .NET系のコミュニティーにも足を突っ込んでいる私には,その目的のためにはMicrosoftの他の部門ともっと連携できる点があるように見えます.プレビューパイプラインでは特にAnnotationやSemanticといったメタデータ技術が鍵となりますが,これが .NETと全く独立に構築されているのは不思議な話だと思います*1.こういう印象はもはやDeja Vuに近く,例えばXファイルのフォーマットを読んだときにも「柔軟かつ汎用,しかしDirectX専用」というのが第一印象でした.独自に何でも作ってしまうというのはそもそもゲーム業界の性格としてあるのでしょうか.独自ファイルシステムや独自暗号化,独自シリアライズ機構など掘れば掘るほど大量に埋もれている気がしてなりません.通常のソフトハウスであれば移植性の要請からPC以外の制約条件にあわせる必要があったり,ソースコードを何度も再利用したいといった理由もあるのでしょうが,ここで述べたいのはMicrosoftという企業内でもこのようなギャップが存在し得ることの驚きです.まあ「ここはロック精神溢れる明るい職場です」というのも楽しそうですけど.ああでも10年近く前にCOMを採用した判断はすばらしいです.

第3部「DirectX アプリケーションのパフォーマンス チューニング」

DirectXアプリケーションのパフォーマンスチューニングでは,事前に正確なパフォーマンス測定の手段を確立することが重要です.そしてチューニングの随所で実際のパフォーマンスをチェックすることが不可欠です.このことはプレゼンテーションの中で何度も繰り返されていました.プレゼンで強くプッシュされていたヘルプのトピック『Accurately Profiling Direct3D API Calls』を紹介しておきます.XBOX用のプロファイラをポートしたというDirectX用プロファイラ,PIXについても解説がありました.PIXではOSの提供するパフォーマンスカウンタも参照することが出来ますが,OS提供のカウンタは意外と使い勝手が悪いことがあるのでその点は注意が必要かもしれません.例えば標準カウンタのCPU使用率などはあてになるのか正直疑問です.

第4部「高度なライティングと DirectX グラフィックスの将来展望」

後半のプレゼンではWindows Graphics Foundation (WGF)について色々と聞くことができました.WGFの第一印象は現状のDirectX 9.0cからだいたい予測可能なアーキテクチャという感じでしたが,ジオメトリシェーダは案外大きな可能性をもたらすかもしれません.まだ仕様が完全には決まっていないようで,特に今情報を集めて何かできるということは無いんですけどね.また次世代Xファイルといった単語も聞こえていましたので,ソフトウェア層で何か一言いいたいことがある人はベータプログラムに参加を申し込むと良いでしょう.

*1:一方で米国で先月開催されたMeltdownでTom Miller氏が用いたスライドには,"What makes managed code ‘cool’"としてMetadataやAttributes as programming modelといった言葉が並んでいます.http://www.microsoft.com/downloads/details.aspx?FamilyID=00600351-4c8f-43cd-b3e3-a9975ecda0ce&displaylang=en