Contracts

A contract is a short list of questions about one game mechanic, such as a stamina bar or a backpack. Answer the questions, and the mechanic is defined well enough to build and test. Contracts are optional: a package is complete without one.

Contract and adoption

A contract asks the questions about one mechanic. An adoption is one set of answers to those questions, and a set of answers is one specific behaviour. Answer Ranged value one way and you have an XP bar that fills into the next level; answer it another way and you have a stamina bar that refuses an attack you cannot afford. Health, Stamina and Oxygen are three adoptions of the same contract.

  1. Contract

    The questions about one mechanic. 15 for Ranged value.

  2. Adoption

    One set of answers, which is one behaviour. Change an answer and you have a different adoption.

The Ranged value contract asks, among its 15 questions:

The contract asksThe Stamina adoption answers
You have 10 stamina. An attack costs 20. Can you attack?No. You need the full cost.
A hit would take stamina below zero. What happens?It stops at zero and the extra is lost.

The numbers stay yours: how much stamina there is, how fast it recovers, how long the wait is. Every contract also comes with acceptance tests, the checks a finished game must pass.

Your first adoption

  1. Find the contract for your mechanic in the catalogue. Search with the word you already use: health bar, backpack, coyote time, autosave.
  2. Pick the adoption closest to your game. If none fits, start from the contract itself and answer the questions yourself.
  3. Open it in the authoring tool with the button on its page, change the answers and numbers that do not fit, and save it into your package.

That is the whole workflow. The files that come out of it are ordinary package files; the Handbook chapter shows what they look like.