Skip to content

A system agnostic material description & combination system for rpg's. It is reproducible, explainable and give players the option to experiment on their own.

Notifications You must be signed in to change notification settings

ChuckMoe/material-combination-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Material Combination System

Intention

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.

Features

  • 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!

Materials

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

Attributes

All attributes are defined in the attributes.yml file. Changing this file will affect new databases and materials.

Standard attributes

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

Ranges

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

Combining Materials

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

Rule Options

Variations

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

Example Tables

Dice Variation
Head Good
Tail Bad
Dice Variation
0 - 5 Extreme
6 - 20 High
21 - 40 Small
41 - 99 None

Todos

  • 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

About

A system agnostic material description & combination system for rpg's. It is reproducible, explainable and give players the option to experiment on their own.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages