2023年08月16日
細かく修正H
「ゲーム製作」カテゴリは、主としてゲーム製作関係の記事を扱うカテゴリです。
しかし、開発全般の記事を扱っているため、ツールや、サンプルプログラム等の記事も入ります。
当初それらの記事は少ないだろうと思っていたのですが、現状、かなりの記事数になっております。
しかも、ツールやサンプルプログラム等の記事は、「ダウンロード」から選択可能ですが、「3Dダンジョンロールプレイングゲーム」製作関係の記事だけを読むのが難しい状態です。
そこで、上のリンクを「3Dダンジョンロールプレイングゲーム」のすべての記事の開始位置と終了位置に追加しました。
これで「3Dダンジョンロールプレイングゲーム」の製作記事のみを連続で読むことができるようになります。
「ダウンロード」に追加で新規公開したゲームやツール、サンプルの記事へのリンク追加、「Laboratory」テーマメニューの公開分記事へのリンク追加。
それ以外は、画像の貼り直しや、記事の誤記の修正程度です。
2023年08月15日
卒業
高校を卒業しました。
MSXに始まり、MSXで終わった高校生活でした。
3年間の学生時代なんて、皆さんもそうだったと思いますが、嬉しい事も、楽しい事も、悲しい事も、悔しい事もありましたが、過ぎ去ってみればあっという間。
今となってはいい思い出です。
因みにパソコン同好会の会長は、私が決めずに1年生3人で決めるよう引き継ぎました。
3人ともパソコンを持っていないし、当然プログラミングもできない。
でも、部活開催日には3人揃って毎回出てきてくれてたので、優劣付け難く決められなかったというのが正直なところです。
その後どうなったかは残念ながらわかりません。
今まで通り、おしゃべり同好会でも良いので続けてくれてると嬉しいな。
4月からは電車で遠路はるばる名古屋の専門学校に通うことが決定しました。
なぜか高校の友人も一人、同じ専門学校の2年コースに通うことになり、寂しさもありません。
(私がその専門学校に行くと言ったら、「じゃぁ俺も!」って決めたみたいです…、いいのかお前!?)
それとこっちは本当に偶然ですが、私の中学の時の友人が同じ専門学校の3年コースに居ました。
凄い偶然!
専門学校はたった2年間ですが、この時は「都会へ行く」と言う事も含め、希望と期待に満ち溢れていました。
私の選んだ専門学校は、情報処理技術者資格の取得をメインに学習する学校ですので、当然プログラミングが必須となります。
今まで私と同レベルにプログラムを組める人と会った事がなかったので、「きっとプログラミング仲間がたくさんいる!」と勝手に期待に胸を膨らませていました。
2023年08月14日
本格的BGM演奏ルーチン
以前、Laboratoryにて簡易BGM演奏ルーチンを公開しました。(2023年7月13日記事参照「Laboratoryテーマ14「簡単にBGMを鳴らしたい」」)
「簡易」と付いているからには、「本格的なのはなかったの?」と言う質問もあると思います。
実はあったのです。
前回、「この機能はありません」と言った機能をすべて搭載した優れものでした。
【機能一覧】
コマンド | 意味 | ||
T | テンポを設定する。(1〜255)【例】T150 | ||
V | ボリュームを設定する。【例】V13 | ||
) | ボリュームを1上げる。 | ||
( | ボリュームを1下げる。 | ||
S | エンベロープ形状指定。(0〜15)【例】S5 | ||
M | エンベロープ周期指定。【例】M1000. | ||
{、} | 連符。【例】{4CDD}(3音を4分音符の長さで奏でる。) | ||
[、] | ループ。(1〜9)【例】[3CCDCCDCCD]([、]間を3回ループし3回目で抜ける。3重まで可。) | ||
! | スタッカート。【例】C4!(Cを32分音符で鳴らし、8分音符+16分音符+32分音符の間、無音。 |
※ タイ・スラーは付けずとも勝手に繋がるので機能なし。
なぜ使っていないか?
理由はいくつもあります。
例えば、ゲーム制作仲間の作曲担当が「MuSICA」使いだった事。
「MuSICA」以外にも優秀なツールが沢山出回っていた事など。
中でも決定的なのは、「私が作曲した曲は、これだけの機能が要らなかった。」事です。
機能を使わないのに、プログラムが非常に長いこのルーチンを使うメリットは何もなかったのです。
因みにBGMデータはMMLをコンパイルせず、MMLのまま演奏可能でしたので、BGMデータは多少短くて済みました。
結局日の目を見る事がなかったルーチン、また機会があれば公開するかも?(要らんか…。)
2023年08月13日
ハンドアセンブルについて
ハンドアセンブルの弱点として、飛び先指定の大変さを以前に書きました。(2023年6月1日記事参照「ハンドアセンブル」)
そこで、私はプログラム上で計算し易いように工夫をしています。
何をしているかと言うと、自作サンプルを見ていただければ一目瞭然。
1行のDATA文にコードを8バイトしか書かないようにしています。
1行が8バイト、16進数で&H08。
2行で16バイト、16進数で&H10。
要するにアドレスを数える際、2行毎に10、20、30…と数えてく訳です。(上に行く場合はF0、E0、D0…)
最後1行余ったら、8を加えます。
そして、右に1つ移動したら+1、左なら-1すると言うように数えます。
ただ、これでも問題があります。
1つのロジックを1ブロックとしていますが、1ブロックの最後の行、プログラム終了から次のブロックまでの間に「00」が入ります。
これは単純にプログラムを見易くするための工夫です。
しかし、言ってしまえば無駄です。
MSXのように容量が少なく、制約の多い機種ならなおさら。
しかし、これがあるおかげでロジック追加になった際、この空きを利用してジャンプ命令を入れられます。
うーん、でもアセンブラ使えばその辺の事は気にする必要はありません。(そもそもアドレス指定が不要。)
現状、プログラミングする際、ニーモニック(LD A,01、ADD 02等)を思い浮かべてそれをマシン語コード(3E,01、C6,02等)に変換しているので、アセンブラに移行するのはそれほど苦ではありません。
ただ、やはりアセンブラを起動して、マシン語プログラムをロードし、アセンブリしてから、BASICプログラムをロードして実行...までの手順が、手間に感じてしまう。
今なら全部BASICプログラムだけですからね。
うーん、今更やり方変えるのも面倒だしなぁ...。
まぁ、何か支障が出るまではこのままのスタイルでいきます。
そこで、私はプログラム上で計算し易いように工夫をしています。
何をしているかと言うと、自作サンプルを見ていただければ一目瞭然。
1行のDATA文にコードを8バイトしか書かないようにしています。
1行が8バイト、16進数で&H08。
2行で16バイト、16進数で&H10。
要するにアドレスを数える際、2行毎に10、20、30…と数えてく訳です。(上に行く場合はF0、E0、D0…)
最後1行余ったら、8を加えます。
そして、右に1つ移動したら+1、左なら-1すると言うように数えます。
ただ、これでも問題があります。
1つのロジックを1ブロックとしていますが、1ブロックの最後の行、プログラム終了から次のブロックまでの間に「00」が入ります。
これは単純にプログラムを見易くするための工夫です。
しかし、言ってしまえば無駄です。
MSXのように容量が少なく、制約の多い機種ならなおさら。
しかし、これがあるおかげでロジック追加になった際、この空きを利用してジャンプ命令を入れられます。
うーん、でもアセンブラ使えばその辺の事は気にする必要はありません。(そもそもアドレス指定が不要。)
現状、プログラミングする際、ニーモニック(LD A,01、ADD 02等)を思い浮かべてそれをマシン語コード(3E,01、C6,02等)に変換しているので、アセンブラに移行するのはそれほど苦ではありません。
ただ、やはりアセンブラを起動して、マシン語プログラムをロードし、アセンブリしてから、BASICプログラムをロードして実行...までの手順が、手間に感じてしまう。
今なら全部BASICプログラムだけですからね。
うーん、今更やり方変えるのも面倒だしなぁ...。
まぁ、何か支障が出るまではこのままのスタイルでいきます。
2023年08月12日
【ゲーム制作】3Dダンジョンロールプレイングゲーム 第9回
3Dダンジョンロールプレイングゲーム第9回目です。
今回は、プレイヤーの向きに対応した2Dマップデータを読み込み、表示ワークを設定します。
因みに3D表示のやり方は、人によっても、機種によっても、言語によってもやり方は千差万別です。
「この人は、こんなやり方なんだ。」程度に読んで下さい。
表示ワークへは、前回作った2Dマップからデータ取得します。
プレーヤーの向きに対して、@〜Gのポジションの地形を表示ワークに設定します。
例えば、前を向いている時は、下図のようにワークを設定します。
ワーク | @ | A | B | C | D | E | F | G |
壁 | 壁 | 壁 | 通路 | 通路 | 壁 | 壁 | 壁 |
左を向いている時は、下図のようにワークを設定します。
ワーク | @ | A | B | C | D | E | F | G |
通路 | 壁 | 通路 | 通路 | 壁 | 通路 | 通路 | 通路 |
この方法ですと、どこに移動しようと、どの向きだろうとワークさえちゃんと設定できていれば3D表示可能ですので、表示ルーチンは単純なものにできます。
次回は、いよいよ今回設定した表示ワークから、3D表示ロジックを考えます。
2023年08月11日
名古屋地下鉄
専門学校の入学試験を受けに名古屋駅に行った時、名古屋の地下鉄を初めて利用しました。
そこで田舎者の私は衝撃を受けました!
「なんだこの人と線の多さは!」
なんと人の多いこと多いこと...。
ギュウギュウ詰めの電車を見て、「これに乗るのか!? 乗れるのか!?」と、衝撃を受けた記憶があります。
しかも当日は少し遅い時間だったので、これで通勤ラッシュ時間じゃない…。
地元も朝の通学時間は混んでましたが、ここまでではない…。
これが毎日なのか!?
線の多さにしても、私の田舎はメインの鉄道はJRと私鉄1線なので、まず乗り間違えはありません。
しかも一つの駅から、ここまで多くの線が出ているなんて…!
どれに乗ればいいか、全く分かりませんでした。(まぁ、これも後に東京に行った時には、「名古屋って解り易い!」と思いましたが…。)
各駅で駅員さんに聴きながら、やっとの思いで試験会場である学校に到着しました。
地下鉄駅の出口も、複数ありどこから出ればいいやら、泣きそうでした。
でも、無事入学試験を受け、帰りは少し慣れてスイスイ帰れました。
試験内容は、面接と、適性試験。
後日、結果発表があり合格でした!
まぁ、専門学校だから落ちることないんだろうけど…。(後に不合格がいる事実が判明し驚きました。)
2023年08月10日
作品KSOLGER 卒業作品
次はこれ。
高校最後の作品と言う事で、当時相当気合い入れて作りました。
今作は、速度が速い為難易度は少し高めです。
ゲームのBGMを始めて気合入れて作曲しました。
高校最後の作品と言う事で、当時相当気合い入れて作りました。
■主な新テクニック
・1ドット2重疑似スクロール実装
・敵消滅時アイテム落下制
・1ドット2重疑似スクロール実装
・敵消滅時アイテム落下制
今作は、速度が速い為難易度は少し高めです。
ゲームのBGMを始めて気合入れて作曲しました。
タイトル | 『 SOLGER 』 | 作品 | 12 | |
内容 | 侵攻してきた敵機を撃退して下さい。 | |||
操作方法 | 起動し、しばらくしてタイトルが表示されたら、「スペース」バー若しくはAボタンでゲーム開始 開始させたコントローラーで操作します 「↑」「→」「↓」「←」カーソル若しくは十字キーで、自機移動 「スペース」バー若しくはAボタンで弾発射 「GRAPH」キー若しくはBボタンでボンバー | |||
対応機種 | MSX1、MSX2、MSX2+ | 製作年 | 1989年 | |
ダウンロード | リンク先へ | ジャンル | シューティング |
※ゲーム内のキャラクタ、音楽は制作当時の物です。 公開前提に製作していないため、雑誌等から流用している物もあるかも知れませんので、著作権侵害の恐れのあるものは、ご連絡をお願いします。 |
2023年08月09日
MAP8 EDITOR Ver.2.5公開!
マウスの不具合を修正したバージョンです。
コントローラー選択部分のプログラムを、一通り見直して修正してあります。
すべてのコントローラー・ポートでの動作確認済みです。
バグ修正なので本来ならバージョンを0.1上げる程ではないのですが、0.01単位がないので止む無くVer.2.5とします。
こちらも前2ツール同様、カラーパレットのカラー上で右クリックすると、全カラーパレットを初期色に戻す機能がありました。
説明文に追加しておきます。
1日1本の修正版公開はキツイです…。
プログラム修正して、エディタ開発用ディスクから、そのツール分のプログラムだけコピーしてイメージディスク作って、zip化してアップロード。
動作確認後、紹介記事も改訂して、初めて終了…。
やる事多すぎ!
サラリーマンにはキツイです。
「MAP8 EDITOR Ver.2.5」紹介ページへ
2023年08月08日
FONT EDITOR Ver.2.5公開!
マウスの不具合を修正したバージョンです。
コントローラー選択部分のプログラムを、一通り見直して修正してあります。
すべてのコントローラー・ポートでの動作確認済みです。
バグ修正なので本来ならバージョンを0.1上げる程ではないのですが、0.01単位がないので止む無くVer.2.5とします。
こちらも、「SPRITE EDITOR」同様、カラーパレットのカラー上で右クリックすると、全カラーパレットを初期色に戻す機能がありました。
説明文に追加しておきます。
絶対にそれ以外にも忘れてる機能があると思います。
もし、正式にバージョンアップすることがあればその時に、全機能洗い出します。
「FONT EDITOR Ver.2.5」紹介ページへ
2023年08月07日
SPRITE EDITOR Ver.2.5公開!
マウスの不具合を修正したバージョンです。
コントローラー選択部分のプログラムを、一通り見直して修正してあります。
すべてのコントローラー・ポートでの動作確認済みです。
バグ修正なので本来ならバージョンを0.1上げる程ではないのですが、0.01単位がないので止む無くVer.2.5とします。
あと、プログラム見ていて気付いたのですが、カラーパレットのカラー上で右クリックすると、全カラーパレットを初期色に戻す機能がありました。
説明文に追加しておきます。
「SPRITE EDITOR Ver.2.5」紹介ページへ