A visual novel built with Twine about coming of age in a separatist society. With face paint.
Escape from Juggalo Mountain: Act I requires twee2, an open-source, command-line tool for compiling Twine games. However, as of this writing, the twee2 ruby gem is outdated, so the game won't compile to Harlowe2 (our preferred Twine story format) correctly.
To get around this, you'll need to clone the latest version of twee2 and install it manually, using these instructions (adapted from this helpful comment):
git clone https://github.com/Dan-Q/twee2
cd twee2/
gem build twee2.gemspec
gem install twee2-0.5.0.gem
February 2023 Update: The version of ruby specified in twee2's .ruby-version file, 2.1.5, cannot be built or run successfully on modern Mac OSes (Intel or otherwise). Here's what worked for me:
- Install
rbenv - In twee2's
twee2.gemspecfile, change the following line:
spec.add_runtime_dependency 'bundler', '~> 1.6'
to:
spec.add_runtime_dependency 'bundler', '~> 2.1.4' - Use ruby 2.7.7 to build the twee2 gem (
rbenv local 2.7.7to set the local version) - Copy the gemfile into the root
/efjmdirectory - Using the same 2.7.7 version of ruby, run
gem install twee2-0.5.0.gem
To confirm this worked, try running twee2 formats. If it installed correctly, you should see Harlowe2 in the list of results.
If you use a plaintext editor like Sublime Text or Atom, there are twee2 syntax highlighting plugins you can find. Syntax highlighters make it easier to understand the logic of the code you're writing at a glance. I've been using this Atom plugin and it's been great.
Most of the work you'll be doing is in the src/ directory. Each of the game's "chapters" is broken up into a discrete .tw2 file, which is imported into the main efjm.tw2 file via the special ::StoryIncludes macro. You can learn more about how that works here. If you're going to add or rename a section, make sure you update its import statement in the ::StoryIncludes section; otherwise, your builds will error out.
To build the game, from the root directory of your project, you'll want to use twee2 build. This command takes several parameters:
twee2 build [input.tw2] [output.html] [[--format=story_format]]
I recommend using the following command:
twee2 build src/efjm.tw2 build/efjm.html --format=harlowe2
Or if you'd like twee2 to keep an eye out for changes as you make them, you can set it to automatically generate a new build of your game every time you save a file with:
twee2 watch src/efjm.tw2 build/efjm.html --format=harlowe2
(Note: This process runs perpetually until you press ^C, so you may wanna run this in a new terminal window or tab.)
This instructs twee2 to build the game from the src/efjm.tw2 file (which imports all other game modules) and outputs it to a separate build/ directory, which is git-ignored. It also ensures the game is built for the Harlowe2 story format.
If you're unable to get twee2 to build to Harlowe2 for any reason, you can export to whatever story format you like. However, you'll need to import your HTML-output game into Twine, open it up in the editor, and change the story format there to Harlowe2 and rebuild it before the game will work properly. This is a bummer, since it means you won't be able to use twee2 watch to automatically rebuild your game as you're working on it, but life's full of little compromises.
A game by Nick Cummings, Ben Morgan, and Nathan Harrison
Illustrations by Sarah Morgan
Map of Juggalo Mountain and surrounding territories by Nick Cummings
Playtesting by Yelena Kolova and Dan Phipps
Special thanks to:
- Sean Dunne
- Matt Gilles
- Ian McAfee
- Nathan Rabin
