{"author_link":"\/users\/chef","author_name":"Chef","author_uid":"chef","comments":[],"epoch":1792241751,"event":"LD60","format":"md","ldjam_node_id":435194,"likes":0,"metadata":{"p_key":"212085","p_author":"Chef","p_authorkey":"1433204","p_urlkey":"451918","p_title":"Invented a story driver!","p_cat":"LDJam ","p_event":"LD60","p_time":"1792241751","p_likes":"0","p_comments":"0","p_status":"WAYBACK","us_key":"1433204","us_name":"Chef","us_username":"chef","event_start":"0","event_key":"121","event_name":"Ludum Dare 60"},"node":{"id":435194,"parent":433205,"_superparent":432763,"author":433204,"type":"post","subtype":"","subsubtype":"","published":"2026-10-17T12:55:51Z","created":"2026-10-17T12:54:56Z","modified":"2026-10-17T12:55:51Z","_trust":0,"version":1379493,"slug":"invented-a-story-driver","name":"Invented a story driver!","body":"We\u2019ve never tackled narrative-driven games before, so traditional dialogue trees and Timeline-based cutscenes just didn't fit here. The shift at the print shop ticks on while you're actively working, and the story has to weave directly into the shift, rather than halting it. We had to build a custom driver from scratch.\n\nA day is pure data. Events trigger organically from your workflow: a timer runs out, the front-page grid gets filled, or you slam down the final print stamp. Conditions check context parameters\u2014like just how much we\u2019ve already dialed up political tensions.\n\nThe driver orchestrates the whole shift. Come morning, the game saves. The shift wraps up, and the next day kicks off. But if the men in black show up for you on Day 4\u2014even if there were supposed to be several days left\u2014that day triggers a hard stop. It branches directly into its own unique bad ending: a custom sequence, shared credits, and back to the main menu. No further days trigger.\n\nThe scene itself is a sequence. The data layer only tracks the trigger moment (i.e., time to fire). From there, it's a top-to-bottom sequence of steps: an incident occurs, dialogue pops up, another event resolves.\n\nThis is just the high-level architecture; right now we're starting to drill down into the low-level implementation!![photo_5377555769542254802_y.jpg](\/\/\/raw\/43c\/96\/z\/7370b.jpg)","scope":"public","node-timestamp":"2026-10-17T12:55:51Z","meta":[],"path":"\/events\/ludum-dare\/60\/$433205\/$435194","parents":[1,5,9,432763,433205],"files":[],"files-timestamp":0,"love":0,"comments":0,"_collation":{"event":"LD60"},"_live_source":{"record":"runs\/20261017T130045.278872Z\/records\/0002.json","object":"objects\/05c5802c51c856b332a31f95e595fd71432477a152370e4c705d7815af619e53","sha256":"05c5802c51c856b332a31f95e595fd71432477a152370e4c705d7815af619e53","response_url":"https:\/\/api.ldjam.com\/vx\/node2\/get\/434995+435194+435193+435192+435191+435190+434358+435189+435188+432805+435186+435185+435184+435183+435145+435181+434078+435180+435179+435178+435177+435176+435175+435173+435171+435172+435169+435168+435125+435165+435166+435164+435163+435160+435062+435157+435151+435158+435159+435156+435154+435153+435152+435150+435149+432934+435144+435142+435141+435140","captured_at":1792242048},"_wayback":{"record":"runs\/20261017T130045.278872Z\/records\/0002.json","object":"objects\/05c5802c51c856b332a31f95e595fd71432477a152370e4c705d7815af619e53","sha256":"05c5802c51c856b332a31f95e595fd71432477a152370e4c705d7815af619e53","response_url":"https:\/\/api.ldjam.com\/vx\/node2\/get\/434995+435194+435193+435192+435191+435190+434358+435189+435188+432805+435186+435185+435184+435183+435145+435181+434078+435180+435179+435178+435177+435176+435175+435173+435171+435172+435169+435168+435125+435165+435166+435164+435163+435160+435062+435157+435151+435158+435159+435156+435154+435153+435152+435150+435149+432934+435144+435142+435141+435140","captured_at":1792242048}},"node_metadata":{"n_key":"435194","n_urlkey":"451918","n_parent":"433205","n_path":"\/events\/ludum-dare\/60\/$433205\/$435194","n_slug":"invented-a-story-driver","n_type":"post","n_subtype":"","n_subsubtype":"","n_author":"433204","n_created":"1792241696","n_modified":"1792241751","n_version":"1379493","n_status":"WAYBACK"},"source_url":"https:\/\/ldjam.com\/events\/ludum-dare\/60\/$433205\/$435194","text":"We\u2019ve never tackled narrative-driven games before, so traditional dialogue trees and Timeline-based cutscenes just didn't fit here. The shift at the print shop ticks on while you're actively working, and the story has to weave directly into the shift, rather than halting it. We had to build a custom driver from scratch.\n\nA day is pure data. Events trigger organically from your workflow: a timer runs out, the front-page grid gets filled, or you slam down the final print stamp. Conditions check context parameters\u2014like just how much we\u2019ve already dialed up political tensions.\n\nThe driver orchestrates the whole shift. Come morning, the game saves. The shift wraps up, and the next day kicks off. But if the men in black show up for you on Day 4\u2014even if there were supposed to be several days left\u2014that day triggers a hard stop. It branches directly into its own unique bad ending: a custom sequence, shared credits, and back to the main menu. No further days trigger.\n\nThe scene itself is a sequence. The data layer only tracks the trigger moment (i.e., time to fire). From there, it's a top-to-bottom sequence of steps: an incident occurs, dialogue pops up, another event resolves.\n\nThis is just the high-level architecture; right now we're starting to drill down into the low-level implementation!![photo_5377555769542254802_y.jpg](https:\/\/static.ldjam.com\/raw\/43c\/96\/z\/7370b.jpg)","title":"Invented a story driver!","wayback_source":{"record":"runs\/20261017T130045.278872Z\/records\/0002.json","object":"objects\/05c5802c51c856b332a31f95e595fd71432477a152370e4c705d7815af619e53","sha256":"05c5802c51c856b332a31f95e595fd71432477a152370e4c705d7815af619e53","response_url":"https:\/\/api.ldjam.com\/vx\/node2\/get\/434995+435194+435193+435192+435191+435190+434358+435189+435188+432805+435186+435185+435184+435183+435145+435181+434078+435180+435179+435178+435177+435176+435175+435173+435171+435172+435169+435168+435125+435165+435166+435164+435163+435160+435062+435157+435151+435158+435159+435156+435154+435153+435152+435150+435149+432934+435144+435142+435141+435140","captured_at":1792242048}}