Dark Forest Program
I wanted to get into a new programming language in 2019, and play with words with my 5-year-old. So I built a program that interprets a folder of text files as a semi-interactive story on the command line, in Rust.
The program "types" out the story as if someone were controlling the terminal, one letter at a time, with some jitter and pauses somewhat mimicking a person.
The program interprets any text within brackets ([]
) to be macro commands.
Function | Purpose | Example |
---|---|---|
time | Insert a pause, by seconds | [time=3] |
color | Change the enclosed text's color | [color=green|This is green] |
title | Output a title | [title=A Tale of Two Cities] |
input | Take a reader's input and save it to a variable for output |
[input=your_name|What is your name?] |
output | Use an input |
[output=your_name] |
input=path() | A path input forks to a new text file in the story | [input=path(redpill,bluepill)|Which path will you choose?] |
Example
Here is how a story could start:
[input=your_name|Enter your name:]
...You enter a dark forest...
[time=3]
Dear [output=your_name],
You once asked me to share my wisdom with you.
So I will.
A fork in the road lies before you.
[time=2]
You may walk through the [color=green|mirror], or learn to [color=green|bike].
[input=path(mirror,bike)|Which fork will you take?]
Behavior
And this is about how it turns out: