「 熱血硬派くにおくんシリーズ!」 
 ウィキ情報
 
・くにおくん  ドッジボール部  ・サッカー編  ・ダウンタウン熱血物語  ・ダブルドラゴン
 <熱血行進曲> ●クロスカントリー 
敵のコース処理はどーやってるの??
画面のスタート地点からゴール地点の最短コースを計算してるんじゃないの?
いやいやファミコンだよ! そんなプログラム組み込んだら、動かないよ!!

実は、データーテーブルで処理している!
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支援ソフト
無敵モード!
  新企画『熱血番長きしもとくん』スタート!
(『熱血硬派くにおくん すぺしゃる』)
 
企画者に質問できるらしい!!

熱血高校!くにおくんオンライン
 こんなパチンコもあるんだな!
熱血硬派くにおくん