This week's blog continues on a bit from last week – the story about the crafting thread in the forums? Well, that conversation continued on and more people pitched in their ideas for a crafting system and while it got me thinking.
While it's fantastic to try and think of a one-size-fits-all solution to a problem, it's often not as easy as it sounds. If you're working on a small game then often the same solution can be used, but when you start looking at more complicated projects you need to start thinking about designing for a specific problem.
It's all well and good saying, I want to create a crafting system, but when you start looking at what that means and how many different ways there are to solve that particular problem, the one-size-fits-all idea becomes a little less helpful. It can definitely offer a good starting point, but sometimes building a system from the ground up is better than trying to tweak an existing system to fit your needs.
In terms of crafting, generally you stick some items together to create something new. But dig deeper, and you get more questions – can multiple combinations make the same item, or can the same combination of items produce different results? How does the player come across recipes? By trial and error, or can they discover recipes as they progress through the game?
There are aspects of different crafting solutions that can be applied to each scenario, but it's a case of picking out which works best. The JSON file I'm currently using is great for storing all of my item data and recipes. But the way it's set up would mean that every recipe is available to craft with from the beginning – this is great for a trial and error style crafting system, but it doesn't allow for the player to unlock recipes. A dictionary-based approach for recipes like those used in some of the projects in that forum thread would probably work better for the ability to unlock recipes.
Personally, I would try and build a new tester project incorporating the dictionary approach with aspects of my existing system to try and see how it all fits together. That way, it helps my understanding of the mechanics, but it also allows me to make adjustments where necessary and work out if it truly fits my needs. It's a bit more effort to begin with but pays off in the long run.
Plus, it gives me nonsense to talk about in these blogs! And on that note, there's enough nonsense in this edition. Till next time!