Now, this works great, but now that I'm brainstorming tech trees and advancement paths, and figuring out the progression, it is showing it's limitations. So I've come up with a modification. Now, items have another field, MaterialType, that denotes the class or type of the material, as well as a name. The MaterialType is strongly similar to the old names, ie a Stick is still a Stick as far as the recipe key concatenation goes, but now I can have Maple Stick, Oak Stick, etc... and any kind of Stick can be used in a recipe calling for Sticks. To this system, I've also added the concept of item levels, which are held in a table (I'm still mulling over the ilevel system details) and which denote the "power" of the item. This ilevel is referenced by the item crafting subsystem to scale the power of the crafted item accordingly.
I'm still hammering out the particulars of the item level system, and how it relates to the output of the crafted item. I've thought about having a single ilevel, that scales all aspects of the output item, or having separate ilevels corresponding to aspects of item powers: physical, fire, lightning, etc... I'm kind of leaning toward a single ilevel, but time will tell which way I end up preferring.
The ilevels of all components need to be summed, and the resulting coefficient applied to the formula that powers the item.
So say a Maple Stick has an ilevel of 2, and Powdered Pumice has an ilevel of 3. StickStickVolcanicAsh made of these will have a combined ilevel of 7. Currently, the most likely system will divide this coefficient by some value (maybe 10 or something to that effect) and use the resulting fraction to scale the damage components, durations, etc...
So if a baseline Wand of Sparks does a range of 12 to 15 damage, and I craft it with an ilevel of 7/10, I would end up with a Wand of Sparks that does 8.4 to 10.5 damage. Now, say I find a couple Oak Sticks and some more Powdered Pumice. Now if I craft a Wand, the ilevel will be, say, 11. That gives me a coefficient of 1.1, for a Wand that does 13.2 to 16.5 damage.
The benefits of this system include less work on my part in constructing recipe tables. I can write a recipe (StickStickVolcanicAsh) and have it work for any combination of StickStickVolcanicAsh, whereas otherwise I would have to explicitly write recipes for all possible permutations of the recipe (MapleStickMapleStickPowderedPumice, MapleStickOakStickPowderedPumic, etc...) which would get out of hand very quickly. Barring that, I would still have to make a lot more recipes to give the player power advancement choices; this way, the player can power advance in small increments using already-known recipes applied to better and better ingredients.
The ilevel can be used as well to scale other things besides damage numbers. Durations, particle system scaling (to make bigger, flashier effects at higher levels), ranges, etc...
[hr]
I've also been toying with the idea of a "hidden" field of study. The tech tree system has loosely settled into 3 different fields, roughly corresponding to scribing (scrolls and spells), alchemy (potions) and artifice (wands, relics). But there are a few other avenues as well (cooking being the chief one so far, but possibly with the addition of crafting-based sub-trees such as smithing, woodworking, etc... that can boost the main tech trees) that include their own specialized equipment. I'm thinking of adding a hidden tech tree, aligned with necromancy, to be characterized as a hidden, forbidden, obscure art practiced in secret. As you work your way through the world, killing mooks and whatnot, you're going to encounter items which seemingly have no use. Skulls, bones, feathers, tar, etc... Things that won't be used in "standard" tech. But devious players who spend enough time in seedy places, tinkering with shady materials, might stumble upon the means of creating a dark altar which acts as a craft bench for necromancy, opening up a completely optional tech tree.
This, right now, is merely speculation, as I haven't done anything except model a couple rough designs for an apprentice Dark Altar craft bench, but it's an idea that appeals to me.
Since a lot of my work lately has just been behind the scenes, I don't really have any new screens to post, but I'll try to get some new eye candy up sometime soon.
I hate to propose even more work, but if I were to implement such a hidden tree, I'd want to implement at least two, and have them be exclusive, so that learning one would prevent learning the others. Or maybe if I felt more generous, they could all be learned, but the workbenches would be exclusive, so that one had to be destroyed (possibly destroying items made with it? although the player would keep any tech advancement so he wouldn't have to start from scratch upon returning to that tree) before one of a competing tree could be built.
Just an idea. Feel free to ignore it--it would add a significant amount o work, I'm sure