I wanted to create a system agnostic material combination system for rpg's. Every recipe should reproducible, explainable and give players the option to experiment on their own.
- Reproducible: Every time you combine the same materials, the result will be the same. In theory.
- Explainable: Every material has a set of properties. Summing them up gives you the result.
- Experiment: Don't tell your players the attributes of a material. Let them research them or simply find new recipes by trial & error!
Every material is unique, both in its name and in its combination of attributes. Meaning no two materials will have the exact same attributes. Every material can also have a description.
Example:
Name | Absorbance | Notes |
---|---|---|
Dirt | 5 | |
Stone | 1 | |
Wood | 5 | not allowed |
All attributes are defined in the attributes.yml
file. Changing this file
will affect new databases and materials.
Below you will find a list of standard attributes used with this project. This list may change in the future. It tries to represent the most basic attributes of materials.
- hardness
- toughness
- stiffness
- ductility
- strength
- absorbance
- corrosion_resistance
- reactivity
- acidity
- electrical_capacitance
- magic_capacitance
- magic_affinity: Affinity to a certain kind of magic
Depending on what kind of material you want to create, you should think about your attribute ranges.
Are you looking for realism? Then how about a range from 0 to 99, putting everything in relative relation.
Are you looking for a rarity approach? Then scale the attribute ranges by rarity.
Range | Rarity |
---|---|
0 - 10 | Common |
20 - 40 | Uncommon |
80 - 120 | Rare |
240 - 320 | Epic |
640 - 800 | Legendary |
If you want to combine or mix some materials to get another, more potent one, simply add all attributes individually. The resulting material is the one with the exact set of attributes.
Example:
Name | Absorbance | Reactivity | Strength | Corrosion Resistance |
---|---|---|---|---|
Dirt | 5 | 4 | 0 | 1 |
Stone | 1 | 0 | 7 | 3 |
Combination Material |
6 |
4 | 7 | 4 |
To not always get the exact same material when combining, you can introduce uncertainties. Let's say you already know a certain combination results in a healing potion giving you 1d10 hp. What happens if you mix it in a hurry or in an unclean environment though? You introduce a chance for variation because you might miscalculate the exact amount or add bacteria by chance. So decide on how big the chance is to introduce variation and roll (you or the player) a d100 to see if there is variation. Roll a d2 to see if its good / strengthening or bad / debilitating
Dice | Variation |
---|---|
Head | Good |
Tail | Bad |
Dice | Variation |
---|---|
0 - 5 | Extreme |
6 - 20 | High |
21 - 40 | Small |
41 - 99 | None |
- Command line interface
- GUI ?
- Guided recipe creation (1 result material + X base materials). Options:
- New base materials only
- New and existing base materials
- Guides
- Choosing attributes for my material