So, I have to admit that we’ve had a devlog over on Steam for quite some time. You can flip through there for some more neat screenshots and info.
Today though, we are going to discuss:
Items, items, items. Any game with extensive crafting really does revolve around them, and it is therefore of the essence that the underlying systems governing and presenting them to the player rest on solid foundations. Ours, we like to think, do.
Items in Hammerting are defined primarily in two ways, through their “Modifiers”, and through their “Classifications”. Rather than being hard welded into some monolithic data structure, items carry very little information in and of themselves, and rather act primarily as container objects for “Modifiers” — effectively a set of values with a type — which the crafting system passes on through the various crafting stages, modifying, translating or otherwise using their values along the way. “Modifiers”, in turn, can have “Classifications”, which are string and hash tags which can have hierarchical inheritance from other “Classifications”, and which are used to provide “Modifiers”, carried by items, with identity. So what does that mean?
An axe, for example, is made from two components, an “Axe Head”, and a “Handle”, and those are both, in turn, made from the various metals available in the depths of the Mountain. One of the requirements we had on the system when we did our extensive rewrite of it back in September, was that we wanted end products, like the axe, to individually reflect the metals they and their components were made from, and thus the system has to preserve that kind of information, as well as the typology of the various axe heads and handles used. So, for example, you could have a Butcher’s Axe made with a Copper Cleaver Axe Head and a Curved Iron Handle, or a Woodsman’s Axe made from a Mithril Hawk Axe Head and a Straight Gold Handle. Powerful stuff.
Under the new regime, we use a translation scheme, by which a particular crafting recipe translates “Modifiers” in the incoming crafting material to its own outgoing values, and through such sequences the raw inputs from the base of the crafting trees can be propagated to the eventual leaf-node end products, end products which will then effectively carry their entire crafting history with them. An “Axe Head”, for example, has a “Sharpness” modifier, which it creates by looking at “Hardness” and “Malleability” modifiers in the incoming metal, and which all metals then have to some degree or another. The finished axe, in turn, can do whatever it wishes with the incoming “Sharpness” value, and this varies per axe type, but usually it propagates by some factor into the various damage types, for example “Slashing Damage”, or “Piercing Damage”. The beauty of this is that, rather than adding in an axe head per metal type, we only have to add the axe head type (e.g. “Cleaver Axe Head”) once, and then have its actual values qua “Golden Cleaver Axe Head”, calculated from the metal that was used in the concrete crafting instance.
So, for example, a Hawk Axe Head made from Copper would be lighter and sharper than one made from Gold, which could increase the “Slashing Damage” of the axe made from Copper, but at the same time the axe made from Gold would have a higher “Crushing Damage”, as “Crushing Damage” is heavily dependent upon the weight of the weapon, making your optimal choice of axe heavily dependent on the enemies you plan on encountering. Not all enemy encounters are planned affairs, so perhaps a more balanced axe type could be the go-to choice? Then there are the considerations of the peaceful application of axes as crafting tools, so other dimensions would also come into play when considering what best to put in the hands of your stout little wards.
More than Weapons
The system permeates all crafting interactions in the game, and, in another example, Food uses a similar layout as Weapons, in which various base “Tastes” — e.g. “Salty”, “Bitter”, “Sweet” — in the primary cooking ingredients, like Tubers and Mushrooms which can be found and cultivated in the Mountain, can be propagated upwards through the crafting tree, to finished food products, which will then by their respective types have various taste preferences. Beer, for example, is best made from “Bitter” tasting foods, whereas “Bitter” foods wreck any good cake, as cakes usually prefer “Sweet” tastes. Except the Bitter Cake, of course.
There’s a lot going on, and little by little, these types of interactions and dependencies will make their way into pretty much every aspect of crafting and building in Hammerting — Perhaps making a solid Gold foundry isn’t the best idea when the magma eventually comes slushing through it? — and provide ample design space for emergent behaviors, ideally providing a fun and varied experience with each playthrough of the game.
Balancing these heavily intertwined systems is another matter, but we have done a fair bit of thinking on that as well. Stay tuned!