One goal of the game that we want to create is that npc can't spawn random stuff like other game. If a npc sell you a piece a wood it's because he got it from a tree he cut himself or buy them to another npc so he can resell it higher to you and make profit.
We want to create a highly diversified and alive mechanic game. So while you are not in the game you could program a npc that do all the boring stuff for you while you are at work. You can program them easy task like mining and cutting tree all day. Then when you return from work to play Citywars Savage you can spend the resource the npc mined for you into more important stuff.
You will be able to create npc administrating your shop while you are afk and other stuff like that. So this way at any time of the day you will be able to sell stuff in your own shop.
Also we start from this module because this will allow us to quickly make the game look more alive. If there is not much people playing the game at its beginning. Example if there is only 5 people online during the day. But 30 player programed their npc and they are doing task in the game the game would look a lot more alive and intéresting to play for these 5 alone player and might bring more player to stay and play longer.
How it will work ?
To save time since we have experience at programing web interface and less effective with unity ui we will program the tool directly into the website. Also one of our goal is to make the game 100% xbox controller and ps4 controller compatible so making a programmable npc behavior tool inside unity risk to be a hard and long task making it controller compatible.
So if you are familiar with blender you know the node editor. For our version we will use this open source one one called D3 Node.
So you will be able to visually program your npc with the help of those nodes. You will be able to give them condition and behavior in function of their status.
Check inventory -> If iron ore < 40
Then mine mineral -> Iron ore
Check inventory -> if "Iron Ore" > 40
Drop inventory in chest
And then you can ask your npc to return at your house drop the mineral into your chest and return to work.
Basic Action for V0.1
One thing we will have to be cautious is the processing power that would use those npcs on the server to maintain their brain and actions. That's why we will limit all pathfinding actions to a certain limit to prevent npc to request to much process for their calculation. So we will see later in the future how this system will act in a real environment.
Few nice thing we want to add in this system is that people can share their work easely. Like we want to create many node examples where people can simply copy paste into their own npc so they can start to work on them quickly.
In the future you will even be able to sell your blueprint of an npc so people can buy your work and you can gain currency in the game by building npcs for other players.
I think that would be really interesting to see what people can do with that kind of system on their own.