5
$\begingroup$

I’m looking for methods and/or software to list and cross-check the "rules" of a universe.

Ideally, I’d like to be able to save each rule in a document or cell and to associate it with its consequences, limitations and general impact on the universe.
Then I’d like to generate a list of every possible pairs of rules I'll then use to analyse their possible effects, conflicts (and solutions or workarounds) and impact on my story as well.

Allowing version control and frequent modifications of the list would be a huge plus.


I have half a dozen lists, focussing on different topics (magic, law, religion, government, robot behavior, etc...), each of them containing at least ten rules.

For now, I'm using a bunch of text (and one csv) files and things are starting to get difficult to maintain.
I'm looking for process or tools to make the whole thing easier, and prefererably that allows big number of rules to be analysed and cross-checked.

Also, I don't care if a proposed solution is completely different from my current one, as long as it gives the same results and is easy to use.


An example of what I’d like to do:

1. Write down all the rules and generate a list of their combinations :

Rule a = "..."
Rule b = "..."
Rule c = "..."
etc.
Rules a + b = "..."
Rules a + c = "..."
Rules b + c = "..."
etc.

2. Check every rules and every combination, and take note of any additional research work or changes I need to do

Rule 1:

Rule a: There are no trees on the planet

a => TODO: List every common uses of wood and find alternative materials for each of them.

(Same for the rest of the rules)

Combination 1:

Rule b: All manual labour is now performed by sentient robots
Rule c: Sentient robot are disgusted by the process of eating

b + c => Conflict, as robots won’t be able to cook or serve food

Solution: Drop one of these two rules.

Combination 2:

Rule d: Tigers can fly

Rule e: Old people are allergic to silver

d + e => No impact

Combination n:

Rule f: Every spell necessitate a human sacrifice
Rule g: People travel through teleportation

f + g => Problem, if for each teleportation someone dies, there won’t be anyone left after a couple of years

Workaround: Teleportation is done using magic rings, which need only one human sacrifice to be enchanted and can be used for years without additional sacrifices.


EDIT: I've edited my question, please tell me if I can improve it.

$\endgroup$
  • 1
    $\begingroup$ What you're describing is a relational database. You might use a free one like MySQL to get organized. Talk to a developer to help you set it all up, although at such a basic level you may be able to set it all up yourself. Designing the tables wouldn't be too difficult either. This would make it very simple to cross-check which rules tie in with which behaviors, etc. Detecting collisions would be easier, although not quite automated. Making the final decisions would still be up to you. $\endgroup$ – AndreiROM Jun 6 '16 at 16:21
  • $\begingroup$ You might also consider grouping these rules into categories, to avoid having to sort through loads of irrelevant relations. Say something like "Primitive building materials" and then relate everything having to do with wood, stone, reeds, clay, and so on. $\endgroup$ – Kys Jun 6 '16 at 16:52
  • $\begingroup$ @AndreiROM I didn't think about it. So I'll just need to create a relationship table contaning a link to the "analysis" file for each pair of rules and maybe a status (OK/blocking/needs work/etc)... Could you write a more detailed answer? Maybe it could interest other people. $\endgroup$ – Babika Babaka Jun 6 '16 at 17:34
  • $\begingroup$ Interesting question, doubt you'll get answer here, it's looks more like programming question about generation rules and attributes and cross-validate them to generate and verify new/old rules. Big data, AI, programming. Most likely you have to check it by yourself, and figure out also by your self - which rules work in particular situation and what is their result. Rules are learned by examples and definitions given by examples. And for automatic determination which rules can be applied, situation have to be be recognized and attributes extracted. Not impossible, projects exists, but not done $\endgroup$ – MolbOrg Jun 6 '16 at 17:36
  • $\begingroup$ @MolbOrg I'm not looking for automatic determination. As I have (poorly) explained, I'm looking for a way to organize my (written) rules and to make sure I've (manually) cross-ckecked each and every pair of them. Preferably in a way that allows me to use some form of version control on my notes. I didn't explain it clearly enough. $\endgroup$ – Babika Babaka Jun 6 '16 at 17:44
2
$\begingroup$

I'd use a combination of either HTML, Wiki or mind-maps for managing your notes and Git for version control.

I think any sort of relational database will collar your thinking sooner rather than later. Personally I've got good use out of Freemind.

References:
http://webdesign.about.com/od/windowshtmleditors/tp/free-windows-editors.htm
https://en.wikipedia.org/wiki/List_of_wiki_software
http://lifehacker.com/five-best-mind-mapping-tools-476534555
http://freemind.sourceforge.net/wiki/index.php/Main_Page
https://en.wikipedia.org/wiki/Comparison_of_version_control_software
https://git-scm.com

$\endgroup$
1
$\begingroup$

What you're describing is a relational database. You might use a free one like MySQL to get organized. Talk to a developer to help you set it all up, although at such a basic level you may be able to set it all up yourself.

Designing the tables wouldn't be too difficult either.

For example, create tables such as: "Rules", "Effects", and "Examples". Then create tables to store associations between them. You can then run queries to determine which rules reference which effects/examples.

Detecting collisions would be easier, although you would still have to analyze the data yourself.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.