学校の課題でチーム制作でゲームを作ることになりました。
最初は「ゼルダとシレンを足したようなゲーム」というイメージで始めました。
ゼルダのダンジョンに階があってフロアがランダムで生成されていく感じですね。
ですが平面のゲームを作っても他チームとの差がなくなるということで疑似立体のゲームを作ることに・・・
疑似立体といってもスーファミのゴエモンのような感じでやろうかなと思ってます。
マップデータも3次元配列で作らないといけないし、あたり判定にもZ軸が加わってきて大変そうだな・・・
と色々と考えていてふと不思議に思ったんですが。
ゴエモンやファイナルファイトのようなベルトスクロールのゲームって
オブジェクトの描画する順番ってどうなってるんでしょうか?
ああいうゲームはZ軸が存在するので手前にいるものは必ず奥にいるものよりあとに描画されていますよね。
じゃないと手前にいるのに奥のキャラの後ろに描画されるなんてことになりますからね。
一番最初に思いついたのは全部のオブジェクトを調べて、手前にいるものから順番に描画していくというすごく単純な方法。
もしかしたらベルトラインだからある程度の区切り(手前・真中・奥)でその中で更に順番を決めて描画しているのかもしれない・・・
他にも何か方法があるのでしょうか?
チーム制作
Re: チーム制作
昔のプログラマーってすごいですよね。2進数でプログラミングしてた人たちとか。
>描画の都度ソートしていたら重くなるので
これは描画する前にリストをソートすると重くなるという意味で
>描画するときに前後を入れ替えることだけをします。
というのは「描画する先にすでに何かが描画されていれば入れ替える」ということでしょうか?
>描画の都度ソートしていたら重くなるので
これは描画する前にリストをソートすると重くなるという意味で
>描画するときに前後を入れ替えることだけをします。
というのは「描画する先にすでに何かが描画されていれば入れ替える」ということでしょうか?
Re: チーム制作
2進数でプログラミングというとパンチカードですかね。
そっちの世界は知らないのですが。
8ビット時代はPC本体にオンメモリでアセンブラを動かすメモリが無かったので、ノートにニーモニック書いて、本に載ってる一覧表見ながら16進数に直して、その16進数をパソコンに入力するということをしました。
ハンドアセンブルって言うんですけど、手を動かしているのでわりとすぐにニーモニックと16進数の対応を覚えてしまって直接16進数でプログラムできるようになります。
一発でソートが完了しないパターンがありますけど、ゲームの動いている中では概ね気にならないレベルです。
そっちの世界は知らないのですが。
8ビット時代はPC本体にオンメモリでアセンブラを動かすメモリが無かったので、ノートにニーモニック書いて、本に載ってる一覧表見ながら16進数に直して、その16進数をパソコンに入力するということをしました。
ハンドアセンブルって言うんですけど、手を動かしているのでわりとすぐにニーモニックと16進数の対応を覚えてしまって直接16進数でプログラムできるようになります。
ソートを独立した処理とすると、まったく優先順位に変動のないときでもループを回すことになるので非力なマシンだとけっこう痛いコストになります。BEAT さんが書きました:>描画の都度ソートしていたら重くなるので
これは描画する前にリストをソートすると重くなるという意味で
描画してしまったものを入れ替えることはできないので、描画ループ内で要素ごとに次の要素が優先順位高かったらお先にどうぞってふうに自分をひとつ後回しにする(入れ替える)ということです。BEAT さんが書きました:>描画するときに前後を入れ替えることだけをします。
というのは「描画する先にすでに何かが描画されていれば入れ替える」ということでしょうか?
一発でソートが完了しないパターンがありますけど、ゲームの動いている中では概ね気にならないレベルです。