2024年08月26日
【ゲーム制作】シミュレーションゲーム 第39回
シミュレーションゲーム 第39回です。
今回は、「スラー」の食事を組んでいきます。
エサを設置した際に、設置座標に対応するメモリ上に、エサ残数を設定しています。
「スラー」がエサに引っ付いている間、残数と空腹度をマイナスします。
残数が「0」になったら、エサは消えます。
すると、集まってた「スラー」は蜘蛛の子を散らすように散っていきます。
ただ、空腹度は目に見えないので、上手くいったかどうか判断するために、別途メモリ確認用のプログラムを組む必要があります。
引っ付いていた「スラー」の空腹度を確認。
3匹引っ付いていた「スラー」の空腹度が下がっています。
次回、「スラー」の条件付きカウントアップを組んでいきます。
2024年08月25日
【ゲーム制作】シミュレーションゲーム 第38回
シミュレーションゲーム 第38回です。
今回は、「スラー」の固有体内時間アップフラグを立てます。
「スラー」の固有体内時間とは、30分毎に糞をするなど、「スラー」1匹1匹が個々に保有する体内時計の事です。
生れ出た(分裂した)タイミングにより異なるので、個々に保有させる必要があります。
前回の所持金同様、分カウンタが+1されたときに走査線割り込み処理からコールされた飛び先内で処理します。
走査線割り込み処理の中では、「スラー」の各パラメータは変動させないので、ここでは分カウント+1したことが判る「固有体内時間アップフラグ」を「スラー」個々のワークに立てます。
15回ループして15匹分のフラグを立てます。
「スラー」個々の動作時に、フラグが立っていれば条件判定し各パラメータを変動させます。
次回、「スラー」の食事を組んでいきます。
2024年08月24日
【ゲーム制作】シミュレーションゲーム 第37回
2024年08月23日
細かく修正㉘
「ゲーム制作」の「製作メニュー」の「新作6」、各回へのリンクを追加。
「ゲーム制作」の「シミュレーションゲーム」の前後回へのリンクが全て切れていたので修正。
それ以外は、画像の貼り直しや、記事の誤記の修正程度です。
2024年08月22日
【ゲーム制作】シミュレーションゲーム 第36回
シミュレーションゲーム 第36回です。
今回は、環境変動を組んでいきます。
環境変動とは、時間経過に伴い「温度」や「湿度」の飼育環境が変化する事です。
今作は舞台が8月と言う事なので、ベースとなる温度・湿度が結構高くなります。
今回、使用データは気象庁の統計データ、東京の8月のデータを持って来て、4時間毎に平均を取りました。
時間 | 温度(℃) | 湿度(%) |
0〜4時 | 26 | 92 |
4〜8時 | 27 | 89 |
8〜12時 | 31 | 69 |
12〜16時 | 32 | 68 |
16〜20時 | 30 | 73 |
20〜24時 | 29 | 75 |
こんな感じです。
思ったより湿度が高い…。
時間経過で、ベース温度・湿度を変化させ、それに伴いパラメータ部の「温度」、「湿度」を描き換えます。
まず、走査線割込み処理中の「経過時間カウント」処理から、時間カウンタが+1される時に「環境変動」処理をコールするように変更します。
環境変動処理を追加。
この時、温度・湿度に変化があればパラメータ描換えフラグを立てておきます。
メイン処理部で、パラメータ描換えフラグを確認し、立っていれば温度・湿度パラメータを描換えます。
ここではそれだけです。
「スラー」の快適環境から外れた時のストレス値上昇は後程。
次回、所持金アップを組んでいきます。
2024年08月21日
【ゲーム制作】シミュレーションゲーム 第35回
シミュレーションゲーム 第35回です。
今回は、「環境変動」を組む予定でしたが、ロジック組んでてどう考えてもバグがないのに正常に動作しない。
…ん? 以前にもあったなこういう事?
…と思っていたら、やっぱり「BINSET.BAS」で設定できるマシン語領域を超えてしまっていました。
「3Dダンジョンロールプレイングゲーム」以来、マシン語プログラム分割しなけらばならない程、大きなサイズのプログラム組んでいなかったので、久しぶりです。
容量は前回と同じで、大体&HCB00弱ですね。
と、言う訳で、今回はマシン語設定ファイルを分割し、「BINSET2.BAS」を作成します。
まず、Excelファイルを別シートで用意。
それを「.BAS」に変換して、BlueMSXに読み込ませます。
このマシン語設定プログラムを起動すると「SLG2.BIN」が作成されます。
BASIC部で、そのファイルを読み込むようにして、準備OKです。
次回、「環境変動」を組んでいきます。
2024年08月20日
【ゲーム制作】シミュレーションゲーム 第34回
シミュレーションゲーム 第34回です。
今回は、移動パターンA『空腹時、エサが近くにあればエサ目指して移動。』そのAを組んでいきます。
前回の回転検索で見付けたエサに「スラー」が向かって行くようにします。
エサのあるVRAMアドレスからY座標とX座標を算出します。
スラーの位置と計算し、移動方向と移動量を決定します。
あと、エサ食べてる間は、完全停止か、ちょろちょろ動くかどうしようかなと思いましたが、元気に食べているように見えるので、ちょろちょろ動くパターンにしました。
固まるとなんか気持ち悪いですね。
実際にはこんだけ集まるとすぐにエサがなくなるので、こんな状態にはなり得ません。
今回は「スラー」が「エサ」を見付けて「エサ」に向かうまで。
「エサ」を食べるは後程組みます。
次回、「環境変動」を組んでいきます。
2024年08月19日
しゅ…集中力が…。
うーん、まずいです…。
シミュレーションゲーム製作中ですが、集中力がなくなってきました…。
「ゲーム制作」のコンテンツは、その特性上、事前にある程度開発を進めて、記事が「後追い」する形となります。(難解ロジックや、バグが取れない時など、1日で解決できない場合記事が途切れないように…。)
シミュレーションゲーム開発前は、1ヶ月分程先行していましたが、途中から集中力が途切れるようになり、開発が進まず、今では1週間分程度まで減ってしまいました…。
集中力が途切れる理由は明白。
当然本業が忙しいと言うのもありますが、それ以上にシミュレーションゲームの開発に熱が入らない…。
自分の好みで申し訳ないのですが、実は私、シミュレーションゲームがあまり好きではなく、ほとんどプレイした事がないのです。
そんなジャンルのゲーム開発していれば、そりゃ集中力も途切れがちになりますよね…。
ブログで公開しているから、何とか継続できていますが、ブログがなければ放置しているレベルですね…。
全ジャンル制覇を目標に開発再開しましたが、「継続」させることを考えれば、好きなジャンルのゲームを製作していく方がいいと感じました。
なんだかんだ、ここまで製作が進んでいるのでもうひと踏ん張りで完成させられそうです。
なんとか今作は完成させて次回からは作りたい物を作るようにします…。
2024年08月18日
【ゲーム制作】シミュレーションゲーム 第33回
シミュレーションゲーム 第33回です。
今回は、移動パターンA『空腹時、エサが近くにあればエサ目指して移動。』を組んでいきます。
まずは、近くの「エサ」を探すルーチンを用意します。
検索方法をどうしようか悩む…。
一番簡単なのは、「スラー」を中心とした4角いエリアを左上から右下へ順に探すパターンですが、範囲内に複数個エサが見付かったり、見付かった中でどれが一番近いか調べたりと、後が面倒です。(…見付かった「エサ」と「スラー」との座標差が小さいものを一番近い「エサ」とすればいいだけなので、言うほど面倒でもないが…。)
そこで、「スラー」を中心に回転して探す方法にします。
渦巻き状に探していき、エサが見付かったら検索を止めて、そのエサに向かって進むパターンです。
ルーチン内で「エサ」を見付けると、Aレジスタに1を、HLレジスタに見つけたエサのVRAMアドレスを返します。
見付からなければAレジスタに0を返します。
因みにこのパターン、VRAM操作のBIOSを「読込み(&H004A)」→「書込み(&H004D)」にすると、渦巻き状のフェードアウトに使えます。
次回、移動パターンA『空腹時、エサが近くにあればエサ目指して移動。』そのAを組んでいきます。
2024年08月17日
【ゲーム制作】シミュレーションゲーム 第32回
シミュレーションゲーム 第32回です。
今回は、移動パターンB『乱数移動。(4方向+停滞)』そのAです。
1移動量は8ドットで、最低2移動です。
移動量は乱数で2〜9が設定されます。
移動の仕方は、縦方向に動いたら、次は横方向、次は縦方向と、縦と横を交互に繰り返します。
移動方向は0〜7の乱数で決まります。
0〜1は移動、2〜7はその場で待機です。
大半待機なのにやたら動き回っているように感じるのは気のせいでしょうか…?
前回組んだ「スラー」の足元チェックルーチンを使って、移動先に障害物がないかチェックしながら移動します。
ちゃんとチェックされているか確認のために一カ所柵で囲い、コマンド「移動」で数匹閉じ込めます。
しばらく放置して、外から入り込まないか、中から抜け出さないかチェックします。
かなりの時間放置しましたが、問題ありません。
次回は、移動パターンA『空腹時、エサが近くにあればエサ目指して移動。』を組んでいきます。