「 熱血硬派くにおくんシリーズ!」 |
ウィキ情報
・くにおくん ・ドッジボール部 ・サッカー編 ・ダウンタウン熱血物語 ・ダブルドラゴン |
<熱血行進曲> ●クロスカントリー |
敵のコース処理はどーやってるの??
画面のスタート地点からゴール地点の最短コースを計算してるんじゃないの?
いやいやファミコンだよ! そんなプログラム組み込んだら、動かないよ!!
実は、データーテーブルで処理している!
8×8dotに対して、1Byteのデーターを持っている!
1byteは、8bitだから、、
上位4bitと下位4bitに分けて処理している。
16方向で、その位置からゴール地点方向のアングルデータを16進数で表現
背景1マス(8×8dot)に対して、1byteのデータも持ち、
上位4bitを方向データ、下位4bitをoption-flagとして使っている。 聞けばなんでもないデータテーブルだけど、開発時は頭を悩ました! |
|
ゲーム開発の醍醐味
人型キャラクターが主人公のゲームについて語る! |
■一番難しいのが、敵のアルゴリズムだ!
逆にいえば、それがおもしろさの肝であるし、
開発者にとって一番面白いところでもある。。
一般的には、一番強い敵を設計し、後から弱い敵をつくる。
各種パラメーターは、できるだけデーターテーブル化し、
後で微調整できる様にしておく。
パラメーターは考えられるものは全て用意する。
ただし、画面で表現できなければ意味がないから、、
動いたからいいのではなく、面白くなければならないのだ!
|
|
■プレイヤーが行動した結果のリアクションが重要!
プレイヤーが操作した結果の,全てのリアクション(反応)が大切である。
|
実はCPUで動作しているゲーム類(パチンコやパチスロ、アーケード、家庭用含む)の
一番の肝は、乱数ルーチン!(プログラム)である!
知らない方は、なんで??と思うかもしれない!
実はこの乱数発生プログラムが重要なのは、
これを元に確立を算出しているからなのだ!
例えば、なんでも良いんだがジャックポットが出る確率は10%とした場合、
その10%の算出基準をうけもっているわけだ!
ま、どんなプログラムでもきちんと乱数が発生しているだろうけど、
個性がでるのは間違いない。
性格みたいなもの。
1日中ゲーム機は動いている。(ま厳密には半日ぐらいか?)
内部のメモリの内容にもえいきょうを受けるだろうし、、
パチンコ系等は、乱数プログラムルーチンが3個ぐらい入っているものもあるらしい。
ここまでやると、規則性はかなりなくなる。
本当に乱数ぽくなるのだ!
|
|
プログラム
■乱数ルーチンとその活用方法も重要! |
0~255までの256個の乱数出力ルーチンが前提として
自然発生的な方が良い
ただし、
256回で全ての数字が出る方法
袋に256個のボールを入れて取り出す方法。
取り出したボールは戻さない。
256回で全方法
袋に256個のボールを入れて取り出す方法。取り出したボールは戻す。
乱数データを直値として、ゲームに使用するのは良くない。
確立をコントロールしにくい。
乱数データをデーターテーブルのindexとして使用する。
例えば、精度1/16の場合、
16個のデーターテーブルを用意し、、、
車のインジェクションテーブルを想像するといい!
XY方向の2次元テーブル。
そしてZ方向も用意すれば、3次元テーブルデータになる。
これを、ちょこちょこいじって調整していく!
乱数は、このテーブルの中からどれを選ぶかのINDEXとして使うのだ! |
|
メインプログラム |
C言語でいうmainとは違う。
ゲームプログラムでいう、一番中心となるプログラム郡。
全体の流れを構築する。
要は、各処理ルーリンはサブルーチン化する事により、
ゲーム内の処理は、
メインーループの中で行う。
メインループの中では、
1-LOOP ひと通り処理プログラムを
1フレーム 16msec内でのプログラム
1-LOOP 内には、複数のフレーム数のプログラム郡が動作することもある。
ただし、可変フレーム処理はしないのが一般的。
なぜか? それはゲーム中にハイスピードになったり、スローモーションになったりするからである。
最大の処理スピードに合わせたフレーム数で固定する。
4フレームなら、4フレームで固定する。 処理時間が空いても、CPUは何もしない!
時間待ちLOOPをしているだけである。
|
|
プログラムの一連の処理は、
テレビのディスプレイタイミングに合わせて、動作する!
ちょっと難しいかもしれないけど、16msecのタイミングで処理される!
簡単にいうと、テレビ画面は走査線というビームによって表示されている!
1点に光りを当てて光らしている!
残像効果により、一つの画面として見えるのだ!
だから、機械であるビデオカメラで撮影すると、横島の線が見えるでしょ!
それが走査線だ!
左上から右下まで、ビームであてて、表示している!
その表示している間に、プログラムを動かすんだ!
ちょっと、もっと簡単に説明しているHPはないかな? 探してみよう!
図解するとわかり安いんだが、、
走査、映像信号、走査線 ん? わかりにくいか?
ま、
16msecの時間内に処理ができないと、
1フレームで処理できないプログラムは、分割して2フレームにする!
過去、可変フレームプログラムを開発した事があるが、アクション系のゲームだと、
動きや移動スピードに影響がでてしまう。
例えば、一定の速度で移動しているボールが処理スピードに応じて早くなったり、
遅くなったりする。
これではまずい!
そこで、プログラムの中にcheckプログラムを仕込み、
最小フレーム数、最大フレーム数、平均フレーム数を計測できる様にする。
実は、CPUパワーの無いゲーム機でプログラムを開発するには、そういった支援プログラムを
用意した方がはるかに効率が良いし、BUGがおきにくい!
計測の結果
その各フレーム数にもよるが、最大フレーム数で1LOOP処理が終わる様に設計する。
DEBUG支援ソフト
無敵モード! |
新企画『熱血番長きしもとくん』スタート!
(『熱血硬派くにおくん すぺしゃる』)
企画者に質問できるらしい!!
熱血高校!くにおくんオンライン
こんなパチンコもあるんだな! 熱血硬派くにおくん |
|