Making meta games in inform like DDLC, Oneshot, or Undertale?

as stated above in in the title, i am wondering if it is possible to make games with meta properties as described in above. by meta in this context i mean when it is making, editing, reading, or deleting files that exist outside the game. some examples such as you having to delete the character files in DDLC to continue that game, you having to search through your operating system to find files that are the answers to puzzles in oneshot, or the timeline remembering in undertale where if you do a genocide route before doing a pacifist route you can not get the best ending.

if it is possible do you know any games that use it as it would be great to see how they went about doing this!

3 Likes

You can certainly store data in files and load it again in a future play-through (which lets you track how previous games went, for example).

You can also see if files exist, although I think it’s sandboxed to a single directory (where the story file lives?), but I’ve never tried.

See Chapters 23.11 to 23.15 of the documentation for all the details!

2 Likes

Inform games run on a “virtual machine”, which means they’re very sandboxed and can only affect the machine outside the VM in specific limited ways. So while you can do some file access shenanigans, you’ll need to add in components written in another language to do full DDLC-style tricks.

1 Like

can you explain a little more on what you mean here, or give a resource as i did not know it was possible to add other languages to inform 7 or are you talking about editing the actual source code for inform7?

1 Like

Inform programs can “talk” to the outside world in a few specific ways, and you can set up a program in another language that “talks” to the Inform program in these specific ways and enacts its will on the file system as a whole. This is somewhat finnicky to set up, though, and not widely done.

1 Like

what ways are there as the only one i can think of is maybe using glk?

1 Like

The example “Flathead News Network” shows another one: using external files to exchange data betwee programs.

1 Like