2024年07月21日
【ゲーム制作】シミュレーションゲーム 第7回
シミュレーションゲーム 第7回です。
今回は、FONTキャラクタを作成します。
いつもなら「FONT EDITOR」でいきなりガシガシ描いていくところですが、今回は16×16サイズの漢字FONTが多くあります。
流石にこれを「FONT EDITOR」でいきなり描き込めるほどの才能は私にはありません。
では、どうするか?
久しぶりに実験をしてみます。
まず、MSX1の画面上部1/3(横32FONT×縦8FONT)に、全FONTを並べて表示したものをハードコピーして「.BMP」画像化します。
次に、その画像にWindowsの画像加工ソフト(例は「ペイント」)で、16×16サイズの漢字を書いていきます。
このサイズで漢字を書くと大きく潰れますので、綺麗に見えるよう修正します。
その画像を「BMPtoMSX」で「.SC2」化します。
それを「SC2toFNT」でFONTファイル化します。
まず「DiskManager」で「SC2toFNT」のディスクに「.SC2」ファイルをコピー
次に「SC2toFNT」で「.SC2」データをFONTデータにコンバート
MSXで読み込める「.FNT」ファイル化に成功
出来上がった「.FNT」ファイルの上部1/3のファイルのみ抽出します。(ファイル名1.FNT)
そのファイルを「FONT EDITOR」で開けば、無事FONTデータ化されました!
要するに「.BMP」画像の写真をFONT化するやり方の応用です。
これで漢字や簡単な画像を簡単にFONT化する事が出来ます。
次回は残りのFONTデータを作成します。
2024年07月20日
【ゲーム制作】シミュレーションゲーム 第6回
シミュレーションゲーム 第6回です。
今回は、SPRITEキャラクタを作成します。
SPRITEキャラクタの作成には「SPRITE EDITOR」を利用します。
今作のメインは、飼育するスライムに似た未知の生物「スラー」ですね。
MSX1のSPRITEの弱点である、「水平方向にSPRITEを5枚以上表示すると5枚目以降が表示されない」があるので、大量表示する予定の「スラー」は1色が限度…。
そう考え、1色でも違和感のない「スライム」にしたのですが、やっぱりそこは1色だと味気ない…。
と言う訳で、目を付けて2色にします。
当然、「水平ライン4枚(MSX2は8枚)を超えてSPRITEを表示させたい」処理は組み込みますが、2色にしてもなるべく点滅は回避したいので、そこはテクニックでカバー。
前作まで同様、ズラし処理を使って水平方向には1枚しか重ならないようキャラクタを作ります。
目を付けると愛嬌のある可愛さになりました。
こんな感じです。
右下の指はカーソルとなります。
それ以外は各コマンド時のカーソルです。
まぁ、何か追加の必要があれば都度描き足していきます。
今回はこれでOKとします。
次回は、FONTキャラクタを作成します。
2024年07月19日
【ゲーム制作】シミュレーションゲーム 第5回
シミュレーションゲーム 第5回です。
今回はイメージディスクを作成します。
今作も部品的なサブルーチンはそのまま利用しますが、画面表示関係が「MAP8 EDITOR」を初めて使うので、それ用のサブルーチンは新たに作成します。
イメージディスクを用意します。
今作もマシン語設定プログラム(「BINSET.BAS」)は、Excelからコンバートするので要りません。
前作テーブルゲーム同様、自機残機の概念がないのでBASIC内での残機ループ処理は不要。 (2024年04月24日記事参照「 【ゲーム制作】面クリア型アクションゲーム 第24回 」)
と言う訳で前作「TBL.BAS」の名前変えて「SLG.BAS」とします。(残機ループが必要な時は「PZL.BAS」か「ACT.BAS」を利用)
走査線割込み処理のロジックも、Excelからコンバートするので不要。
他には「AUTOEXEC.BAS」と、初期値を作成するための「BINSETIN.BAS」も入れておきます。(残機ループがないので「BINSETI2.BAS」も不要)
残りは、エディター使って新たに作成します。
3ファイルだけでイメージディスク作成。
「SLG.BAS」のほとんどをコメントで潰してテスト実行できる準備だけ進めておきます。
次回は、SPRITEキャラクタを作成します。
2024年07月18日
【ゲーム制作】シミュレーションゲーム 第4回
シミュレーションゲーム 第4回です。
今回はメモリマップを作成します。
前回設計した内容に沿って必要なメモリ振りをします。
アドレス
データ名
備考
A000〜A2FF
面データ(32FONT×24FONT=768バイト)
768バイト
A400〜A4EF
スラー変数エリア(16バイト×15匹=240バイト)
240バイト
C000〜CFFF
マシン語エリア
4,096バイト
D000〜D6FF
BGMデータエリア
1,792バイト
D700〜D9FF
走査線割込み処理マシン語エリア
768バイト
E000〜E0FF
変数エリア
256バイト
今作で注目すべきは「スラー変数エリア」。
1匹当たりの変数として、「Y座標」「X座標」「移動用カウンタ」「移動方向」「生まれてからの経過時間」「空腹度」「ストレス度」「分裂カウンタ」「不快カウンタ」等が必要です。
いざ制作に入って忘れてた変数があると困るので予備を幾つか持たせることを考えると1匹当たり16バイト、15匹で240バイトも取ってしまう。
その為、通常の変数エリアとは別にエリアを設けました。
これにより急な仕様変更による1匹当たりの変数増にも柔軟に対応可。
次回は、前作のプログラムを基にメインプログラムを用意します。
2024年07月17日
【ゲーム制作】シミュレーションゲーム 第3回
2024年07月16日
【ゲーム制作】シミュレーションゲーム 第2回
シミュレーションゲーム 第2回です。
今回は詳細設計をします。
安定のこじつけストーリーです。
■■■ ストーリー ■■■
最近、スライムに似た生物「スラー」の飼育が流行っている。
その「スラー」の飼育は難しく、繁殖に成功すれば「スライムマスター」として、一躍有名になれる。
「スライムマスター」目指して「スラー」を飼育してください。前回考えたゲームシステムを基にゲームになるように設計していきます。
■■■ ルール ■■■
オープンパラメータは「温度」「湿度」「明度」「所持金」
隠しパラメータは「空腹」「ストレス」
行動は「温度」「湿度」「明度」の上げ下げと、「食事」「清掃」「移動」「区切」
行動には種類に応じたお金がかかるため、「所持金」が減る
「所持金」は経過時間で増える
「空腹」若しくは「ストレス」が255になるとスライム死亡
スライム全滅でゲームオーバー
スライムはストレス50以下で一定時間経過で分裂し増える
実際の時間1秒が、ゲーム中の1分
ゲーム時間1時間毎に「空腹」+1
ゲーム時間3時間毎に「糞」を1つする
スライムの周りに「糞」があれば1つ毎にゲーム時間1時間毎に「ストレス」+1
スライムの周りに他のスライムが5匹以上いればゲーム時間1時間毎に「ストレス」+1
時間帯により、スライムの好む温度や湿度、明度が変化し、不快な環境になると1時間毎に「ストレス」+1
ストレスのかからない環境に居れば1時間毎に「ストレス」-1
ゲーム時間で5日(実時間2時間)経過時に15匹に増えていればエンディング
「食事」で3種類のエサ(金額の高い物程空腹減)を選択し、カーソルで任意場所に置く
「移動」でカーソルでスライムを摘まんで任意場所に移動させる
「清掃」は一律で糞を片付ける
「区切」でスライムが移動できない棒(縦棒・横棒)を任意場所に設置する事でスライム同士の接触を防げる
流石はシミュレーションゲーム。
細かい設定が必要ですね。
次回は詳細設計の続き、画面構成を考えていきます。
2024年07月15日
【ゲーム制作】シミュレーションゲーム 第1回
シミュレーションゲーム 第1回です。
前回、ざっくりとしたイメージは書きましたが、もう少し具体的に考えていきます。
・飼育系シミュレーションゲーム
・飼育するものはスライムに似たなにか
・パラメータ数はオープン・隠し足して10個程度
・最大飼育数は15匹(SPRITE1匹2枚で30枚、そこにカーソル分2枚を足して32枚すべて使用。因みに最大飼育数を30匹にすると、「自分の周りに仲間が居過ぎるとストレスが掛かり死亡」条件に絶対に掛かりそこまで増えない)
・飼育期間は5日程度
ざっと、こんなところですかね?
操作としては、
・パラメータ選択し上下。
・スライムつまんで移動させる。
・障害物(?)を配置。
くらいですかね?
次回は、このルール(ゲームシステム)を基に詳細設計をします。
2024年07月14日
シミュレーションゲーム
製作第6作目決めました。
宣言通り「シミュレーションゲーム」に決定します。
内容は育成シミュレーションで、スライムのような未知の生物を飼育するゲームにしようかと思います。
スライムにしようと思ったのは、キャラが単純でそれなりに可愛いし、SPRITEサイズ16×16で大量表示する事を考えると、1色でも違和感のない生き物と言うとスライムかな?と、そんな単純な発想です。
うーん、実は私、MSX1で育成シミュレーションゲームって制作したことがありません。
あ、Windowsでは製作した事がありますので、制作に支障はありません。
Windowsでの製作は制限がほぼありませんから、オープンパラメータも、隠しパラメーターもいっぱい作って難易度無茶高いのを作りました。
パラメータ数が多いと言う事は、1匹当たりの使用メモリが増えると言う事。
しかも飼育数が最大まで増えた時は、画面が埋め尽くされるくらい増える仕様だったので、MSX1では表示もメモリも無理なものでした。
今回は難易度下げて、パラメータ数減らして、最大飼育数も減らします。
1サイクルが比較的早く終わる(セーブ/ロードなし)タイプのものにしたいと思います。
2024年07月13日
次回作選考
さて、次回作について考えたいと思います。
「ロールプレイングゲーム」、「アドベンチャーゲーム」、「アクションゲーム」、「パズルゲーム」、「テーブルゲーム」と来ました。
「シューティングゲーム」は、最後。
となると、消去法で「シミュレーションゲーム」ですね。
過去に制作した「シミュレーションゲーム」は、戦略シミュレーションでした。
私自身は、シミュレーションゲームと聞いて思い浮かべるのは育成モノ。
「プリンセスメーカー」とか…。
画像出典: 『いっぱいゲームを楽しもう』
https://jimagame.xyz/2019/03/26/%E3%83%97%E3%83%AA%E3%83%B3%E3%82%BB%E3%82%B9%E3%83%A1%E3%83%BC%E3%82%AB%E3%83%BC%EF%BC%88msx%EF%BC%89/
…ん?
MSXで育成シミュレーションってあんまりない?
あんまりないどころか、「プリンセスメーカー」一択?
うーん、他機種だと「アイドルマスター」とか、色々あるのに…。
画像出典: 『LaunchBox GAMES DATABASE』 PSP用『THE IDOLM@STER SP』
https://gamesdb.launchbox-app.com/games/images/73932-the-idolmster-sp-perfect-sun
んー、MSX1で習作レベルで作成できる育成シミュレーション…。
いい案が思い浮かばない…。
そうだ、ペットものなんてどうだろう。
よく、「アクアリウム」とかでグッピーとか育てる奴。
パラメーターを幾つか用意して、条件によって内部パラメーターが上下し、飼育匹数が増えたり減ったりをシミュレーションできればいいので、それでいこうかな。
うーん、16×16ドットのSPRITEでグッピーは難しいな。
それに魚だとありきたりだし、別の生き物にします。
まぁ、具体的にどんなものにするかは、もう少し考えてみます。