{"schemaVersion":1,"record":{"key":"mechanic/automation-programming--t115","type":"mechanic","id":"automation-programming--t115","lang":"en","title":"Programming as a gameplay challenge","summary":"A program solves a task by transforming specified inputs into outputs with limited instructions and memory.","updatedAt":"2026-10-22","status":"active","url":"https://gamemechanics.pro/en/knowledge/mechanic/automation-programming--t115/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/en/mechanic/automation-programming--t115.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/en/mechanic/automation-programming--t115.md","aliases":[],"tags":["Automation and programming","Mechanics and variants"],"sourceIds":["source-96be186d8ada50a0","source-2fb392d4831688b7"],"sources":[{"id":"source-96be186d8ada50a0","title":"Factorio: Content","url":"https://www.factorio.com/game/content","verifiedAt":null},{"id":"source-2fb392d4831688b7","title":"Human Resource Machine","url":"https://store.steampowered.com/app/375820/","verifiedAt":null}],"sections":[{"id":"principle","title":"How it works","body":"A program solves a task by transforming specified inputs into outputs with limited instructions and memory."},{"id":"variants","title":"Variants","body":"### Mechanic variants\n\n<a id=\"t115-variants\"></a>\n\n- Sequences order a set of simple instructions. <a id=\"t115-v1\"></a>\n- Loops repeat actions until a stopping condition. <a id=\"t115-v2\"></a>\n- Branches choose responses from input values. <a id=\"t115-v3\"></a>\n- Memory limits require reusing stored data. <a id=\"t115-v4\"></a>"},{"id":"example","title":"Design example","body":"A robot sorts labeled parcels with one sensor and only two available memory cells.\n\nPrototype check: Test unseen inputs so a valid program does not merely memorize the displayed tutorial example."},{"id":"context","title":"Context and limits","body":"Automation moves repeated work into a system; the player builds connections and identifies the limiting stage. Each overview separates player actions, state changes and alternative rules. Examples are hypothetical design scenarios, not claims about a named game. A prototype check states an observable question for the next iteration. Existing detailed references remain separately linked from the direction map."}],"relations":[],"placements":[{"catalogId":"automation-programming","id":"t115","title":"Automation and programming","url":"https://gamemechanics.pro/en/mechanics/automation-programming/#t115","categoryIds":["mechanics"]}],"supersededBy":[],"attributes":{"preview":{"updatedAt":"2026-10-22","title":"Programming as a gameplay challenge","description":"A program solves a task by transforming specified inputs into outputs with limited instructions and memory.","image":{"src":"images/mechanics/adventure-human-resource-machine-00.webp","width":1440,"height":810,"game":"Human Resource Machine","sourceUrl":"https://store.steampowered.com/app/375820/","originalUrl":"https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/375820/ss_5de238ca62f67dc97c940bd6af61c03a4320c981.1920x1080.jpg?t=1692721273","credit":"Tomorrow Corporation","rights":"Game imagery © its respective rights holders. Publisher-distributed Steam screenshot; all rights reserved. Excluded from MIT and CC BY 4.0.","caption":"Program commands control transport and calculation","alt":"Program commands control transport and calculation","markers":[{"x":84,"y":65,"label":"The program defines execution order"},{"x":25,"y":49,"label":"An agent executes commands in the game world"}]},"tips":["Let players trace program execution on a specific input."],"examples":[{"title":"Human Resource Machine","url":"https://store.steampowered.com/app/375820/"}]}},"endsAt":null,"provenance":"Original bilingual editorial overviews authored for gamemechanics.pro on 2026-10-20 and reviewed on 2026-10-21. Scenarios are hypothetical design examples; prototype checks describe work to perform, not completed playtests. Primary sources support the stated techniques and implementation context, not every proposed variant.","license":"CC-BY-4.0","codeLicense":"MIT","attribution":"gamemechanics.pro contributors","catalogKey":"catalog/automation-programming"}}