【開発日記】土地のライフシムで都道府県を選べるようにし、木・野菜・生き物を地域に合わせた

【開発日記】土地のライフシムで都道府県を選べるようにし、木・野菜・生き物を地域に合わせた

とむ

とむ

Godot 4 で作っている、現実の時間と一緒に土地を育てるライフシム「Kin's Domain Life Planner」に、ゲームのはじめに 47 都道府県から土地を選ぶ機能を入れました。選んだ土地の気候で季節がめぐり、植えられる木や野菜、訪れる生き物も変わります。今日は 7 つのコミットで、自動テストは 2,739 件から 3,438 件になりました。

今日やったこと

  • 47 都道府県を選ぶ画面を作った(地方 → 県 → 気候と育つ木を見て決める。一度決めたら変えられない)
  • 気候を 8 つの区分にした。冬の長さ・雪・霜・雨の多さが変わり、日の出と日の入りは県庁所在地の緯度・経度で計算する
  • 木を 6 種類から 40 種類にした(北海道ならエゾマツ、沖縄ならガジュマルなど)
  • 生き物を地域で入れ替えた(北海道はエゾリスとキタキツネ、本州から九州はタヌキ、沖縄はヤンバルクイナなど)
  • 野菜を 6 種類から 22 種類にし、選ぶキーを 6 つの組(根菜・いも・実もの・葉もの・豆と穀物・香味)にした
  • 料理と保存食を 10 品から 26 品にした(干し柿・梅干し・たくあん・ゴーヤチャンプルーなど)
  • 土地の外に自然の林を置いた。種は樹種ごとに年に 3 日だけ落ち、その日しか拾えない

詰まったところと、どう解いたか

一番「ほう」と思ったのは、どこで地域の情報を持つかです。地域ごとに「植えられる木の一覧」を持つ形だと、木を足すたびに 8 つの一覧を直すことになります。そこで逆に、木や野菜や生き物の側に「育つ気候区分の一覧」を持たせました。新しい木を足すときは、その木の行に地域を書くだけで済みます。実際、この日のうちに木を 3 回に分けて足しましたが、どれもこの形のまま増やせました。

# 植物の側に「育つ土地」を持たせる(例)
"yamazakura": {"name": "ヤマザクラ", "zones": ["tohoku", "pacific", "south"], "drop_months": [6]}

# 種が落ちる日は、樹種と年から乱数の種を作って選ぶ(保存しなくても毎回同じ日になる)
rng.seed = ("drop:%s:%d" % [species, year]).hash()

もう一つよかったのは、「県を選ぶ前は今までのルールで動く」ようにしたことです。こうしておくと、すでにある約 2,700 件のテストは、県を選ばない状態でほとんどそのまま通ります。地域ごとのテストは別に足していき、最後は 410 件になりました。

詰まったところも、テストとスクリーンショットが見つけてくれました。たとえば「霜の降りない沖縄では、春か秋にまく野菜を冬にもまける」というルールを入れたら、ゴーヤまで冬にまけてしまいました。暑さを好む野菜に印を付けて、冬には外しました。また、前に決めていた「野菜の育つ日数は 3〜7 日」という方針がテストに書いてあったので、新しい野菜を 8〜9 日にしていたことにすぐ気づけました。

品数が増えると、市場の画面が 1 列 15 行に収まらなくなりました。全部の品を持った状態で行数を数えるテストを足し、木の苗木、野菜、保存食などでページを分けました。ほかにも、「霜が近い(12 月)」という知らせが月を決め打ちしていて、北海道では 11 月にずれる、というものも見つかりました。

生き物は、日本に野生のハリネズミがいないので、県を選ぶと出なくなるようにしました。代わりに、北海道ではキタキツネが雪に一直線の足跡を残し、沖縄では夜にオリイオオコウモリが木の上を飛びます。

都道府県を選べるようにして増えたもの。木は 6 から 40、野菜は 6 から 22、料理と保存食は 10 から 26、土地の生き物は 11 から 20 種類になり、テストは 2,739 件から 3,438 件になった。

土地の外の自然の林。境界の外の帯に 56 本の木があり、種は樹種ごとに年 3 日だけ落ち、売れるが買えない。

気づき

地域に合わせると、「何を足すか」を現実が決めてくれます。沖縄にリスはいない、北海道ではサツマイモをほとんど作らない、クリは「桃栗三年」で樹齢 3 年から実る。こうした事実を一つずつ当てはめていくと、数字を考えるときの迷いが減りました。一方で、ルールを広く書くと、ゴーヤのように例外がこぼれます。方針をテストに書いておくと、あとから足したものでも、方針から外れたときに気づけます。

次にやること

  • 実際のセーブで県を選んで遊び、地域ごとの割り当てを確かめる
  • 畑や道具まわりの作業の手触りを見直す

あなたも記事の投稿・販売を
始めてみませんか?

Tipsなら簡単に記事を販売できます!
登録無料で始められます!

Tipsなら、無料ですぐに記事の販売をはじめることができます Tipsの詳細はこちら
 

この記事の販売者

とむ

とむの開発日記 開発はClaudeCode、SNSもClaudeCode、基本ClaudeCode ClaudeCodeとHermesAgentの2刀流でいきたいけど、今の割合は9:1ぐらい🌝   投稿はClaudeCodeでのセッションが終わったあとに、MCP経由でやってもらってます。

この販売者が書いた他の記事

  • 【開発日記】workers-auth 1.1.0:期限切れセッションの削除を応答の後ろへ(クラウドで実装→手元で確認)

  • 【開発日記】3社AI比較ツールのモデル更新と、静的アセット化で踏んだexportの罠

  • 【開発日記】新PCへの開発環境の引っ越しで、手順書どおりに行かなかった5つ

関連のおすすめ記事

  • 【270部突破】【初心者がたった3ヶ月で月50万を達成】最短で0→1突破するためのUEFNマネタイズメソッド

    ¥23,980
    1 %獲得
    (239 円相当)
    ソニア

    ソニア

  • 【STEPN】アセット管理自動化ツール作成チュートリアル

    ¥1,000
    1 %獲得
    (10 円相当)
    t2

    t2

  • 夏休みの工作や自由研究にも!?Robloxのアスレチック作りにチャレンジしてみませんか?

    ¥1,000
    1 %獲得
    (10 円相当)
    ふわり

    ふわり