NPC をコーディングして領地経営するゲーム開発(市場と倉庫の仕様検討)
今回は特殊な建物の仕様を検討して実装に着手します。
やりたいこと
少し特殊な建物である「倉庫」「交易所」について仕様を決めていきます。
倉庫
通常は NPC 1体が1つのアイテムしか運搬できないのですが、倉庫から他の建物への運搬は「荷馬車」を使って1つのアイテム複数を1回の運搬で行えるようにします。
考えた仕様としては
- 倉庫の上に NPC がいるときに、荷馬車でアイテムを運搬するコマンドが使える。
- コマンドを実行する際に板材を消費する。
- 運搬を開始すると、運搬が完了するまで中断できない。
- 運搬が完了すると荷馬車は消える。
- 荷馬車と通常ユニットの移動速度は同じ。
この倉庫では、オーダーをなくしてその場所に「倉庫の上の NPC は輸送コマンド~を利用できます」「輸送コマンドの実行には木材が必要です」みたいなメッセージを表示しようと思っています。
↓ 通常の建物をクリックしたときのパネル。オーダーとストレージがある。
よいです。
交易所
これはエンドコンテンツとしての動作を想定していて「たくさんのアイテムを輸出して貨幣を得る」「大量の貨幣で貴重なアイテムを購入する」といった役割をさせたいです。
基本的には他の建物と同じで、輸出のときには「輸出するアイテムをストーレジに入れてワークすると貨幣が得られる」という風にして、輸入のときには「オーダーを選んで貨幣をストレージに入れてワークするとアイテムが得られる」という風にします。
ただ、他の建物と同じ横長のオーダー表示にする必要はなくて、輸出のときは例えば「銅貨1を入手できる交易品」グループの中に「卵x4」というふうな簡略表示にしようと思います。
貨幣については銅貨10枚で銀貨1枚、銀貨10枚で金貨1枚、というレートにします。
この貨幣の両替も「銅貨10枚をクラフトすると銀貨1枚が得られる」というオーダーを用意しておけば後で変更もできそうだしオッケーです。
この交易所での交換レートはステージをつくる人が調整できる必要がありそうなので、ステージ初期化スクリプトの setup.lua からオーダーを新規追加する機能の実装が必要そうです。
やったこと
「倉庫」で運搬したときに表示する荷馬車をどう表現するかを試行錯誤しました。
馬イラストは NPC に使っている 2D Pixel Unit Maker - SPUM アセットに馬も含まれていたのでそれを利用しています。
今のところ1番上の荷車を引くタイプにして、荷物に運んでいるアイテムのアイコン表示をしようと思っています。
実際に動作する荷馬車を作るあたりや、運搬コマンドを追加するあたりは次回以降にやろうと思います。
雑多な修正
雑多なタスクも着手していきます。やらないと終わらないので。
ダンジョンの背景の追加
ダンジョンの背景画像は多重スクロールするのですが、洞窟だけでなく暗い城塞内部と暗い森のスクロール背景を追加しました。
これらの背景は 2D Dungeon Backgrounds for Mobile Games と Simple 2D Background Pack アセットとを使っています。
よいです。
まとめと今後の予定
漠然と考えていた「倉庫(と荷馬車)」と「交易所」についてどうするか検討しました。よいです。
次回は倉庫と荷馬車の実装か、製品版のゲームとして見直したときに未実装な機能に着手しようと思います。がんばります。