ゲーム開発記録
テクスチャ半透明合成で輪っかの太さを変えようプロジェクト。 まずは例の乗算で考えたやつをやってみた。 一番左が元絵で、順に2枚、4枚、8枚重ね。結構まともな結果になった。 しかしこないだ気づいたように、色つきだとダメなのよね乗算。 一番左の元絵は…
使えんのかどうかわからんけどとりあえずやってみようの精神でやってはいるが。 うまくいかない。 やっぱ入力と出力に同じサーフェースをセットするのはまずいか・・・。 しかしこういうプログラムって最後までやらないと見える結果が出ないから、切り分けて…
時間を無駄にしないスキルがほしいなあ。
詰めはいろいろと甘いけどそろそろ区切りにしたい。 爆発エフェクトを完成させたら弾幕シューティングは終了にしよう。 明日には終わる予定。 次の課題は、似非でなくまともな3Dゲームに取り掛かるつもり。 しかしまだネタが出ない・・・。
ボタンを押すたびに増えるので増やしてみた。 おーおー、なんかすでにそれっぽいぞ。 しかし、これには色々と罠があるのであった。 つづく。 アルファブレンディングとZバッファの相性問題 結構有名な問題だそうな。 まず最初にこの画像。コーンをでかくした…
ここを参考に輪っかを描いて板ポリで加算合成。ツールはGIMPを使用。斑鳩の吸収バリアっぽくなった。 ついでだから減算とか乗算とかも作っといたが使いどころがわからん。
例によって力技で。 複製バッファのvector漁って、鳴ってないバッファがあればそれ鳴らす。 鳴っていないバッファがなければDuplicateSoundBufferで複製してvectorに突っ込む。 とりあえず今は動いてるからいいが、なんともバグだらけっぽいコードになってし…
サウンドを導入
昨日夜更かしして眠いので寝る。 画面全体にかかるエフェクトとかはタスクとしてどうやって実現したらいいんだろうな・・・
ゲームのネタが出ない。
3Dシューティングっぽい視点にしてみた。 対象を中心とした球面上をぐるぐる回るカメラを作りたいんだけどよくわからんので調べ中。
ボスの体力を設定して倒せるようになったのでゲームらしくなりました。 今後フレームワークに実装する予定のもの。 サウンド これは前に書いたのがあるのでOK。 シーン これも前に書いたので大丈夫。 エフェクト 問題はこれだ・・・。 エフェクトに関しては…
#include <hash_map> using stdext::hash_map;VC2005にハッシュマップついてたのまったく知らなかった。</hash_map>
直したら数倍速くなった。 STLのmapが直感的で使いやすくて個人的に大好きなのだが、たしか内部の実装がツリーだったなこれ。 要素の取得にO(logN)かかっちゃうのはいやん。ハッシュマップくらい標準に入れてほしいよね。 しかしフレームワークの肝になって…
空間分割を取り入れる前になんとかしてもうちょっと高速化したいと思って考えていたが進捗なし。 とりあえずおめでとうございます。
デバッグビルドだとアホみたいに重い。弾100発くらいでFPSが60を切り始める。 判定対象は自機ひとつだけなので判定回数は100そこらなんだが。VSYNCなら30FPSに落ちてスローになるからまだマシだが、タイマだとフレームスキップするんでもう飛びまくりで、デ…
とりあえず力技で。 まだ作りかけでいろいろバグってる上に遅い。
弾情報の受け渡しでvectorにpush、popするやり方を固定配列にしようと思ってたのを完全に忘れてた。 そこで実験。 描画を背景だけにして、1000万の弾情報要素を出し入れするのにかかる時間を測定。 手法は次の4種類。 1.静的に確保した固定配列 CBulletInfo …
適当な弾幕パターンも3つほど作れたので、いよいよ衝突判定だ。 ブロック崩しのときのように、それぞれのオブジェクトタスクの更新メソッドの中で自分と対象の座標を参照して判定する、というのはちょっとダサいので、衝突判定を専門に行うタスクを別に作っ…
頭が固くて、精度とかスケーリングとかそういう話を上手く理解できない。 まず訂正から。yaneSDKのatanは65536分割と書いたが、出力の角度を1周で0から65535としているだけで、それを65536に分割しているわけではなかった。 yaneSDKでの実装は下のようにな…
vectorにpushしてpopする方式でやってみた。 環境 Core2Duo E8400 RADEON HD4850 DDR2-800 2GB 結果。1フレームあたり4000発くらいになるとFPSが60を切り始める。つまり余裕だね。こんな環境で参考にしてちゃダメだね。大体何FPSくらいまでならOKという基準…
とりあえず力技でやる設計を考えた。 弾の情報(初期位置、速度、タイプなど)を格納した構造体のリストを共有データにしておいて、弾幕を生成するタイミングになったらボスタスクがそのリストに弾情報をpushする。そんで弾タスクがリストを調べて、要素があ…
ということで今日はFPS調整の実装を完了しただけになってしまった。 次はボスの弾幕を出したい。が、どうやればいいんだろう・・・。 自機ショットみたいに3発ずつしか出ないならトリガを3個共有データとして用意すればいいんだが、弾幕となるとそうはいかな…
とりあえず自機のだけ。あと今までFPS調整がVSYNCオンリーだったのをタイマ同期もできるようにした。 今は少数を切り捨ててやってるので16ms固定になってるけど、整数にして誤差が積もらないようにする方法もやっとわかったっぽいので、明日作る予定。以前か…
ボスをくるくる回してみた。それだけ。なんという実装の遅さ。 共有しないローカル変数もデバッグウィンドウに出せるようにした。よく考えたらデバッグウィンドウクラスはシングルトンにしてたので渡すなんざ容易でした。 ただしローカル変数の保持元が消え…
とりあえず自機とボスを表示するところまで。 ソースはバーやボールなどのキャラクタオブジェクトタスクの部分だけを自機とボスに差し替えれば動いた。 内容が簡単なうちはこういう各モジュールの独立性を維持するのは簡単だけど、この先に崩れていかないよ…
VisualStudioをインストールしなおさないといけなかったので・・・。 その前に先日完成したブロック崩しをちょっと動かしてみようとしたら動かない。そういえばVC2005はランタイムを入れとかないとダメなんだったな・・・VC開発者が見る分には入ってるからい…
なぜかというと、新しいPCをセットアップしていたため。 手際が悪いのか、組み立てもインストールも時間がかかってしょうがない。
まず先に。ブロック崩しのバイナリとソースをうpしたのでほしい方は昨日の記事をば。 で、次の作品は見た目3Dシステム2Dの弾幕シューティング。まずはラフイメージ。 赤でjpgはマズイと思ったときにはすでに保存していた。 これだけじゃ意味不明なので仕様…
まだ衝突判定とか不自然なところがいっぱいあるけどとりあえず区切り。 赤球はライトで表現。 DirectXでマウスのスクリーン座標やクライアント座標の取得ってできないのか。 WindowsAPIでできるから問題はないんだけど、ちょっと気になる。 さて、明日からは…