Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.Sign up
Overview: The idea came to me in a dream, some mixture of story generation by simulation, and the endless dusty expanse of Desert Golfing. According to the Old Testament, the Israelites spent 40 years wandering the desert in exile after Moses parted the Red Sea and freed them all from slavery. The story of Exodus begins on the border of Egypt and ends in Jerusalem - a short walk across the Sinai Peninsula. Even accounting for a layover atop Mount Sinai, 40 years seems an awfully long time to walk just 450 miles. What the heck were they doing the whole time?
Well this novel provides an answer: Moses was terrible with directions.
Postmortem: I have time left in the month, but I'm putting the lid on this, because I don't see what more useful stuff I could add to the story. I learned a few things from this year... but one thing I hit on is what a difference story framing can make. A plausible backdrop can excuse some flaws - the biblical setting here lets me get away with stilted language and some repetitiveness because that's how the medium is already.
The generator runs a daily simulation of the activities of the Israelites. Each day they progress 0.1 degrees lat/long in some direction. While Moses' brother Aaron is alive, their path is reasonably straight. After he dies, though, Moses takes over... the angle swings wildly each day, and the party is quickly lost in the desert. Provisions are eaten, random events occur, etc etc until Jerusalem is reached by pure chance.
Interspersed with the travelogue are random chapters of praise, formed from simple 2-order Markov chains, and using the book of Psalms as a corpus.
The generator creates a novel, but then discards it if it falls outside the word-limit (under 50k or over 55k), or if other conditions are met (e.g. went to Jerusalem but didn't get the Ten Commandments). Also, it drops a .kml file too, which is great for debugging - you can load it on top of Google Maps, and it will show the path the party took, plus key events in the story.
The kml's a nice touch. Here's a couple of maps from it: