initial commit
commit
ac3290ae3e
|
@ -0,0 +1 @@
|
|||
index.html
|
|
@ -0,0 +1,26 @@
|
|||
***Status: Work In Progress / Unreleased***
|
||||
|
||||
# Forest Game
|
||||
|
||||
this is a place where i am writing a game about a forest. I'm going to try to focus on writing, and not too much on tooling. so hopefully there won't be much here
|
||||
|
||||
## Requirements
|
||||
|
||||
- m4: https://www.gnu.org/software/m4/m4.html
|
||||
- just: https://github.com/casey/just
|
||||
- pandoc: https://pandoc.org/
|
||||
- entr: https://eradman.com/entrproject/
|
||||
|
||||
## Writing
|
||||
|
||||
Anything with a `.txt` extension will be built. if you want to create some notes or something not included in the build, give it any kind of other extension, or none
|
||||
|
||||
## Macros
|
||||
|
||||
there's a macros file. I don't know if it will be much use. but it's there. It will be used when building the text. So you can use `__monstername` if you don't know the name of the monster yet. Define a new definition for it in `macros`--e.g. define(__monstername, `jethro')--and it will appear where you need it.
|
||||
|
||||
## Building
|
||||
|
||||
there is a justfile: run `just` to see available commands
|
||||
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
write the story
|
||||
|
||||
keep working on encounters
|
||||
|
||||
how to add the dreaming 🤔
|
||||
|
||||
keep adding protocols
|
||||
|
||||
horns v wings
|
||||
|
||||
try adding a dream
|
||||
|
||||
> I can still remember who I was before the forest. I can remember this place before the forest was here.
|
||||
>
|
||||
> __tree
|
||||
|
||||
add shroombs
|
|
@ -0,0 +1,28 @@
|
|||
# show available commands and exit
|
||||
default:
|
||||
@just --list --unsorted
|
||||
|
||||
# print assembled text to stdout
|
||||
build:
|
||||
@find src -name '*.txt' -type f -print0 | sort -nz | xargs -0 m4 macros
|
||||
|
||||
# watch for changes and build index.html
|
||||
watch:
|
||||
@find src -type f | entr just html
|
||||
|
||||
tohtml := "pandoc --toc -s -c static/styles/main.css -H static/head.html -f markdown+simple_tables"
|
||||
# create index.html
|
||||
html:
|
||||
@just build | {{tohtml}} > index.html
|
||||
|
||||
# word count
|
||||
words:
|
||||
find src -type f -iname '*.txt' -print0 | xargs -0 wc -w
|
||||
|
||||
# clean up artifacts
|
||||
clean:
|
||||
@rm index.html
|
||||
|
||||
# publish to town
|
||||
up:
|
||||
scp index.html tilde:~/public_html/forest/
|
|
@ -0,0 +1,6 @@
|
|||
changecom(`/*', `*/')
|
||||
define(__forest, `Weirding Wood')dnl
|
||||
define(__witch, `Auntie Ten Fingers')dnl
|
||||
define(__tree, `Grandfather Tree')dnl
|
||||
define(__monster, `Leviathan')dnl
|
||||
define(__perm, `(Permenant Feature)')dnl
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: You Can Drive Out Nature With A Pitchfork But It Always Comes Roaring Back Again
|
||||
...
|
||||
|
||||
## Introduction
|
||||
|
||||
This is a role-playing game about exploring an enchanted forest that is waking from a dream.
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
|
||||
## Prelude
|
||||
|
||||
Your family has lived secluded on the edge of the forest for as long as anyone can remember, which isn't that long in the grand scheme of things. Definitely since before there was a trade route down by the road. And since before there was a village over in the vale.
|
||||
|
||||
The villagers down in the vale refer to this forest by your family name, as though you own it. Such a funny thought. You can't own the forest. It's just *the forest*.
|
||||
|
||||
The forest has provided you with food and shelter and well-being. When new growth creeps out into your little meadow, you cut it back, selling the leftover timber to the traders. There is small game to hunt. Somtimes the bush brats steal whatever your thoughtlessly happen to leave outdoors over night, sometimes they leave little trinkets, stones, or other small forest treasures on your window sills, all depending on their mood.
|
||||
|
||||
But the forest has been sullen lately. Withdrawn. There just hasn't been any new growth. The bush brats don't venture into the meadow any more either.
|
||||
|
||||
And now it is late summer. The grass is long and golden, and the leaves are crimson. Before long, you'll have to think about cutting into some of the old growth so you have enough firewood to last the winter.
|
||||
|
||||
In the meantime, your uncle has given you some blankets to deliver to __witch deep in the tenebrous wood.
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
## Map
|
||||
|
||||
Start your adventure in the bottom left corner where the Entrance (E) is.
|
||||
|
||||
![Map of the forest](./static/img/map2.png)
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
Legend
|
||||
|
||||
Key Description
|
||||
--- -------------
|
||||
E Entrance
|
||||
F [Forest]
|
||||
A [Fae Forest]
|
||||
W [Wild Forest]
|
||||
T [Tree]
|
||||
C [Coniferous Forest]
|
||||
B [Blighted Forest]
|
||||
K [Boneyard]
|
|
@ -0,0 +1,7 @@
|
|||
|
||||
|
||||
## Location Descriptions and Encounters
|
||||
|
||||
Encounters: Each location below contains a list of encounters. Each time you enter a location, roll 1d6. Count that many spaces down the list and resolve that encounter. Then check it off the list. The next time you enter a location of the same type, do the same, skipping any checked off encounters. Each individual location can have a different encounter every time you return to it.
|
||||
|
||||
Permenant features: When you encounter a permenant feature, add that feature to the map, and then check it off the list of encounters. The feature will always be there when you return. Each location can only have one permenant feature.
|
|
@ -0,0 +1,22 @@
|
|||
|
||||
### Blighted Forest
|
||||
|
||||
Rotted leaves and dead branches litter the dried, cracked earth. The ground is bleached white in places as though salted. It is eerily silent.
|
||||
|
||||
- Hydra Crabs
|
||||
|
||||
Crabs the size of your hand. If you kill one, two more appear to take its place.
|
||||
|
||||
- Dead animal
|
||||
|
||||
- Giant rat
|
||||
|
||||
- Lost faun
|
||||
|
||||
- Scorpian
|
||||
|
||||
- Giant vulture
|
||||
|
||||
- Tar pit
|
||||
|
||||
- Smelly Bog
|
|
@ -0,0 +1,26 @@
|
|||
|
||||
### Coniferous Forest
|
||||
|
||||
It's quiet here. Dried pine needles crunch softly underfoot and absorb most sound. It smells sticky, sappy, and piney.
|
||||
|
||||
- Woodpeckers
|
||||
|
||||
- A large murder of crows stands in a circle around one of their own. They stand still and listen attentively, waiting to pass judgement, as the lone crow in the middle caws incessantly, hopping from one foot to the other now and again as though nervous.
|
||||
|
||||
- Bush brats
|
||||
|
||||
- Honeybear
|
||||
|
||||
- Giant ants
|
||||
|
||||
- Giant sloth
|
||||
|
||||
- Sylph Village __perm
|
||||
|
||||
You wouldn't even know this village was here until you stumbled into it: they make next to no impact on the forest around them. The sylph live simply in natural shelters and lean-tos. Several can be seen fletching arrows, drying fruit, and otherwise living their peaceful sylvan lives. A small but steady stream of bush brats enter the village and are lead to into a sealed cave by one of the sylph. None of them come out.
|
||||
|
||||
If you investigate the sealed cave, read [Protocol A].
|
||||
|
||||
- Hut __perm
|
||||
|
||||
__witch has lived here deep in the heart of the wood for as long as anyone can remember. She claims that when she was a girl, her hut stood at what then was the edge of the forest.
|
|
@ -0,0 +1,22 @@
|
|||
|
||||
### Fae Forest
|
||||
|
||||
The very air seems to shimmer and sparkle in this wood. The colors seem a little brighter. Things here seem a little more surreal and a little more magical.
|
||||
|
||||
- [Alces]
|
||||
|
||||
- The sun reflects brilliantly off the mirror-like grass. It dazzles and blinds you, and shatters into small silver shards when you step on it, tinkling like broken glass under foot.
|
||||
|
||||
- Giant sunflowers tower over head
|
||||
|
||||
- In the center of a small clearing there is a black cat with large eyes sitting in a bird cage. Scattered around the cage are the remains of a dozen sprites who look as though they died gruesomely during battle. The cat peers up at you through the bars of its cage and mewls pathetically.
|
||||
|
||||
- Sprites
|
||||
|
||||
- Sprite village __perm
|
||||
|
||||
Families and clans of sprites live together in hollowed out portions of trees. Read [Protocol B]
|
||||
|
||||
- Faerie ring __perm
|
||||
|
||||
A circle of sturdy toadstools some twelve feet in diameter.
|
|
@ -0,0 +1,28 @@
|
|||
|
||||
### Forest
|
||||
|
||||
This is a friendly wood
|
||||
|
||||
- Alces
|
||||
|
||||
- Brown wolf
|
||||
|
||||
- Bear
|
||||
|
||||
- Sylph scout
|
||||
|
||||
- Sprite
|
||||
|
||||
- Bush brats
|
||||
|
||||
- Faun
|
||||
|
||||
- Tree cat
|
||||
|
||||
- Giant spider
|
||||
|
||||
- Mossman
|
||||
|
||||
- Circle of Dreams __perm
|
||||
|
||||
A small clearing in the woods. Small cairns are piled around the edge of the clearing and in the center is a large stone circle with what appears to be a tall wild hedge ground around and between the stones.
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
### Boneyard
|
||||
|
||||
A haunted dried up swamp. The dorsal spines of some ancient creature jut up out of the cracked earth creating a row of ominous bleached white stone spires that reach up to the sky link boney fingers of a reaching hand. Where rib bones run along the ground, the broken ground is rippling and undulating. The creature's huge skull lies half-buried here, half of its gaping toothy maw exposed, as well as one cavernous hollow eye socket large enough to crawl inside.
|
||||
|
||||
At one point, this was the most lush and fertile area of the whole forest. Now a blight spreads from here into the forest, destroying plantlife as it progresses.
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
### Tree
|
||||
|
||||
__tree towers above the others, giving this part of the wood the appearance of a sort of domed canopy. The ground is bare beneath its massive sprawling branches. Its tangled roots are exposed enought that you think you can walk or crawl into the tree.
|
|
@ -0,0 +1,24 @@
|
|||
|
||||
### Wild Forest
|
||||
|
||||
The part of the forest where the faun live is even more untamed and unruly than the rest of the forest.
|
||||
|
||||
- Bush brats
|
||||
|
||||
- Lost faun
|
||||
|
||||
- Giant boar
|
||||
|
||||
- Screeching monkeys
|
||||
|
||||
- Lost sprite
|
||||
|
||||
- Dancing feinting goats
|
||||
|
||||
- Grasping vines
|
||||
|
||||
- Faun village. An orgy of revelry and merry making. Fauns drink wine from goblets and mead from horns, and run around screaming, laughing, and falling over each other. Read [Protocol C].
|
||||
|
||||
- Stream
|
||||
|
||||
A babbling forest stream that flows in the Wild Forest
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
|
||||
## Characters
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
|
||||
### __witch
|
||||
|
||||
__witch had already lived several lifetimes by the time she first came to this place with nothing but a single seed clutched in her fist.
|
||||
|
||||
She resides in the wood but, unlike its other protectors--the fauns, sprites, sylphs, etc.--is not of it.
|
||||
|
||||
She is the progenitor of your family. Each subsequent generation inherits her as "auntie", never knowing how old she actually is.
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
### __tree
|
||||
|
||||
The first tree of this forest. __monster is nibbling at his roots. If __tree withers and dies, so will the forest, and so will __witch, and so will your family.
|
|
@ -0,0 +1,8 @@
|
|||
|
||||
### __monster
|
||||
|
||||
An ancient sea creature that lived here when this whole forest was primordial ocean. When it died, it sank to the ocean floor and the food and nutrients provided by its carcass created abundant life.
|
||||
|
||||
Later, when the ocean receded, the forest grew up around in the same space around the beast.
|
||||
|
||||
__monster has slept through most of the history of dry land, but stirs now, distrubed by the dryness of its bones and disrupting the balance of the forest.
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
|
||||
## Bestiary
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
### Alces
|
||||
|
||||
A behemoth deer-like creature with horns fanning out from its head like hands groping toward the sky. You could sit comfortably nestled in the cup of one of its upturned horns. It has a long nose and a bulging throat.
|
||||
|
||||
Mien:
|
||||
|
||||
Hungry
|
||||
Curious
|
||||
Territorial
|
||||
Lonely
|
||||
Aggressive
|
||||
Groggy
|
|
@ -0,0 +1,14 @@
|
|||
|
||||
### Bush Brat
|
||||
|
||||
A tiny barely humanoid creature that looks like a couple of leaves stiched together with bundles of twigs for arms and legs. They often appear aggressive, slinging darts and stones and tiny arrows, but are mostly just mischievous and playful. They have a small amount of innate magic and enjoy creating small pebble golems to do their bidding.
|
||||
|
||||
Mien:
|
||||
|
||||
Mischievious
|
||||
Curious
|
||||
Helpful
|
||||
Covetous
|
||||
Playful
|
||||
Shy
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
### Faun
|
||||
|
||||
Small woodland creatures with wooly goat legs and hooves and small horns. They are short and stocky and tend to be a little rotund. They are wild and unpredictable, but are usually most interested in revelry and merry-making.
|
||||
|
||||
Mien:
|
||||
|
||||
Jolly
|
||||
Drunk
|
||||
Festive
|
||||
Jealous
|
||||
Revelry
|
||||
Feral
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
### Mossman
|
||||
|
||||
A large shambling creature of twisted roots and green flowering vines, thick around as a tree trunk. They blend immediately and effortlessly into the forest.
|
||||
|
||||
Mien
|
||||
|
||||
Apathetic
|
||||
Protective
|
||||
Curious
|
||||
Wary
|
||||
Sleepy
|
||||
Dismissive
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
### Sprite
|
||||
|
||||
A small winged faerie. Their wings can and, to an extent, their general appearance can be bat-like, moth/butterfly-like, or insect-like.
|
||||
|
||||
Mien
|
||||
|
||||
Playful
|
||||
Curious
|
||||
Aggro
|
||||
Taunting
|
||||
Haughty
|
||||
Generous
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
### Sylph
|
||||
|
||||
The people of the forest. Shorter than a human, lithe and quick. Their skin is a dark brown-green like a polished hardwood, and they are covered with fine moss and small leaves in the same way a human is covered with hair.
|
||||
|
||||
Mien
|
||||
|
||||
Aloof
|
||||
Disinterested
|
||||
Protective
|
||||
Secretive
|
||||
Impatient
|
||||
Haughty
|
|
@ -0,0 +1,5 @@
|
|||
|
||||
## Protocols
|
||||
|
||||
These are all spoilers. Don't read anything in this section until you are instructed to do so.
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
|
||||
### Protocol A
|
||||
|
||||
![Sylph Caves](./static/img/dungeon.png)
|
||||
|
||||
1. Entrance. The tunnels to the north and south are sealed by twisted cords of vines thicker than you leg.
|
||||
|
||||
2. Lush cave. Vines and dense plants fill this cave. A young mossman rests here. Interacting with them reveals...
|
||||
|
||||
3. Holding room. You find a bunch of bush brats. Their usually lush leaves look kind of wilted and covered with something that looks like strands of thin spidery silk. They resist all attempts at rescue.
|
||||
|
||||
4. Long hall. An elderly sylph attends a group of adolescent sylph huddled by a fire, bringing them soup and water. The sylph's mossy, leafy covering is thicker and more wild than younger sylphs, giving him a feral plantlike appearance.
|
||||
|
||||
5. Hatching Room. Full of plump silken cocoons. You see one crack open and a sylph crawl out.
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
### Protocol B
|
||||
|
||||
You strike up a conversation with sprite who has the nose, ears, and wings of a fruit bat. When you bring up the fauns, they scoff.
|
||||
|
||||
> "That drunken, lazy lot! They'd let this forest fall into ruin and would like that just fine! They think they own the place, but I'd like them to see how fast things would fall apart around here without us. The sprites are the one who hold this forest together!"
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
### Protocol C
|
||||
|
||||
One of the fauns complains loudly to you, standing a little too close.
|
||||
|
||||
> "Those sprites? Damned busybodies. Flitting around here and there, always rushing to be somewhere. Think they own the damn forest. Well guess what! This forest doesn't belong to them!"
|
|
@ -0,0 +1,27 @@
|
|||
Bring blankets to __witch: get dream mantle
|
||||
|
||||
Broker a truce between the fauns and the sprites
|
||||
|
||||
Enter the Forest Dream: your point of entry determines your appearance and aspect in the dream:
|
||||
|
||||
- __tree: your skin is bark
|
||||
|
||||
- faerie ring: you're a mushroom folk
|
||||
|
||||
- stream: you're a fishy aquatic person
|
||||
|
||||
- fruit of the dreaming: as yourself
|
||||
|
||||
Discover the secret of the Brat-Sylph-Moss
|
||||
|
||||
repair the broken dream portals
|
||||
|
||||
- __tree: already working?
|
||||
|
||||
- faerie ring: needs a toadstool
|
||||
|
||||
- stream: needs xxx
|
||||
|
||||
- fruit of the dreaming: need permission from the sylph
|
||||
|
||||
Sooth the Leviathan, return it to sleep: bring it water from the dreaming?
|
|
@ -0,0 +1,7 @@
|
|||
Did you deliver the blankets to __witch?
|
||||
|
||||
Did you create peace between the sylph and the sprites?
|
||||
|
||||
Did you placate Leviathan?
|
||||
|
||||
Did you find all four entrances to the Dream?
|
|
@ -0,0 +1,4 @@
|
|||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Averia+Serif+Libre&display=swap" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Montserrat&display=swap" rel="stylesheet">
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
After Width: | Height: | Size: 1.1 MiB |
Binary file not shown.
After Width: | Height: | Size: 929 KiB |
Binary file not shown.
After Width: | Height: | Size: 855 KiB |
Binary file not shown.
|
@ -0,0 +1,54 @@
|
|||
html {
|
||||
font-family: 'Averia Serif Libre', Serif;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
background: darkslategray;
|
||||
color: antiquewhite;
|
||||
font-size: 24px;
|
||||
max-width: 60ch;
|
||||
margin: 0 auto;
|
||||
line-height: 1.75;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4 {
|
||||
font-family: 'Montserrat', sans-serif;
|
||||
line-height: 1.3;
|
||||
margin: 3rem 0 1.38rem;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
h1 { font-size: 5.653rem; }
|
||||
h2 { font-size: 3.998rem; }
|
||||
h3 { font-size: 2.827rem; }
|
||||
h4 { font-size: 1.999rem; }
|
||||
|
||||
h1 {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
a, a:visited {
|
||||
color: aqua;
|
||||
}
|
||||
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border: 1px solid;
|
||||
}
|
||||
th, td {
|
||||
padding: 0.5rem 1rem;
|
||||
text-align: left;
|
||||
}
|
||||
th {
|
||||
font-size: 1.5em;
|
||||
font-weight: bolder;
|
||||
}
|
||||
tbody tr:nth-child(odd) {
|
||||
background-color: rgba(0, 0, 0, 0.3);
|
||||
}
|
Loading…
Reference in New Issue