2024年12月03日
【ゲーム制作】シューティングゲーム 第52回
シューティングゲーム 第52回です。
今回は、敵出現設定を組んでいきます。
敵出現設定とは、敵出現データ(スクロールシューティングで言うなら、「マップのこの地点でこの敵が出現する」スケジュール表のようなもの。)を読み込んで、スケジュール通りに指定の敵を出現させる設定です。
スクロールシューティングのように面データがあれば、面データ内に組み入れて設定できますが、今作はマップが存在しません。
よって、別途敵出現データを用意します。
データとして設定するのは、前回設定した編隊a{引数。
「マップのこの地点で円移動キャラクタが8匹隊列組んで出現!」を設定します。
今作は、1スクロール(8ドット)当たり、1データ(1バイト)。
1スクロールに、1つの編隊b出現させます。
もし、同じタイミングで別々の編隊b同時出現させたければ、2バイトにするか、そういった編隊b組む事で対応可能です。
データ1バイトの形式は下図のとおり。
1バイトを上位4ビットと下位4ビットに分け、それぞれ0〜15まで指定可能です。
上位4ビットを編隊aA下位4ビットを引数とします。
例えば編隊2の敵を6機出現を設定したければ、&H26と言った感じです。
もし、引数指定にX座標(256ドット)など、15を超えた値が必要な時は、引数に16掛ける(15×16=240、キャラクタが16ドットなので240が右端)など、多少工夫する事で、対応可能です。
それでも、どう工夫しても編隊aA若しくは引数が16を超える場合は、1データ2バイトにせざるを得ませんね。
1面の長さは、今作では1面当り256バイトとします。
2分から3分くらいかな?(標準がどのくらいか判りませんが…。)
256FONT分スクロールしたらボスとなります。
で、今は敵出現データにテスト用に全編隊b設定しておきます。
(&H00は「何も出現しない」です。)
次回は、敵出現設定の続きを組んでいきます。
2024年12月02日
【ゲーム制作】シューティングゲーム 第51回
シューティングゲーム 第51回です。
今回はちょっと一息、ゲームの進捗管理をします。
ロールプレイングゲームの時にやって以来です。
これまでは進捗管理しなければならないほど工程がなかったので必要なかったのですが、シューティングゲームはそれなりにあるので必要です。
【ゲーム製作進捗】
工程 | 作業 | 進捗 |
1 | ゲーム設計(規模、詳細、メモリマップ) | 完了 |
2 | シナリオ作成 | 完了 |
3 | オープニグ作成 | 完了 |
4 | タイトル作成 | 完了 |
5 | マップ設計(1画面) | 完了 |
6 | FONTデザイン | 完了 |
7 | SPRITEデザイン | 完了 |
8 | 疑似スクロール | 完了 |
9 | プレイヤー移動 | 完了 |
10 | プレイヤー弾発射 | 完了 |
11 | 敵表示 | 完了 |
12 | 敵の弾狙撃設定 | 完了 |
13 | 敵の弾移動 | 完了 |
14 | BGM作曲(5曲) | 完了 |
15 | BGM演奏 | 完了 |
16 | SPRITEシャッフル | 完了 |
17 | 衝突判定(プレイヤーVS敵の弾) | 完了 |
18 | 衝突判定(敵VSプレイヤーの弾) | 完了 |
19 | 衝突判定(敵VSプレイヤー) | 完了 |
20 | 衝突判定(敵・敵の弾VSバリア) | 完了 |
21 | 敵移動(LABO4種) | 完了 |
22 | 敵移動(LABO亜種3種) | 完了 |
23 | 敵移動(新種2種) | 完了 |
24 | 敵移動(直進系3種) | 完了 |
25 | 敵移動(16方向弾) | 完了 |
26 | パワーアップ | 完了 |
27 | 敵出現設定 | 未 |
28 | 敵出現データ作成 | 未 |
29 | 敵編隊pン定 | 未 |
30 | 敵編隊cfータ作成 | 未 |
31 | 効果音作成 | 未 |
32 | エンディング | 未 |
33 | ボスデザイン | 未 |
34 | 敵1面ボス | 未 |
35 | 敵2面ボス | 未 |
36 | 敵3面ボス | 未 |
うーん、全体で70%と言ったところでしょうか…。
残りの内容的に、簡単にはいかなさそう…。
しかし、次回作を考えているので、年内には終わらせます!
次回は、敵出現設定を組んでいきます。
2024年11月30日
【ゲーム制作】シューティングゲーム 第50回
シューティングゲーム 第50回です。
今回は、敵の初期値データを組んでいきます。
敵1機に必要な変数は、今作は16個。
変数+n | 用途 | 詳細 |
0 | 種類 | 敵のキャラクタパターン先頭 |
1 | Y座標 | |
2 | X座標 | |
3 | アドレス(下位) | 行動パターンデータ使用時 |
Y座標カウンタ | 32方向移動用 | |
4 | アドレス(上位) | 行動パターンデータ使用時 |
X座標カウンタ | 32方向移動用 | |
5 | 移動方向カウンタ | 0:左下 1:左上 2:右上 3:右下 4〜:他 |
6 | 読取方向フラグ | 0:上から下へ 1:下から上へ |
7 | 行動パターン | |
8 | 左右反転 | 0:通常 1:反転 |
9 | アニメカウンタ | |
10 | 待機カウンタ | 0:行動中 1〜:待機中 |
11 | キャラクタ向き | 0:右向き 1:左向き |
12 | 色 | |
13 | 耐久力 | &HFF:無敵 |
14 | Y方向速度 | 32方向移動用 |
15 | X方向速度 | 32方向移動用 |
原則、各データの用途は上表の振分けとしますが、行動パターンによっては「3」や「4」のように、異なる用途に使う事もあります。
上表の用途に則って、1面の編隊vの初期値データを組んでみました。
2行で1編隊uェ、15種類の初期値データとなります。
今作ではしませんが、編隊ごとに1匹当たりのスコアを変えたいとか、コナミの「グラディウス」のように決まった敵が決まったアイテムを落とす等したい時は、変数を増やして対応します。
次回は、敵出現設定を組んでいきます。
2024年11月29日
【ゲーム制作】シューティングゲーム 第49回
シューティングゲーム 第49回です。
今回は、敵の動きのパターンと、編隊b紐づけていきます。
編隊bチて何?と言われそうですが、前回までで敵の動きを組みましたが、あくまで行動パターンだけです。
ゲームの敵として出現させるには、出現位置と敵の種類や色、行動パターン、耐久力などの「初期値」を設定する必要があります。
それらを設定するのが、編隊bナす。
例えば、編隊1は、「耐久力1の「スナメリ」を青色で、Y座標を上画面外、X座標をプレイヤーの反対側の端から、8匹の隊列で出現させる」と言った設定をします。
同じ敵のキャラクタでも、行動パターンが違うなども、別々の編隊bノ組み入れれば可能となります。
また、敵出現時に編隊bニ一緒に引数も設定することで、同じ編隊bナ移動速度を変えたりとか、出現するX座標を変えたりできるようにします。
1面分です。
こんな感じです。
1面の行動パターンは8種類の予定なので、使われない敵もいます。
次回は、敵の初期値データを組んでいきます。
2024年11月28日
【ゲーム制作】シューティングゲーム 第48回
シューティングゲーム 第48回です。
今回は、急遽、背景FONTの描き直しをします。
描き直しの理由はいくつかあります。
一向に画面のブレが直らないのと、全体の処理速度が遅くなってきたからと言うのもありますが、一番はやはり、「敵キャラクタが見難い」からです。
今、敵の出現を組んでいて、テストで敵を動かしていると、明るい系の色の敵が見難い…。
うーん、敵の同時出現数減らしてでも、2色キャラクタにするべきだったか…。
1面の主となる背景色である色9(マゼンダ)が明かる過ぎると言うのもありますね。
9を暗くすると6になります。(8は赤だから飛ばし)
となると、画面で使われている色が、6と1(黒)の2色になります。
…カラーシフトの必要なくない?
…と、言う訳で、ブレ対策も含め、カラーシフト無しにします。(シフト処理が半分になる。)
ついでに画面が少しでも暗くなるように、ブラインド処理しときます。
1面
おぉ、敵が見易くなって、画面のブレがなくなった…。
うーん、不本意ですが、敵が見えなくては本末転倒尾なので、止む無しかなぁ…。
2面
3面
次回は、敵の行動パターンと編隊bニの紐付けを組んでいきます。
2024年11月27日
【ゲーム制作】シューティングゲーム 第47回
シューティングゲーム 第47回です。
今回は、急遽、敵キャラクタの改修を行います。
なぜかと言うと、敵の行動パターンの作成中に、既存の敵キャラクタのアニメパターン数のバランスが悪いことが判明。
どういうことかと言うと、「向き」と「アニメーション」が必要な行動パターン(4パターンキャラクタが必要)が多いのに対し、「向き」、「アニメーション」両方あるキャラクタが少なく、「向き」のみ(2パターン)、「アニメーション」のみ(2パターン)のキャラクタが多かったのです。
4パターンキャラクタ
2パターンキャラクタ
そこで、4パターンキャラクタを2種類追加し、2パターンキャラクタ、1パターンキャラクタを削除します。
4パターンキャラクタとして新たに「フグ」を追加し、2パターンキャラクタの「カニ」を4パターンキャラクタ化します。
あと「岩」と「ブロック」の使い道がないので「機雷」1つにまとめました。
あとは、全体的にそれが出来るよう並び替え。
深く考えずにスタートすると、やっぱりこういう事になりますよね…。
1面
2面
3面
因みに、折角描いたのに、使わないキャラクタが出ることも判明…。(トホホ…。)
次回は、敵の行動パターンと編隊bニの紐付けを組んでいきます。
2024年11月26日
【ゲーム制作】シューティングゲーム 第46回
シューティングゲーム 第46回です。
今回は、敵の動きのパターンDを組んでいきます。
あれ?
このパターン追加したら13種類になる…。
まぁ、いいか。
実は、ナムコの「ゼビウス」の破裂弾を作りたかったのです。
ただ、まぁ、弾が16発なので、16方向弾しかできませんが…。
敵のキャラクタを弾にして、敵10匹も弾として使用することで26発まで弾にできる仕組みは組み入れてありますが、今作ではいいかな…。
下半分の16方向弾という手もありますが、見栄え的に全方向にしたい。
D斜め直進移動でLaboratoryテーマ9「32方向弾」の移動ロジックを流用しましたが、32方向弾の初期値設定ロジックの方も流用します。
ロジックそのまま持ってきて、変数と飛び先を修正。
これで16方向弾が完成です。
次回は、ここまでに作成した行動パターンと編隊bニの紐付けを行います。
2024年11月25日
【ゲーム制作】シューティングゲーム 第45回
2024年11月24日
【ゲーム制作】シューティングゲーム 第44回
シューティングゲーム 第44回です。
今回は、敵の動きのパターンBを組んでいきます。
今回はLaboratoryのパターンの亜種を組んでいきます。
「Laboratoryのパターンの亜種」って、何?と、思われるかも知れません。
Laboratoryで4パターン作りましたが、そのパターンの初期値を変更するだけで変わった行動パターンが作れるのです。
例えば、移動する向きや、読込データを変更します。
具体的にGの動きをさせるには、横半円の行動パターンを使い、初期値を下表のように変更すれば可能です。
行動パターンbヘ同じですが、読込アドレスを@円回転の物を利用しています。
これだけで、プログラム組まずに新しい行動パターンが結構作成できます。
今作はそこまで行動パターンが要らないので、とりあえず特徴のあるもの3つ。
次回は、敵の動きのパターンCを組んでいきます。
2024年11月23日
【ゲーム制作】シューティングゲーム 第43回
シューティングゲーム 第43回です。
今回は、敵の動きのパターンAそのAを組んでいきます。
F斜め移動は、どこまで角度を細かく設定するかで、大きくロジックが変わってくるので、かなり悩みました。
最終的に32方向弾と同じ、11.25度刻みで下部180度に直進する事に決定。
Laboratoryテーマ9「32方向弾」から、移動量データと移動ロジックを流用します。
この中の、32方向への移動量データを活用する事で11.25度刻みの角度で斜め移動が可能となります。
90度分を0〜7の傾きとして、0〜3のエリアを指定するだけで、その方向に移動します。
実は過去の公開作では、斜め方向は45度しか移動していません。
次回は、敵の動きのパターンBを組んでいきます。