Inform Runtime

License

The Inform Runtime for Ruby is a command-line interface software runtime program for playing interactive-fiction games which use the Inform 6 Ruby Port.

The Inform Runtime for Ruby is intended to simply provide the barest minimum facilities required by the Inform 6 Library Ruby Port software to function in the context of a game play specified by a game directory or file. It does not attempt to replicate a byte code interpreter runtime like frotz.

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

Download and install the latest version of PostgreSQL.

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"
Tue Oct 14 19:01:27 CDT 2025
.
├── config
│   └── database.yml
├── CONTRIBUTING.md
├── exe
│   └── inform.rb
├── Gemfile
├── inform-runtime-1.0.3.gem
├── 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
│   │   ├── 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!