クラフトゲーム開発(NPC の仕様決め)
NPC の仕様を決めて実装していきます。
NPC にやってほしいこと
NPC はゲーム進行に応じて増える仲間を想定していて、やってほしいことは
- ホームエリアで割り振った仕事(クラフト、建築、生産)をしてほしい。
- 定期的にくる襲撃の際に防衛してほしい。
- NPC 同士が一緒に仕事したときに仲良くなって技術レベルを高めあってほしい。
- 探索エリアに連れていったときに一緒に戦ってくれたり、アイテムを持ってほしい。
です。
とりあえず、ホームエリアで NPC がクラフトするあたりの仕様を決めていきます。
NPC によるクラフトの仕様決め
このゲームはコロニーシミュレーション寄りにしたくて、NPC ごとに名前と見た目、能力が異なるようにするつもりです。その NPC の行動は主に「運搬」「クラフト」「建築」になる予定です。
- 運搬 ... アイテムを要求しているチェストにアイテムを運搬する。
- クラフト ... チェストにあるアイテムを使ってクラフトを行う。耕作や牧畜を含む。
- 建築 ... チェスト(資材置き場)にあるアイテムを使って建築指示に従って建築する。
クラフトについてもう少し書くと、
- 鍛冶、調理、などの仕事によっては専用の部屋というかエリアが必要な仕組みにする。
- かまどなどの屋外の建物は部屋の代わりに排他的なエリアが必要な仕組みにする。
- 部屋には出荷用チェスト、入荷用チェストがあり、入れるアイテムを指定できる。
という仕組みにします。
とりあえず、NPC を制御する Worker クラスの実装に着手していきます。
NPC 用の Worker クラスの定義
基本的には、状態更新用のメソッドを呼び出して処理するだけです。
状態遷移の実装は switch でいきます。
とりあえず「かまど」で「木材」から「炭」を作るというタスクを処理できるようにしていこうと思います。
まとめと今後の予定
次回からは NPC がかまどで作業する仕組みに着手します。そして引き続き継続を目標にやっていきます。がんばります。