Personalization questions

Optional

Personalization lets you ask the builder a question that each build answers for itself. The builder is the person, team or AI that turns your package into a game. An answer can set shared tuning numbers, give the builder a creative instruction, or both. Every question has a default.

This is not for choices made by the player during play. Difficulty settings and upgrades the player picks belong in the game's mechanics.

personalization.json, the questions file

{
  "questions": [
    {
      "id": "wave_pressure",
      "prompt": "How intense should enemy waves be?",
      "type": "choice",
      "default": "steady",
      "options": [
        {
          "id": "calm",
          "label": "Calm",
          "sets": { "wave.gap_seconds": 24 }
        },
        {
          "id": "steady",
          "label": "Steady",
          "sets": { "wave.gap_seconds": 14 }
        }
      ]
    },
    {
      "id": "warning_time",
      "prompt": "How many seconds before a wave should the horn sound?",
      "type": "number",
      "default": 3,
      "sets": "wave.warning_seconds"
    },
    {
      "id": "wave_mood",
      "prompt": "How should the quiet between waves feel?",
      "type": "text",
      "default": "Tense, with distant movement but no music"
    }
  ]
}

Three kinds of question:

  • A choice question lists options. On an option, sets is a map of numbers written into tuning when the builder picks it.
  • A number question takes a number. Its sets names the one tuning key the answer fills.
  • A text question takes free text. The builder reads it and decides.

A question id is lowercase words joined by underscores or hyphens.

sets can only name a tuning key that has a range. Every number an option writes, and a number question's default, must sit inside that range. If one sits outside, the validator (the checking tool) refuses it. If the builder answers a number question outside the range, that answer is refused and the build record fails the build-record check.

Questions are applied in their listed order. A later question may set a key an earlier one set, and the later answer wins. The builder's report of the build stores every answer, including defaults, and every tuning number as it stands after the answers are applied. Anyone can rebuild the same numbers. The creative answers stay free.

An option or number question without sets gives creative instruction only.

The Who decides chapter shows how a > PERSONALIZATION: tag connects a prose section to a question.

Full rules: OpenGDD specification, §5.

← Palette and colour promises · All chapters · Contracts →