{"schemaVersion":1,"record":{"key":"lesson/choice-cost","type":"lesson","id":"choice-cost","lang":"en","title":"Choice costs and situational value","summary":"Compare options through time, resources and context to uncover a dominant choice.","updatedAt":"2026-10-20","status":"active","url":"https://gamemechanics.pro/en/lessons/choice-cost/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/en/lesson/choice-cost.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/en/lesson/choice-cost.md","aliases":["экономика","economy","баланс"],"tags":["balance","choices","economy"],"sourceIds":["source-2d559b13bf74d659"],"sources":[{"id":"source-2d559b13bf74d659","title":"Ian Schreiber: Level 3, Transitive Mechanics and Cost Curves","url":"https://gamebalanceconcepts.wordpress.com/2010/07/21/level-3-transitive-mechanics-and-cost-curves/","verifiedAt":null}],"sections":[{"id":"prerequisites","title":"Prerequisites","body":"Two weapons with different numbers may offer the same decision: take the one that is better in every situation. Begin balancing by asking what the player pays and when they receive value."},{"id":"principle","title":"The principle","body":"Cost can include resources, time, an occupied slot and a forgone opportunity. Comparison through a common cost model, as in [Ian Schreiber's lecture](https://gamebalanceconcepts.wordpress.com/2010/07/21/level-3-transitive-mechanics-and-cost-curves/), helps identify a suspicious option. A single ratio cannot describe all gameplay value.\n\nAn option dominates another in the selected model if it is no worse on every relevant criterion and better on at least one. “Relevant” requires explicit assumptions: range or accuracy cannot silently disappear from a real game's comparison.\n\n<span id=\"example-rescue-tools\"></span>"},{"id":"example","title":"Practical example","body":"### Rescue tools\n\nIn an illustrative game, players cut through debris. A saw removes 12 durability per action and consumes 3 charges. A cutter removes 8 and consumes 2. Both remove 4 durability per charge. That does not establish equivalence.\n\nFor debris with 8 durability, the cutter finishes in one action and 2 charges, while the saw needs one action and 3. For debris with 12 durability, the saw needs one action and 3 charges; the cutter needs two actions and 4. Rounding action counts changes the preferred option. This model has no misses, energy recovery or damage to the rescuer; revisit it when adding those systems.\n\nList situations before changing numbers. To give the saw a role, test different debris durability and time limits. Do not invent cutter immunity merely to justify its neighbor: first ask whether a second tool is needed."},{"id":"mistakes","title":"Common mistakes","body":"- Comparing only damage per second when scarce charges determine the decision.\n- Equalizing averages while ignoring rounding and thresholds.\n- Making every option equal in every situation and removing the reason to choose."},{"id":"checks","title":"Verify it","body":"- Compute action count by rounding durability divided by tool strength upward.\n- Record actions, charge consumption and the reason for preference in three situations.\n- Find a justified use for every option you intend to keep.\n- Check the model in play: waiting for animation may also be a cost."},{"id":"agent-task","title":"Prompt for an AI agent","body":"> Make a table for debris with durability 8, 12 and 20. Count actions and charges separately and state assumptions. Propose one change if a tool is never useful. Do not claim the table proves balance.\n\nContinue with [Last Ferry](/en/practice/#last-ferry) and the [Meaningful Choices lens](/en/lenses/#schell-039)."}],"relations":[{"type":"requires","direction":"outgoing","label":"Before you start","key":"lesson/scope-and-prototype","title":"Scope and a testable prototype","url":"https://gamemechanics.pro/en/lessons/scope-and-prototype/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/en/lesson/scope-and-prototype.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/en/lesson/scope-and-prototype.md"},{"type":"requires","direction":"incoming","label":"Continue learning","key":"lesson/controlled-randomness","title":"Randomness and unlucky streaks","url":"https://gamemechanics.pro/en/lessons/controlled-randomness/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/en/lesson/controlled-randomness.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/en/lesson/controlled-randomness.md"},{"type":"requires","direction":"incoming","label":"Continue learning","key":"lesson/progression-pacing","title":"Progression: capabilities and pacing","url":"https://gamemechanics.pro/en/lessons/progression-pacing/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/en/lesson/progression-pacing.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/en/lesson/progression-pacing.md"},{"type":"explains","direction":"outgoing","label":"Apply the principle","key":"mechanic/rpg-grind--item-evolution","title":"Item evolution","url":"https://gamemechanics.pro/en/knowledge/mechanic/rpg-grind--item-evolution/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/en/mechanic/rpg-grind--item-evolution.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/en/mechanic/rpg-grind--item-evolution.md"},{"type":"practices","direction":"outgoing","label":"Put it into practice","key":"practice/last-ferry","title":"The last ferry","url":"https://gamemechanics.pro/en/knowledge/practice/last-ferry/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/en/practice/last-ferry.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/en/practice/last-ferry.md"},{"type":"reviews","direction":"outgoing","label":"Review through a lens","key":"lens/schell-039","title":"Meaningful Choices","url":"https://gamemechanics.pro/en/knowledge/lens/schell-039/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/en/lens/schell-039.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/en/lens/schell-039.md"},{"type":"contains","direction":"incoming","label":"Learning paths","key":"path/balance","title":"Balance and progression","url":"https://gamemechanics.pro/en/learn/balance/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/en/path/balance.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/en/path/balance.md"}],"placements":[],"supersededBy":[],"attributes":{"category":"design","level":"beginner","minutes":5},"endsAt":null,"provenance":"Original gamemechanics.pro material. Check illustrative examples in your own project.","license":"CC-BY-4.0","codeLicense":"MIT","attribution":"gamemechanics.pro contributors"}}