Typical Beginner's Mistakes in Parser Game Programming

I have read this before, and I understand rule processing on a technical level, but I still don’t have a good intuition for when to do what. I have gathered this much:

  • When defining the generic default behaviour for a new action, create check, carry out, and report rules.

  • When defining special cases for specific actions on specific things:

    • Create after rules to add behaviour that should happen “simultaneously” with the default carry out behaviour, and remember to continue the action if you also want default reporting.
    • Create instead rules for things that should override the default behaviour entirely.
    • Create before rules for things that should happen before the default behaviour, e.g. if a prior action is needed to make sure check prerequisites of the action attempted are met.
    • Don’t use check, carry out, and report since these are meant to contain the generic default behaviour.

But I’m not sure this makes at all sense. For example, I see very little difference between adding a carry out rule and adding an after rule with a continue the action. I see very little difference between adding an instead rule and a before rule with stop the action.

5 Likes