2008年02月03日

life(仮)開発日誌 事始め

こんにちは。ペンギンラボのラボ長です。
このブログはペンギンラボ初のゲーム開発プロジェクト「life(仮)」の開発日誌です。1月初旬から開発を始めて、もう頭がパンクしそうなので、作業記録&備忘録として日誌を書く事にしました。

とりあえず、これまでの経緯。
(長いです。要はC# + Managed DirectXで開発することに落ち着いた、という話)



1月初旬、兄より「ゲーム開発するのにいいプログラミング言語は何か」と聞かれる。とりあえず使い慣れたVB.NETで、ちょっとしたデモを作ってみる。が、兄の構想は大きく、いっちょ本格的に作ってみるか!という事になる。



始めに作ったデモではGDI+を使って描画していたので、すぐに描画速度の限界が来た。YaneSDKの存在を知っていたので調べてみると、なかなか良さそうなので使ってみる事に。YaneSDK.NET自体C#で書かれているので、思い切ってC#に乗り換える。C#はおろかCもC++もほとんど触った事無かったが、VB.NETと殆ど変わらなかったので、ほとんど問題なし。



兄:ドット絵、企画、作曲
私:プログラミング、企画協力、作曲
という感じで作業がすすむ。



せっかく作曲したので、BGMとして流してみるも、ループがひどい。
ループで戻る箇所を指定できないのはもちろん、ループで戻る際のタイムラグが無視できない。むむむ。



YaneSDKのTexturesの扱いがどうも好きになれなかったこともあり、別のSDKがないか探す。Seleneというのが良さそうだったが、なんかめんどくさそうで挫折。結局、ソフトテルミンのコードを流用して、DirectSoundで音楽を鳴らしてみる。



DirectSoundでの音楽再生は充分満足できたので、これでOK。しかし、新たな問題が。「life」はスーパーファミコンみたいなグラフィックを意識しているので画面が小さい(256*224)。そのため、プレイ時にはタテヨコ2倍くらいで表示したいのだが、やってみるとどうもぼやっとしている(ニアレストネイバーで補間される)。ドット絵の魅力を活かすためにもっと単純に拡大してほしいのに・・・。



調べてみるとGlTexture.GlobalOption.Smooth = false;で単純に拡大(バイリニア補間)できるようになるみたい。でも、ならない。と、思ったら別のPCならできた。どうやらビデオカードのOpenGLへの対応具合によるらしい。むむむ。



どうもうまく拡大できないのが気に入らないので、DirectXでやってみようと思い立つ。DirectX9からはManaged DirectXつうのがあって、VB.NETやC#から簡単に使えるらしいのでやってみる。おお!たしかに簡単!テクスチャの補間方法も以下の文でバイリニア補間にできたので、描画まわりもDirectXに移行。
//deviceはDirect3Dデバイス
device.SamplerState[0].MagFilter = TextureFilter.Point;
device.SamplerState[0].MinFilter = TextureFilter.Point;



現在、DirectXを使ったコードに書き直し中&コード整理中。




細かい部分・再利用できそうな部分に関してはまた別の記事で。

posted by ラボ長 at 07:44| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック