Friday Progress Report 153
The crop system and "moddability"

For us making the game moddable is very important, we love mods and we do also make mods for games we really care about. And we want to make the work modders as easy as possible, in this post i want to explain some of the aspects of the Crop system and how we are making it easier to mod and also report the progress on the entire system.
All the content data of the game exist in xml files, which are very easy to mod. The crop system starts in the Plants.xml file where the most vital data of a plant resides.

Above you can see a bit of the Strawberry entry in the Plants.xml file, the most vital info is in the first lines between the variation tags, this links to the prefabs, one prefab for each crop plot size. Normal crop plots are M(medium) sized, while plant vases will be S(small), and large plots for trees and such are L(large) for each size a different prefab is used with different seed stack costs and a different amount of plants, for example: planting a turnip in a vase will cost a single seed stack and grow one turnip, growing turnips on a farm plot costs 4 stacks and produces 4 turnips for each farm crop.
We have little to no experience in modding with Unity prefabs and how make the game recognize and import modded prefabs properly, so until we study and implement it, modders will have to work with our existing models and animations.
Next in the file come the plant needs, nutrients consumed, water, soil PH and such, and beyond that comes the bulk of each plant entry: the Stages of growth.
Each plant has 7 stages, starting from Seedling and ending in Fully Ripe, each stage has its own temperature needs, animation, drops (harvestables) and many other details which allow our plants to have such unique properties like different harvestable parts in different stages, in the stages where the plant has harvestable parts you can see the link to Crop entries (in the case Crops.Strawberry) this links the Plants.xml with the Crops.xml.

Many plants like Potatoes release seeds which are ready for planting, but some like Tomato give fruit instead, right now the removal of seeds from fruit is not implemented, this will happen in the cooking screen, and will be part of the cooking system (ingredient preparation).

While crops that use prefabs are working right now the crops that use the grass system are not working yet because the connection between the Crop system and the Grass system is not finished, and grasses can only drop Hay for now, they do not drop items yet, so no harvests even on wild grasses for now.
The development is quite slow on the farming feature due to the complexity of integration between all the systems involved and making as much as possible in ECS (Unity's Entity Component System) which is quite hard to use, but extremely potent for optimization which is also a very important aspect for developing a game which will allow huge crop fields without dropping below 60 frames per second.
For the farming feature to be classified as complete we have to solve all those problems and make it easy to mod as the cooking system is right now, this is taking a bit longer than expected and I cannot give a definite answer one when it will be done, but i can promise that as soon as we finish this feature we will drop a new free demo here and on Steam so you can try it out too!
Oh and there is also the Steam workshop, we want to make use of this wonderful feature, but we have no experience with it, and it might not ready on the end of year release.

For us making the game moddable is very important, we love mods and we do also make mods for games we really care about. And we want to make the work modders as easy as possible, in this post i want to explain some of the aspects of the Crop system and how we are making it easier to mod and also report the progress on the entire system.
All the content data of the game exist in xml files, which are very easy to mod. The crop system starts in the Plants.xml file where the most vital data of a plant resides.


Above you can see a bit of the Strawberry entry in the Plants.xml file, the most vital info is in the first lines between the variation tags, this links to the prefabs, one prefab for each crop plot size. Normal crop plots are M(medium) sized, while plant vases will be S(small), and large plots for trees and such are L(large) for each size a different prefab is used with different seed stack costs and a different amount of plants, for example: planting a turnip in a vase will cost a single seed stack and grow one turnip, growing turnips on a farm plot costs 4 stacks and produces 4 turnips for each farm crop.
We have little to no experience in modding with Unity prefabs and how make the game recognize and import modded prefabs properly, so until we study and implement it, modders will have to work with our existing models and animations.
Next in the file come the plant needs, nutrients consumed, water, soil PH and such, and beyond that comes the bulk of each plant entry: the Stages of growth.
Each plant has 7 stages, starting from Seedling and ending in Fully Ripe, each stage has its own temperature needs, animation, drops (harvestables) and many other details which allow our plants to have such unique properties like different harvestable parts in different stages, in the stages where the plant has harvestable parts you can see the link to Crop entries (in the case Crops.Strawberry) this links the Plants.xml with the Crops.xml.

Many plants like Potatoes release seeds which are ready for planting, but some like Tomato give fruit instead, right now the removal of seeds from fruit is not implemented, this will happen in the cooking screen, and will be part of the cooking system (ingredient preparation).

While crops that use prefabs are working right now the crops that use the grass system are not working yet because the connection between the Crop system and the Grass system is not finished, and grasses can only drop Hay for now, they do not drop items yet, so no harvests even on wild grasses for now.
The development is quite slow on the farming feature due to the complexity of integration between all the systems involved and making as much as possible in ECS (Unity's Entity Component System) which is quite hard to use, but extremely potent for optimization which is also a very important aspect for developing a game which will allow huge crop fields without dropping below 60 frames per second.
For the farming feature to be classified as complete we have to solve all those problems and make it easy to mod as the cooking system is right now, this is taking a bit longer than expected and I cannot give a definite answer one when it will be done, but i can promise that as soon as we finish this feature we will drop a new free demo here and on Steam so you can try it out too!
Oh and there is also the Steam workshop, we want to make use of this wonderful feature, but we have no experience with it, and it might not ready on the end of year release.