Story Teller
The Story Teller for Ruby is a command-line interface software runtime program for playing interactive-fiction games which use the Inform 6 Ruby Port.
The Story Teller is intended to be used to play a game specified by a path to a directory or file. The game file or directory specifies the source code for a game file written using the Inform 6 Ruby Port.
Install mise-en-place
The mise CLI tool used to manage multiple runtime versions.
See: https://mise.jdx.dev/getting-started.html
curl https://mise.run/zsh | sh
mise --version
Install required runtime software
mise install
Now install the bundler for managing project dependencies.
gem install bundler
gem update --system
Install the latest version of PostgreSQL.
mise use postgres@latest
mise install
Setup
Install some gem dependencies.
bundle update --bundler
bundle install
Run
Execute the inform.rb program. It will play the included example game.
bundle exec inform.rb
Welcome to...
EXAMPLE
An Interactive Example
Copyright (c) 2025 by Nels N. Nelson.
Release 1 / Serial number 251006 / inform.rb v1.0.3 Library 6/11N
Field
You are standing in a field in front of a small 19th century house which stands just to the east of you. The house hardly stands up to the stiff wind rolling down from the north.
You can see a small toy top here.
>quit
Are you sure you want to quit? yes
[Hit enter to exit.]
Linting
bundle exec rake lint
Testing
bundle exec rake test
Project file tree
Here is a bird's-eye view of the project layout.
# date && tree -A -I "game|logs|vendor|tmp|Gemfile.lock"
Sat Dec 13 22:05:24 CST 2025
.
├── config
│ └── database.yml
├── CONTRIBUTING.md
├── exe
│ └── inform.rb
├── Gemfile
├── inform-runtime.gemspec
├── lib
│ ├── runtime
│ │ ├── articles.rb
│ │ ├── builtins.rb
│ │ ├── color.rb
│ │ ├── command.rb
│ │ ├── config.rb
│ │ ├── context.rb
│ │ ├── daemon.rb
│ │ ├── database.rb
│ │ ├── events.rb
│ │ ├── experimental
│ │ │ └── handler_dsl.rb
│ │ ├── game_loader.rb
│ │ ├── game.rb
│ │ ├── grammar_parser.rb
│ │ ├── helpers.rb
│ │ ├── history.rb
│ │ ├── inflector.rb
│ │ ├── io.rb
│ │ ├── kernel.rb
│ │ ├── library_loader.rb
│ │ ├── library.rb
│ │ ├── link.rb
│ │ ├── logging.rb
│ │ ├── mixins.rb
│ │ ├── module.rb
│ │ ├── object.rb
│ │ ├── options.rb
│ │ ├── persistence.rb
│ │ ├── plurals.rb
│ │ ├── prototype.rb
│ │ ├── publication.rb
│ │ ├── runtime.rb
│ │ ├── session.rb
│ │ ├── snapshots.rb
│ │ ├── stdlib.rb
│ │ ├── subscription.rb
│ │ ├── tag.rb
│ │ ├── tree.rb
│ │ ├── version.rb
│ │ └── world_tree.rb
│ └── runtime.rb
├── LICENSE
├── Rakefile
├── README.md
├── roller2.jpg
├── scripts
│ ├── backup.rb
│ ├── clone.rb
│ ├── delete.rb
│ ├── init.rb
│ ├── rebuild.rb
│ └── restore.rb
└── spec
├── game_spec.rb
├── inform_spec.rb
├── inform_system_spec.rb
├── object_spec.rb
├── parser_spec.rb
├── spec_helper.rb
├── verblib_spec.rb
└── verify_gem_spec.rb
7 directories, 63 files
Thanks!