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

2024年04月03日

【ゲーム制作】面クリア型アクションゲーム 第4回



4_19_1.png

面クリア型アクションゲーム 第4回です。
今回はメモリマップを作成します。

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































アドレスデータ名備考
9C00〜9C4Fキャラクタデータ(20キャラクタ×4FONT=80バイト)80バイト
A000〜A99F面データ(1面16キャラ×11キャラ=176バイト×14面=2,464バイト)2,464バイト
C000〜CFFFマシン語エリア4,096バイト
D000〜D6FFBGMデータエリア1,792バイト
D700〜D9FF走査線割込み処理マシン語エリア768バイト
E000〜E0FF変数エリア256バイト

「えぇっ? マジこんだけっ!?」って感じですよね。
前作のアドベンチャーゲームよりも、さらにスッキリ…。
復帰第一作目でロールプレイングゲーム選んだのが不思議ですよね…。

次回は、前作のプログラムを基にメインプログラムを用意します。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2024年04月02日

【ゲーム制作】面クリア型アクションゲーム 第3回



面クリア型アクションゲーム 第3回です。
今回は画面構成を考えていきます。

とりあえずはこんな感じ。
24_4_2_1.png
パックマンに、じゃんけん要素を取り入れた感じですね。
敵は上段、プレイヤーは下右隅からスタートです。
なんだか涙出てくるくらいノスタルジック…。
ファミコン初期はこの手のゲームの最盛期でしたよね。
あの頃はいい時代でしたよね、一人で市販ゲームが作れた時代です。

ところで最近この手のゲームってあまり見かけないけどあるのかな?

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

2024年04月01日

【ゲーム制作】面クリア型アクションゲーム 第2回



4_19_1.png

面クリア型アクションゲーム 第2回です。
今回は詳細設計をします。

昔の面クリア型のアクションゲームって、ストーリーないもの多いですよね。
あっても無理矢理と言うか…。

と、言う訳でこじつけストーリーです。







■■■ ストーリー ■■■

あなたは「じゃんけん国」の冒険家「ハンド君」。

「じゃんけん国」ではじゃんけんに勝った者が強者であった。

とある迷宮でお宝を発見した「ハンド君」、夢中でお宝を集めている最中、盗掘犯と鉢合わせ。

邪魔をする盗掘犯達をじゃんけんで勝って怯ませながら迷宮内に落ちているお宝をすべて集めろ!

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





























■■■ ルール ■■■
ステージ上のドットを全て食べたら面クリア
ドット1個100点、敵1匹1,000点、面クリアボーナス10,000点

プレイヤーは残数3匹

50,000点で1匹増加(以降、増えない)
1回動くと1キャラクタ分(16ドット)は強制的に動く(枠外脱出対策)

敵は最初3匹(グー、チョキ、パー各1匹)

最大9匹(各3匹)まで増える
面数は14面、2面毎に敵が1匹増加(3面4匹…13面9匹)

敵の移動は曲がり角があればランダムに曲がる

敵は袋小路以外は反転しない

敵に当たった時、敵の手に勝ったら敵は消滅

あいこ、若しくは負けたらプレイヤー1匹消失
敵を倒すとプレイヤーキャラクタが「グー」→「チョキ」→「パー」の順で切り替わる

敵を倒した後、5秒以内に敵を倒したらスコア倍

もう1匹倒したら更に倍の倍々スコア
倒した敵はしばらくしたら左上隅に再出現
ゲーム自体のスピードも面と共に上がっていく

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

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

2024年03月31日

【ゲーム制作】面クリア型アクションゲーム 第1回



4_19_1.png

面クリア型アクションゲーム 第1回です。
どんなゲームにするのかのアイデアを考えていきます。

いくつかのアイデアを列挙します。
・平面迷宮の中を移動
・じゃんけん要素を入れる
・落ちているエサを全部取ると面クリア

列挙したアイデアを基に、ゲームとして成立するように肉付けしていきます。
・敵とぶつかった時、じゃんけんで勝っていれば敵を倒せる
・倒した敵は、しばらくすると復活する
・敵を倒すと、自分の手が「グー」→「チョキ」→「パー」の順で切り替わる

敵の動きなど、ある程度考えておかないとゲームとして成立しないくらい簡単になってしまったりします。

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

2024年03月30日

面クリア型アクションゲーム



4_19_1.png

製作第3作目決めました。
「面クリア型アクションゲーム」に決定します。

最近面クリア型のアクションゲームなんてプレイしたことがないので、参考ついでに過去のMSXの面クリア型のアクションゲームを調べてみる…。
…なんか、凄くノスタルジックな気分になる…。

気を取り直してアクションゲームと言う事で色々案を考えたけど、なかなか良いアイデアが浮かばない。
思いついてもゲームにならないような、簡単なものばかり…。

なんとか「じゃんけん」とかの別要素を取り入れて、遊べるバランスのゲームに仕上げてみます。
何と言っても面クリア型の物は、単純なだけにゲームバランスが重要。
簡単すぎても難しすぎてもダメ。
正直ゲームバランスを整えるのは苦手なんですが、頑張ります。

この作品にLaboratoryで扱った「水平ライン4枚(MSX2は8枚)を超えてSPRITEを表示させたい」の機能と、先日ツールとして制作した「BGM演奏ルーチン(通常版)」を載せます。

私の予想では製作期間そんなに掛からないかなと思っています。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2024年03月29日

作品PTETRIS-SPECIAL

音源を「MuSICA」から自作「BGM演奏ルーチン(通常版)」に切り替えたことにより、公開できるようになりました!

24_3_29_1.png
■主な新テクニック
 ・4ライン消去達成時の派手な演出
 ・ユーザーフレンドリーな落下位置案内ガイド
 ・BGM演奏ルーチン(通常版)利用によるBGM演奏

今回は本家「テトリス」のルールを把握して制作しました。
ブロック削除時の演出も派手にしています。
ブロックの速度が上がった時の横移動の処理方法など、本家の処理がどうやっているかまでは不明ですが、「それらしく」はしたつもりです。
24_3_29_2.png
▲ユーザーフレンドリーな落下位置案内ガイド付き
24_3_29_3.png
▲4ライン消去達成時の派手な演出
































タイトル『 テトリスSPECIAL 』作品17
内容上から落下するブロックを横移動・回転させて上手く積み、横一列ブロックで埋まったらその列は消えます。次のブロックが落下できなくなったらゲームオーバーです。
操作方法

起動し、しばらくしてタイトルが表示されたら、Aボタンでゲーム開始

十字キーの「←」、「→」で、ブロックを左右に移動

Aボタンで、ブロック落下

Bボタンで、ブロック回転
対応機種MSX1、MSX2、MSX2+製作年1990年
ダウンロードリンク先へジャンルパズル
ライセンステトリスはザ・テトリス・カンパニーの登録商標です。






※ゲーム内のキャラクタ、音楽は制作当時の物です。

公開前提に製作していないため、雑誌等から流用している物もあるかも知れませんので、著作権侵害の恐れのあるものは、ご連絡をお願いします。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | MSX回顧録

2024年03月28日

過去製作ゲームの「MuSICA」入替

「BGM演奏ルーチン(通常版)」が完成しましたので、早速、過去作品の「MuSICA」と入れ替えてみます。
そういえば「BGM.BIN」、深く考えずに開始アドレスを&HCA00にしたけど、過去作品の「.BIN」のアドレスとダブらないかな…?
過去作品の「.BIN」ファイルはソースが既にないのでアドレス変更は無理です。
まぁ、その時は「BGM演奏ルーチン(通常版)」の「BGM.BIN」のアドレス変えるしかないか…、そんな手間でもないし。

では、作業開始。
「MuSICA」ディスクに入っているMMLデータを「MMLコンパイラ(通常版)」に登録します。
元々大きくないデータなので、すぐに登録出来ました。
因みにファミコン版と同じ「トロイカ」です。(曲の著作権は切れているので問題ないはず…。)
登録が終わったらコンパイル。
コンパイルに時間が掛かりそうなので、裏技。
24_3_27_1.png
「BlueMSX」の「オプション」-「エミュレーション」と開きます。
24_3_27_2.png
真ん中にある「スピード」のつまみを、一番右側に持っていきます。
24_3_27_3.png
これで、「BlueMSX」の内部速度が10倍になります。
24_3_28_1.png
あっという間に、コンパイルが終わりました。
内部速度を元に戻します。
(因みに、わざわざ設定変更せずとも「左SHIFT」+「F9」を押している間、最速化します。)

次に、過去作品のメインプログラムを開いて、「MuSICA」関連の場所を修正します。
24_3_28_2.png
10行の「CLEAR」文の&HCE00が、「MuSICA」領域だけの確保なので全マシン語領域分(&HC000)に広げておきます。
70行の「DEFUSR」文の1、2、3が「MuSICA」のそれぞれ「初期設定」、「演奏開始」、「演奏終了」なので、これを「BGM演奏ルーチン(通常版)」のものに変更。
100行のPSG初期化部分は全クリアとSOUND7の設定のみとする。
24_3_28_3.png
最後、50000行が、「MuSICA」初期化と、演奏開始、50100行が演奏終了なので、こちらも「BGM演奏ルーチン(通常版)」のものに変更。

以上。
意外と変更箇所少ない。
変更後がこちら。
24_3_28_4.png
24_3_28_5.png
3チャンネル分のBGMデータ格納アドレスをワークにセットする必要があります。

変更簡単でした。

では、テストプレイ。
おー、FM音源「トロイカ」からPSG「トロイカ」に変わったが、問題なく演奏されました。
あれ? ブロックが落下した時の効果音が付いてる?
今更ながら「MuSICA」で演奏中に、PSGで効果音を上手く鳴らせていなかったようです…。
逆に、効果音鳴っていなかったので、効果音ないのかと思い3重奏でBGM作ってしまいました。
折角3重奏にしたので、今回効果音は無しとして、そのまま行きます。(効果音あっても落下した時の「ターン」と言う音のみなのであまり意味なし。)
因みにBGM演奏、「MuSICA」ではFM音源5重奏でした。(そこから3音抜き出しました。)
次回公開します。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | MSX雑記

2024年03月27日

MMLコンパイラ(通常版)活用方法



24_3_27_4.png

「MMLコンパイラ(通常版)」のディスク内に同梱されている「BGM.BIN」(BGM演奏ルーチン(通常版))を活用することで、制作中のゲームにBGMを付けることが出来ます。
走査線割込み中に演奏しますので、BASICプログラム実行中でも問題なく鳴ります。

「MuSICA」などの高機能な音楽演奏ルーチンとは異なり、お手軽ルーチンなので非常に軽いのが特徴です。(「BGM.BIN」の容量は543バイト(走査線割り込み処理88バイト、音楽演奏処理328バイト、BGM開始アドレス格納エリア15バイト、機能拡張予備105バイト))
このサイズでMSX標準MML同等のBGMが演奏可能です。(因みに「MuSICA」の「BGM.BIN」は4,072バイトあります。)

サンプルプログラムを用意しました。
ダウンロード

24_3_27_5.png
実質1,000行以下の部分となります。
「BGM.BIN」」(BGM演奏ルーチン(通常版))を読込(1,010行)
PSG初期化(1,040行〜1,050行)
BGMデータ「MML.BGM」を読込(2,510行)
BGMデータ格納アドレスを設定(2,511行〜2,512行、2,610行〜2,630行)
演奏曲b&HE023に設定(2,530行)
走査線割り込み開始(演奏開始)(2,540行)
    :
<この間に自由にプログラムを組む>
    :
走査線割り込み終了(演奏終了)(2,590行)
終了(2,600行)
以上、簡単です。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2024年03月26日

【ツール制作】MMLコンパイラ(通常版) 公開



24_3_25_2.png




















ツール7製作年2024年
タイトル『 MML COMPILER(通常版) Ver.1.1 』
対応機種MSX1、MSX2、MSX2+、MSXturboR
ダウンロードリンク先へ

『基本操作』
プログラムを「LIST」表示します。
プログラム最初にあるDATA行部に、作成したMMLをチャンネル毎に登録してください。
24_3_25_3.png
Aチャンネルの最後には「P1」、Bチャンネルの終わりには「P2」、Cチャンネルの終わりには「END」を入れてください。
登録が終わったら「RUN」実行。
BGMデータを書き出すファイル名(デフォルト:「MML」)と、データの先頭アドレス(デフォルト:「&HC000」)を入力して下さい。
「Now Compile…」と表示されコンパイルが開始します。
Aチャンネル、Bチャンネル、Cチャンネルの順でコンパイルされ、全てのチャンネルのコンパイルが完了したら「All Complete」のメッセージと、各チャンネル毎のBGMデータの開始と終了アドレスが表示され、コンパイルされたBGMが演奏されます。
24_3_25_1.png
演奏終了は「スペースバー」を押してください。

オールBASICですので、MMLデータの大きさによっては、完了までに時間を要します。

『MML仕様』
MSX標準のMML仕様に、「N」コマンド以外ほぼ準じています。
但し、テンポのみ「テンポずれ」回避のため、設定値に近いテンポずれしない値に強制変更します。






































テンポずれしないテンポ値
36404548506064727580
9096100120125128144150160180
192200225240250256300360450

※例えばT210を設定すると、一つ下のT200に変更されます。

【音階】



















CDEFGAB
ファ

【半音】
半音下げる時は「-」、半音上げる時は「+」を音階に付けます。

【長さ】
全音符を「1」として、64分音符「64」まで使えます。
音階に付けます。
デフォルトの長さ(「L」コマンド設定値)なら付ける必要なし。

【付点音符】
長さにピリオド「.」を付けると付点音符となり長さを半分伸ばします。
(4分音符に付けると、4分音符+8分音符になる。)
4段階まで可。(「....」4分音符+8分音符+16分音符+32分音符+64分音符)

【書式例】
C+4
D
A-2.
F.


【コマンド一覧】










































コマンド意味
T

テンポを設定する。(但し、テンポずれしない近いテンポに強制変更)【例】T225

※注:「T」を設定した後には必ず「L」をしてください。
Vボリュームを設定する。(0〜16)16はエンベロープ【例】V13
)ボリュームを1上げる。
(ボリュームを1下げる。
Oオクターブを設定する。(1〜8)【例】O2
>オクターブを1上げる。
<オクターブを1下げる。
Lデフォルトの音の長さを設定する。(【長さ】、【付点音符】参照)【例】L4
R休符。(【長さ】、【付点音符】参照)【例】R4.
Sエンベロープ波形を設定する。【例】S3
M

エンベロープ周期を設定する。【例】M15000

※エンベロープ周期設定は全チャンネル共通です。
Z

ノイズ周波数を設定する。(0:OFF)【例】Z15

※ノイズ周波数は全チャンネル共通です。

※コマンドの詳細はMSXのマニュアルを参照ください。

【BGMデータファイルレイアウト】

















1音(3バイト)2音(3バイト)...最後
音程下位8ビット音程上位8ビット長さ音程下位8ビット音程上位8ビット長さ...FF

コマンドデータレイアウト(上図の音と音の間に入る。)












「V」「S」「Z」

(2バイト)
「M」(3バイト)

「V」&HFC

「S」&HF8

「Z」&HFB
設定値&HF7設定値下位8ビット設定値上位8ビット

posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2024年03月25日

【ツール制作】MMLコンパイラ(通常版) 第4回



5_7_1.png

MMLコンパイラ(通常版) 第4回です。

「MMLコンパイラ(通常版)」と「BGM演奏ルーチン(通常版)」のバージョンアップ順調に進んでいます。
今回追加した機能「T」、「V」、「(」、「)」、「S」、「M」、「Z」に対応しました。
「T」、「(」「)」はBASIC部のみでの対応です。
ついでに、今まで1チャンネル分のルーチンが小さかったこともあり、A、B、C、3チャンネル分そのままルーチンを組み込んでいましたが、機能追加で1チャンネル分が大きくなることから、1つのルーチンを3チャンネル分ループさせることにします。

因みにこちらが、今までの「BGM演奏ルーチン」3チャンネル分。
1チャンネル分のルーチンが小さいですが、音を鳴らすだけならこれで十分でした。
24_3_26_5.png

「MMLコンパイラ(通常版)」BASIC部。
「簡易MMLコンパイラ」への追加分です。
まずは機能追加した各コマンド「M」(エンベロープ周期)、「S」(エンベロープ波形)、「Z」(ノイズ)、「V」(ボリューム)対応です。
24_3_26_6.png

次は「T」(テンポ)対応。
最後に「テンポずれ」しないテンポへの強制変更をしています。(790行〜)
24_3_26_7.png
1分間の走査線割り込み発生回数3,600から、テンポを割って求めます。
24_3_26_8.png
「付点音符」も4段まで可能とします。
24_3_26_9.png
小数点以下を足していき、繰り上がったところで音長に「1」加えます。
24_3_26_10.png
テンポへの強制変更データ設定。
24_3_26_11.png

A・B・Cチャンネル3チャンネル分ループします。
24_3_26_12.png

コンパイル終了後、演奏開始します。
24_3_26_13.png

「BGM演奏ルーチン(通常版)」マシン語部。
まずはいつもの走査線割り込み処理。
24_3_26_1.png

次に曲を切り替えるための選曲処理。
24_3_26_2.png

そして、3チャンネル分ループするよう改良したロジック。
上にある今までの「BGM演奏ルーチン」と比べれば、長くなったのが一目瞭然。
24_3_26_3.png
コメントのある場所で、それぞれのコマンドの処理をしています。
最後の音階をPSGに送るとき(680行〜)、同時にボリュームとエンベロープ波形も送ることでエンベロープ対応にしています。
このルーチンならノイズもエンベロープもBGMデータから設定できるので、効果音も自由に鳴らせます。

最後、BGMデータの開始アドレスを格納するワークエリアです。
24_3_26_4.png

では、次回公開します。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発
検索
<< 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コード