ぼくわゲームクリエーター
今日はちょっとクリエイターっぽくゲームを作ってみました。 プロデューサー俺、その他全パート募集的な感じで。
これはひどい
中央にいる落書きにしか見えないプレイヤーキャラの足が胴から離れてるとか、爪先が地面にめり込んでるとか、 足元の影が透過抜けてないとか、そんな指摘は些細な問題にしかならない程の素晴らしいショボさ。 ちなみに背後の壁に近づくと、今度は頭が壁にめり込みますよ?
落書きパーンチ!
静止画なので伝わらないのですが、生意気にも殴られた敵がノックバックで後ろに吹っ飛んでいます。
というわけで、今後メンテナンスもサポートも行われないことが決定した XNA Game Studioで作ってみたゲーム(になろうとしている何か)なんですが、 2D描画とか音楽、効果音関係のライブラリは一通り揃ってるので、2Dゲームを作るなら かなり手っ取り早いんじゃないでしょうか。 サードパーティーのライブラリほどライセンスに神経質になる必要も無いですし。
3Dにしても、モデリングをコード中で直接記述するような画像くらいのローポリと、 デフォルトの平行光源だけしか使わないゲームならすぐに実装出来てしまいました。面白いかどうかは別問題。 板っ端1枚に描かれた「敵」がヌルヌル動いて迫ってくるシュールさは別方向で面白くなってしまいます。 初めて買ってもらったパソコンで、N88-BASICで頑張ってた頃の感動再びですな。 HLSLを頑張って記述すればきっともっと格好いいゲームができるんでしょうが、まずは モデリングをまともにやるところからですか、そうですか。
というか、GPUアクセラレーション自体が通常のデスクトップでも当たり前に使われるようになってきましたから、 もうDirectXだけを別ライブラリにする必要がなくなってきたって事なんですかね。
ところで、XNA1.0とか、Managed DirectXの頃なんかにはDrawPrimitiveを1回増やすだけで 目に見えて描画が遅くなってたものなんですが、画像のは敵1体、影1枚、プレイヤーのパーツ1個ごとに 別々にDrawPrimitiveしているというウンコ極まりない実装なのにフレームレートが余裕で200FPS超えしています。 もちろん当時使っていたGeForce9500から今のRADEON HD6310ではGPUの性能が大幅に進化しているというのもあるんですが、 何気に内部で気の利いた最適化してくれてたりしてますか? 無駄なDrawは1回でまとめてGPUに送るとか。
それにしても、こういう同じオブジェクトを大量に描くときって、頂点バッファに1個分だけ置いて描く数だけDrawするのか、 それぞれのキャラを頂点バッファにおいて1回のDrawで一気に描くのか、どっちがいいんですかね。 まぁ画面全体でも数えられるくらいのポリゴン数なんで、どっちでも大差ないっちゃ無いんですが。