« C#のポリモーフィズム | メイン | 書籍: C#ゲームプログラミング »

2006年07月01日

Managed DirectX の資料求む [C#]

最近 Managed DirectX に凝っている。というか、そろそろ DirectX ベースの本格的なゲームが作りたくなってきたというか。

今までは Perl ベースのブラウザゲームだとか、SRC や ActionEditor 、ツクール等の専用ツールに頼ってきた感があるので、どうしても描画性能だとか仕様の壁に悩まされてきたものだ。最近では、HSP や LGP3 にも手を出してみた。これらはゲームに特化した言語である。しかしこれらの言語は高度なオブジェクト指向的設計をするには限界があった。

それで次に、DirectX 関連の既存のライブラリを使う事にした。私はポインタベースの VC++ はどうにも肌に合わないので、出来れば .NET 環境で構築したい。そんなわけで DXライブラリを C# 化してみたり、若葉ヘルパーという .NET 用のライブラリを使ってみたりもした。しかしやはり仕様の壁に悩まされ、また細かいところまで手を回せないという欠点もあった。大抵のライブラリは昔ながらの手続き型関数の形を取っているので、どうにも扱いにくい。

そこで Managed DirectX に手を出してみることにした。Managed DirectX とは DirectX 9.0 以降から搭載された .NET 用の DirectX のマネージドコード版で、ポインタに依存しない C# 等から扱うには非常に都合が良い。おまけに使い勝手が向上しており、デバイス初期化のためのコードはかなり短縮して記述できる。(そのぶんいくらか動作が遅いらしいが)

ところが困ったことに、Managed DirectX を扱っている資料はあまりに少ない。日本語の書籍にいたっては1冊しかなく(3Dのは若干あるが)、この本も僅かばかりに触れているだけに過ぎない。C# で Managed DirectX for 2D を本格的に扱った本が出版されたら、即買いなんだけどなぁ。Web サイトは辛うじて幾つかあるので、それに頼ってなんとか食い繋いでいるという感じだ。DirectX の公式ドキュメントも大変重宝している。

とりあえず現在スプライトベースの基本的なゲームエンジンを構築中である。シーンクラスの設計が大いに悩んだが、うまい実装を思いついたので当分はそれでいってみようと考えている。具体的にはベースとなるシーンクラスを抽象クラスとして定義し、シーンごとに継承させるやり方だ。イベントによる実装やライブラリ形式にして委譲させる方法も考えたが、いちばんスマートに開発できるのがその形式だった。

各スプライトは画像スプライト、アニメーションスプライト、ラベルスプライト等の機能特化したものをつくり、それをシーンクラスに貼り付ける。あと、スプライトをグループ化することによって、辺り判定取得時の無駄を少しだけ軽減できればと思っている。

Managed DirectX を使う上で参考になるサイトをあげておく。これ以外にも良いサイトがありましたら、是非教えてくださいませ。

C#でゲームプログラム講座
DirectX Tips@ソーサリーフォース
Cutting Edge DX9 川西 裕幸のコラム@MSDN
Managed DirectX環境構築

投稿者 : 21:06 | コメント (1) | トラックバック (0)

トラックバック

このエントリーのトラックバックURL:
http://totora.jpn.org/mt/mt-tb.cgi/151

コメント

DXライブラリ3DとかSeleneなら2Dも3Dもできますよ。
.netでやりたいならやはり資料が英語しかないでしょうし。

投稿者 ミヨシン : 2008年04月03日 01:05

コメントしてください




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)