Introducing MEOW (CYOA)

Introducing Minimalist Engine of Meow (MEOW)

This is version 1.02, which includes fix for images (currently set at 90% using pandoc). I simply zipped the whole directory. A sample format and 3 MEOW images are included for reference.

Design-wise, it took me several weeks. Coding it only took me part of the weekend, however. It’s only 88 lines of Perl, after all. That’s by design. Hopefully, others can take a look at the specs and decides to implement it using their own favorite coding language.

A lot of time was spent fighting Markdown specs. Maybe someday, I’ll write a new one that outputs HTML directly. But for now, please give me feedback.

This is simple CYOA system, and it shows. It lets you define variables that you can later use with the templates. Not yet at gamebook level. I’ll have to decide whether to go all in using HTML before I do that, since it’s going to be heavily dependent on Javascript.

Anyway, please let me know if you have any questions. The latest program out is

Have a nice day! (1.6 MB)



So technically it’s Minimalist Engine of Minimalist Engine of Minimalist Engine of Minimalist Engine of…

Seriously though, it’s interesting, and I might try it if I have the time!


I think it’s about the same as this one, minus the graph and the shuffler. Also, mine is textual and works wherever Perl (and pandoc) is available. No need for Windows. :grinning: Also, I have pictures!

As I noted elsewhere, the mapping isn’t going to be graphical, but hierarchical like threaded message board.

I’m working on the shuffler right now. It may as well a separate program. No need to add complexity to the formatter program that is MEOW.


So, I’ve been thinking. So far, the link is done by pid because that’s what the gamebook authoring tool is using. But thinking about it, maybe I should add a header pname as anchor target, instead.

Doing it this way:

  1. Makes it closer to Twine link naming method
  2. You can always use p1, p2, p3, etc
  3. Will be irrelevant in shuffling the passages, as the name don’t change.
  4. pid will always be there as that determines the order of the passages.

What do you think?

I’m doing this cat DoA.txt |perl and it emits the .md. How to get the html?

1 Like

Interesting minimalist CYOA engine. Good to see Perl still has its uses :smiley: To me it looks like Harry uses a markdown to html converter as the last step, the generated HTML mentioned pandoc (which can convert markdown to html), I think Try pandoc! might do the last step. I took that md file and indeed got an html file which seems to produce a similar result as included in the example.

1 Like

Yes. I used pandoc. I’ve been rethinking Markdown, though. All the effects I want is best done with HTML. Is that how you do it with Twine? Just use HTML+CSS directly?