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『空腹時、エサが近くにあればエサ目指して移動。』を組んでいきます。
2024年08月16日
【ゲーム制作】シミュレーションゲーム 第31回
2024年08月15日
【ゲーム制作】シミュレーションゲーム 第30回
2024年08月14日
【ゲーム制作】シミュレーションゲーム 第29回
シミュレーションゲーム 第29回です。
今回は、「スラー」の動きを具体的に考えていきます。
「スラー」の移動方法は、
・斜めには動かず、4方向移動とします。
・移動を始めると、その方向に1ドットずつ、8ドット分移動します。
・最短でも16ドット移動します。
・縦方向と横方向を交互に移動します。(=Uターンはしない。)
・お腹の部分、中央下部をエサなどの接触判定位置とします。
・地面以外には移動できません。
・飼育エリアの左右端には移動しない。(左端へ移動すると、SPRITEの仕様上消えてしまう対策)
と、します。
次に「スラー」の移動パターンは優先度を付けます。
?@コマンド「移動」で摘ままれた状態時、指カーソルに引っ付いて移動。
?A空腹時、エサが近くにあればエサ目指して移動。
?B乱数移動。(4方向+停滞)
この順で、移動パターンを決定します。
移動に関しては、こんなとこです。
夜間は「動きを遅く」する、若しくは「眠る」をしようかとも思ったのですが、総プレイ時間が短いので止めます。
次回から、「スラー」の動きを組んでいきます。
2024年08月13日
【ゲーム制作】シミュレーションゲーム 第28回
2024年08月12日
【ゲーム制作】シミュレーションゲーム 第27回
シミュレーションゲーム 第27回です。
今回は、コマンド「移動」の『「スラー」を摘まみ上げる』までを組んでいきます。
コマンド「移動」を選択すると、飼育エリアに指カーソルが表示されます。
この時、Bボタンでコマンド選択に戻ります。
移動させたい「スラー」の上に指カーソルを移動させ、Aボタンでその「スラー」を摘まみ上げます。
この時、Bボタンで「スラー」を摘まみ上げる前の状態に戻します。
この状態では、まだコストはかかりません。
「スラー」が密集している場所から離脱させたり、区切ったエリアへ「スラー」を移動させたりするために使います。
次回、コマンド「移動」の『摘まんだ「スラー」を離す』を組んでいきます。