This repository provides wrapper scripts and a wrapper Makefile around the Inform 7 system and the Glulxe interpreter.
You only truly need two files to create an Inform 7 project: A .ni
file which contains the story, and a text file containing an UUID
(presumably as a way for each Inform 7 game in existence to have a
unique ID - this gets embedded into the final binary).
The wrapping in this repository ensure that you can focus on your .ni
story file without having to consider all the other files that the
Inform 7 machinery likes to create, which the scripts instead put into a
subdirectory named scaffolding
.
You can use this project with niv by
running niv init
and then niv add nqpz/inform7-scaffolding
. (This
project is currently not available as a Nix flake, but probably should
be.) Example use: https://github.com/nqpz/kantinen2012.
First install Nix.
Run make init
with no arguments to create a new project. This will
create these files:
story.ni
: An empty file.uuid.txt
: A single-line file containing an UUID.Makefile
: A Makefile that you can use for development and release.
In addition, you can choose to create a root directory named includes
consisting of .i7x
Inform 7 extension files. These can be imported
like so:
Include <name> by project.
You can put this in your .gitignore
:
scaffolding
bin
result
Run nix-shell
to enter an environment with Inform 7 tooling present.
This is useful for when developing the game.
Then run make test
to build and run the test build. All builds use
the Glulx format. The test build
has additional helper commands such as
SHOWME
.)
You can also:
-
Run
make bin/test.ulx
to build a test build. (Contrary tomake test
, this doesn't immediately run it.) -
Run
make bin/release.ulx
to build a release build. -
Run
glulxe bin/release.ulx
to run the release build. -
Run
nix-build
to build a release build. This will buildrelease.ulx
and make it available inresult/
. This is useful if you only need to build the game, and not actively develop it. -
Run
make map
to open Inform's generated world HTML page, showing, among other things, a map of your created world. (All this target does is callxdg-open
to openscaffolding/Index/World.html
.) You must have first built either a test build or a release build.
(Alternatively, if you can't install Nix, you can follow the Inform 7
manual on how to use its
GUIs and
manually import story.ni
into the story window, and then build and run
from there.)
Note: There is also an Inform 7 package in nixpkgs, but this is outdated and uses a 2015 version of Inform 7 along with a wrapper script.
Copyright (C) 2025 by Niels G. W. Serup.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.