Viddi Blog
2020 Mar | Game Mechanic Chaotic Crafting

A stupidly complicated crafting system idea.

"Chaotic" here refers to systems (like the weather) which are (A) deterministic and (B) small changes in initial conditions result in wildly different outcomes.

Every [material, item, ingredient, food, potion] has an underlying 16 character alphanumeric code.
> For [ingredients, materials] this records its origins.
> For [items, food, potions] this determines its [effects, abilities].

Why is it chaotic? Because two seemingly similar herbs can have wildly different effects in a potion, while two very different herbs can have the exact same effect.
Very different:
  • Mandrake gathered at midnight in a cave during winter with a silver knife
  • Mandrake gathered at midnight after an animal died next to it, gathered with a steel knife on a holy day
Surprisingly the same:
  • Mandrake gathered at midnight in a cave during winter with a silver knife
  • Purple Prickly Pear gathered during the day not during a sandstorm by a friend-of-coyotes who was poisoned at the time

Math note: Each digit can hold the values 0-9-A-Z, making this a base-36 number. Numbers overflow from ZZZ...Z back to 000...0

Example of building the alphanumeric code for a gathered ingredient:
  1. The 16 character code starts with all zeros: 0000000000000000.
  2. Each piece of information about the ingredient has a 4 character code. For instance, "harvesting tool: silver knife" is encoded as 0A77.
  3. There are 7 categories of information: Ingredient Type, Ingredient Variation, Location, Time, Harvester, Harvesting Tool, Additional Context.
  4. First each category code is determined:
    Category: ValueCode
    Ingredient Type: Prickly Pear5B29
    Ingredient Variation: Purple0710
    Location: Desert + Country BDJ34 + 1100 = EK34
    Time: Daylight + Afternoon0800 + 2R9S = 2Z9S
    Harvester:
    Friend-of-coyotes + Poisoned
    S89D + 0002 = S89F
    Harvesting Tool: Hands111G
    Additional Context: Clear weather0005
  5. These 7 codes are summed together as a series of overlapping segments.
    5B29000000000000 +
    0007100000000000 +
    0000EK3400000000 +
    0000002Z9S000000 +
    00000000S89F0000 +
    0000000000111G00 +
    0000000000000005 +
    ------------------
    5B2GFK6320AG1G05
    (Con: All these summations destroys the input data. Pro: Can support any amount of input data being fed in.)
When materials or ingredients are combined to create an item or potion, all the input codes are summed together. For additional chaos, also rotate the code one to the left before adding each ingredient to it.

The result can be broken into as many as 13 section codes: 5B2GFK6320AE1G05 would become 5B2G, B2GF, 2GFK, etc. (You can actually pull far more section codes out, for instance you could say that the 2nd, 4th, 6th, and 8th characters form a code.)

Each section of code corresponds to a possible ability or effect. Many codes correspond to "no effect". For example, 5B2G in the first section could mean "fire resistance" while B2GF in the second section means "no effect" and 2GFK in the third section means "item is green".
Brainstorming the variations a game could support.

Location: near a lake, in a meadow, in the woods, in a cave, in a graveyard, next to flowers, where a river meets the sea, top of a mountain, in a tended garden, in a pot inside, underground

Harvester: while in perfect health, while poisoned, the first herb you gathered that day, while in a crowd, while encumbered