アフィリエイト広告を利用しています
 

2024年10月12日

【ゲーム制作】シューティングゲーム 第5回






4_19_1.png

シューティングゲーム 第5回です。
今回はメモリマップを作成します。

前回設計した内容に沿って必要なメモリ振りをします。







































アドレスデータ名備考
A000〜A2FF面データ(横32×縦24=768バイト)768バイト
B000〜B9FF敵データ(出現位置・移動パターンデータ)2,560バイト
BA00〜BB5F効果音データ352バイト
BB60〜BCFF敵・敵弾変数(敵10、敵弾16、26×16バイト=416バイト)416バイト
BD00〜BFFF疑似スクロール用FONTデータ(4FONT×4FONT×8バイト×3ブロック×2(パターン・カラー)=768バイト768バイト
C000〜D7FFマシン語エリア(走査線割り込み処理含む)6,144バイト
D800〜D9FFBGMデータエリア512バイト
E000〜E0FF変数エリア256バイト

今作から、走査線割り込み処理を別プログラム化せず、マシン語プログラムの中に組み込みます。
スクロールシューティングの場合は、面データが必要なのでその分のメモリを取られますが、今作は疑似スクロールなので、面データで必要なのは敵の出現位置と行動パターンデータくらい。
あと気になるのは各面、ボスのプログラムが大きくなるようでしたら、&HA000~&HAFFFを使います。
「ロールプレイングゲーム」以来の充実ぶりですね。

次回は、イメージディスクを作成します。
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2024年10月11日

【ゲーム制作】シューティングゲーム 第4回






4_19_1.png

シューティングゲーム 第4回です。
今回はプログラムの割り振りを考えていきます。

シューティングゲームは、全ジャンルの中で最も処理速度を要します。
そこで、今回制作するにあたり、プログラムの流れを見直します。
これまでの作品では、メインプログラムと、走査線割込みプログラムの2系統あり、それぞれで下記処理を行っていました。








メインプログラム走査線割込み

プレイヤー処理

プレイヤー弾処理

敵処理

敵弾処理

当たり判定

背景処理

BGM・効果音演奏

SPRITE水平ライン5枚以上点滅



しかしやはり走査線割込み内でVRAM処理するのはリスクが高いし、定速で動作させる必要のない処理が重いものはメイン内で処理させたい。
よって、今作ではこうします。









メインプログラム走査線割込み

プレイヤー弾処理

敵弾処理

SPRITE水平ライン5枚以上点滅

当たり判定

背景処理

プレイヤー処理

敵処理

BGM・効果音演奏



こうする事で、VRAM操作は全てメイン処理内になります。
当たり判定などの重い処理もメインプログラムでする事で、プレイヤーや敵の動作はスムーズになると思われます。

過去未完成の製作ゲームの中にはプレイヤーと敵だけ走査線割り込みに振ったものはありましたが、ここまでいろんなものを振り分けた事はありません。
上手くいくかどうか、一種の挑戦です。
まぁ、上手くいかなければ都度、戻していきます。

どれが正解なんですかね?
うーん、皆さんはどのようにしてるのかな…?

次回は、メモリマップを作成します。
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2024年10月10日

【ゲーム制作】シューティングゲーム 第3回






シューティングゲーム 第3回です。
今回は画面構成を考えていきます。

とりあえずはこんな感じ。
8_4_1.png
画面両サイドに崖を描いて、「キャラクタパターンジェネレータテーブル」をシフトさせスムーズにスクロールしているように見せます。
単純にならないように、通過不可能な地形キャラとして「岩」などを流します。(破壊不可能)
また、「海藻」や、「イソギンチャク」を固定砲台として流します。(破壊可能)

最近シューティングゲームってあんまり見かけないですね。
私だけ?

次回は、シューティングと言う処理速度が求められるジャンル制作につき、改めてプログラムの流れ、割り振りを考えたいと思います。
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2024年10月09日

【ゲーム制作】シューティングゲーム 第2回






4_19_1.png

シューティングゲーム 第2回です。
今回は詳細設計をします。

まずは、ゲームを盛り上げるストーリー。







■■■ ストーリー ■■■

ある日、突然海の生き物が人を襲いだした!

事態を重く見た各国は、国際機関「海洋生態調査研究所」に、原因調査を依頼した。

早速「海洋生態調査研究所」が調査に乗り出したが、調査は困難を極めた。

ただでさえ数が多い上に、サメなど元々狂暴であった種から攻撃を受けたのだ。

更には、鯨をはじめとする大型生物にも阻まれ被害は増える一方であった。

人材も財源も尽き、困り果てた「海洋生態調査研究所」は一人の潜水士に最後の希望を託すことにした。

最強のハンターと呼ばれた男に…。

高校当時、このストーリーはありませんでした。
MSX1全盛の頃を思い出しながら、こんなタイプのストーリーが多かったよなって、感じで作りました。
因みに、「グラディウス」や「ゼビウス」なんかもそうですが、なぜすべてを主人公一人に託すのでしょうね?

前回考えたゲームシステムを基にゲームになるように設計していきます。

































■■■ ルール ■■■
全3面
ボスは、1面鯨、2面マンボウ、最終ボス大王イカ
画面は固定で、「キャラクタパターンジェネレータテーブル」シフトによる1ドットスクロール
敵は隊列を組んで攻撃
敵は直接プレイヤーを狙撃するタイプの弾を吐く
敵は10匹、敵の弾は16発
敵は耐久力あり(銛3発耐えるなど)
プレイヤーは最初3人、50,000点ごとに1人増える
プレイヤーの弾は銛で、同時発射数は2本

敵を倒すと稀にパワーパップアイテムが出現

(青:速度 赤:攻撃力 黄色:バリア)

パワーアップ速度は4段階
パワーアップ攻撃力は3段階(当たり判定幅も拡がる)
パワーアップバリアはプレイヤーの上に付く、5ダメージ耐える
それぞれパワーアップがフルの時に取ると画面内の敵が全滅する

とりあえず、ゲームシステムはこんなところでしょうか。

次回は詳細設計の続き、画面構成を考えていきます。
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2024年10月08日

MSX40周年記念イベント中止・延期





4_19_1.png

え?
先日書いていたMSX40周年記念イベントが中止、来春への延期となったようです。(2024年10月1日記事参照「MSX40周年記念イベント」)
んー、残念!
なんとか行けるよう、あれこれ調整中だったのですが…。

でも、延期。
来春かぁ。
作品出展、今から準備すれば何とか間に合いそう。
今回のシューティングゲームで習作は終了となるので、いよいよちゃんとしたサイズのゲーム制作に移ります。
フロッピーディスク1枚に収まるサイズくらいで、ロールプレイングゲームなんてどうかしら?
イースタイプか、ドラクエタイプのどちらにしよう。

それとも最初に言っていた通り、本格的な製作再開一本目は「ケベロン」シリーズで行こうかしら?(2023年4月22日記事参照「ゲームデータが見付からない…」)
この次回作考える時間が楽しい。

ちょっと「シューティングゲーム」制作行き詰ってますけど、やる気出ました。
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | MSX雑記

2024年10月07日

【ゲーム制作】シューティングゲーム 第1回






4_19_1.png

シューティングゲーム 第1回です。
前回書いた通り、過去の未完成作「海底大冒険」を制作します。
原則的に過去作の仕様を引き継ぎ、敵の隊列攻撃や狙撃弾など、新しい要素を入れていきたいと思います。

ざっくり記憶にある要素を列挙します。
・プレイヤーは潜水士、弾は銛
・敵は海の生物、弾は毒泡(白い〇)
・面の最後に大ボス
・3面クリアでエンディング
・背景は疑似縦スクロール
・パワーアップアイテムで強化
…こんだけ?

では、個々に追加する要素を列挙します。
・敵は編隊攻撃
・敵の弾は狙撃型
・通過不可、破壊不可のキャラクタでマンネリ化を防ぐ
…等々。

シューティングゲームだと、敵の移動パターンが多すぎるので、制作進めながら考えていくようにします。

次回は、このルール(ゲームシステム)を基に詳細設計をします。
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2024年10月06日

シューティングゲーム






製作第7作目決まりました。
7ジャンル制覇の最後となる「シューティングゲーム」で決定です。

なぜ、「シューティングゲーム」を最後に持ってきたか?
実は作りたい物があって、出来る限り良いものにしたく、思案していたからです。
作りたい物…、それは高校パソコン部で完成させることのできなかった「海底大冒険」です。(2023年08月04日記事参照「たしかこんなんだった…」)
8_4_1.png
製作途中のディスクもなく、何もかも自分の記憶にしか残っていない作品…。
しかし、「MSX回顧録」書いているうちに、最後まで完成させたい思いが沸きあがってきました。

と言う訳で、制作するものは決まりましたが、「シューティングゲーム」製作するのも凄い久しぶりです。
多分、過去に制作した作品のジャンルでは一番多いと思います。
ただ、敵の編隊攻撃や、狙撃弾などはMSX1の公開作ではやってない。
元の仕様のあるゲームですが、過去の仕様をある程度は引継ぎますが、過去作そのまま再現では面白くないですよね。
折角今作るので技術的には上の物を作りたいですね。

新旧色々ごちゃまぜな作品になりますが、それはそれで面白そう。
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2024年10月05日

Laboratoryテーマ29「メッセージを1ドットスムーズスクロールで流したい」そのC







Laboratoryテーマ29「メッセージを1ドットスムーズスクロールで流したい」そのCです。
完成しました!!
メッセージ1ドットスムーズスクロールです!

24_9_17_1.png

とりあえず今回は、上手くいくかどうか分からなかったのでSCREEN1を採用しました。
おかげで、処理速度的には「早すぎる」。
結構な無駄ループで時間稼ぎしています。

メッセージスクロールなら、そんなに速度は要らないだろうしSCREEN1.5を使ってグラデーション付きのFONTを流しても綺麗でしょうね。



うーん、綺麗で気持ち良い!

24_10_5_3.png
プログラムの効率化してないので、無駄に長いです。























アドレス内容
&HA000〜メッセージデータ(MAP8 EDITOR)
&HB000〜FONTデータ(FONT EDITOR)
&HC210〜シフトオーバーデータ退避ワーク
&HC180・&HC181メッセージデータ表示先頭アドレス(初期値:&HA060(最初に入れ替えるのが「B」なので))
&HC182スクロールフラグ(0:小文字 1:大文字)
&HC183シフトカウンタ(0〜7)

MSX1でも発想次第で、いろんな事が出来るもんですね。
今回はたまたま見かけた動画のおかげでいい勉強になりました!
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | Laboratory

2024年10月04日

Laboratoryテーマ29「メッセージを1ドットスムーズスクロールで流したい」そのB







Laboratoryテーマ29「メッセージを1ドットスムーズスクロールで流したい」そのBです。
プログラムが完成したので、メッセージスムーズスクロールのテストデータを作成します。
とりあえずメッセージを流せればいいので、物語のプロローグ的な物があればいいな…。

そうだ!
MicrosoftのAIであるCopilotに考えてもらおう!

…凄い!

これが、Copilotが考えてくれた、プロローグです。




プロローグ

遥か昔、世界は光と闇の二つの力によって支配されていた。光の力は平和と繁栄をもたらし、闇の力は混沌と破壊をもたらした。二つの力は永遠に対立し、均衡を保っていた。

しかし、ある日、闇の力が突如として増大し、世界は暗黒に包まれた。光の守護者たちは必死に抵抗したが、次々と倒れていった。最後の希望として、光の神は一つの予言を残した。

「選ばれし者が現れ、闇を打ち破り、再び光をもたらすであろう。」

時は流れ、予言の存在は忘れ去られた。しかし、闇の力は再び動き出し、世界は再び危機に瀕していた。そんな中、平凡な村に住む若者が、運命に導かれるようにして旅立つことになる。

彼の名はアレン。彼の冒険が、世界の運命を変えることになるとは、誰も予想していなかった。


単純ですが、自動ってのが凄いです。

それを安定のBing翻訳で翻訳します。




prologue

Long ago, the world was ruled by two forces: light and dark. The forces of light brought peace and prosperity, while the forces of darkness brought chaos and destruction. The two forces were forever in opposition and in equilibrium.

However, one day, the power of darkness suddenly increased, and the world was enveloped in darkness. The Guardians of Light resisted desperately, but fell one after another. As a last hope, the God of Light left a prophecy.

The Chosen One will come and break through the darkness and bring light again.

Time passed, and the existence of the prophecy was forgotten. However, the forces of darkness were set in motion again, and the world was once again in danger. Meanwhile, a young man living in an ordinary village is forced to set off on a journey as if guided by fate.

His name is Allen. Little did anyone expect that his adventure would change the fate of the world.


いつも通りの手順でMSX1に取込みます。
そして、メッセージ編集加工用プログラムを作成し、1行目は全て小文字に変換し、1行の幅を32文字で統一。
その下の行に、大文字の同じメッセージの行(キャラクタコードを-&H20)を追加します。

「MAP8 EDITOR」で開くとこんな感じ。
24_9_17_3.png
メッセージ中のピリオドやカンマ、カギ括弧、感嘆符等は別のFONTに変更します。

次回は実際にプログラムを動作させます。
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | Laboratory

2024年10月03日

Laboratoryテーマ29「メッセージを1ドットスムーズスクロールで流したい」そのA







Laboratoryテーマ29「メッセージを1ドットスムーズスクロールで流したい」そのAです。
画面のチラつきと言うかガタつきの解消方法を考えます。

なぜチラついたり、ガタついたりするのか?
チラつきは、「空白になっていた大文字にパターンを戻す」、「文字パターンのある小文字を空白にする」時の書き換え処理に時間的ズレがあり、描き換え中の状態が一瞬でも表示されてしまうため。
ガタつきは、上記状態と併せて24行分(最大32×24=768バイト)のメッセージの書き換えを行っているからです。

チラつきを抑えるには、どうすればよいか?
文字パターンデータを一気に戻さなければいいです。
では、どうするか?
大文字から小文字へ8バイト上シフトした後、今度は小文字から大文字にシフトするようにします。
24_9_23_1.png
これで、大文字と小文字間で永久ループする形になります。

24_10_3_2.png

次に、ガタつきを抑えるには、書き換えデータ数を減らせばいいです。
上記変更で、大文字と小文字間をシフトループするようにしたので、8ドット上にシフトした時(小文字に文字パターン、大文字は空白状態)、最初は大文字行だけを2行上にスクロールさせます。
24_9_23_2.png
24_9_23_3.png

次に8ドット上にシフトした時(小文字は空白、大文字に文字パターン)、今度は小文字行だけを2行上にスクロールさせます。
24_9_23_4.png
24_9_23_5.png
これだと1回のメッセージ書き換えは、12行分(最大32×12=384バイト)で済みます。
更にこの方法だと、常に空白行と空白行を入れ替えるだけなので、チラつきません。

ちなみにVRAMの描き換えは、BIOS(&H005C)を使っています。
OUT命令を使えば、より一層綺麗にできるはず。

24_10_3_3.png

次回、テストデータを用意します。
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | Laboratory
検索
<< 2024年11月 >>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
広告
最新記事
ブログランキング
にほんブログ村 ゲームブログ ゲーム制作へ
プロフィール
J-JSOFTさんの画像
J-JSOFT
高校時代、あれほど熱心に取り組んだMSXに触れなくなって30年余…。 MSXエミュレータとの出会いで、MSX愛が再燃中。
プロフィール
カテゴリーアーカイブ
ファン
QRコード