PunyInformDE (PIDE) ist die deutsche Version von PunyInform, ein Programm zur Erstellung von Textadventures ("Interactive Fiction").
Für einen schnellen Einstieg in deutscher Sprache lies bitte Schnellstart.
PunyInformDE (PIDE) is a German localisation of PunyInform (a lightweight Inform 6 game library). It extends PunyInform with German-native article declension, grammatical case handling (nominative/accusative/dative), and German pronoun resolution (er/sie/es/ihnen) for creating interactive fiction in German.
Includes PunyInform features and commits up to June 13th, 2026 (version 6.7).
Designed for: Interactive fiction authors writing German-language IF who want automated support for German grammar.
Features:
- German article system (automatic declension from gender attributes)
- German pronoun substitution (er/ihn/ihm, mich/mir, sie/ihnen, es)
- Adjective case/gender agreement in library messages
- Object-aware take success feedback (
Du nimmst ... an dich.) describe=2support: objects that remain in scope but never appear in room listings- Unicode and ASCII (digraph) build variants
- Runnable example game (Das Schiff der Sterne)
- Comprehensive test suite with pytest
lib/ PunyInformDE library (globals.h, puny.h, de/*)
example/ Example game source (sterne.inf)
build/ Compiled story files (generated by build scripts)
tests/ PunyTest test suite
tools/ inform6 compiler, dfrotz, Lectrote
docs/ Architecture and grammar documentation
For tests, clone PunyInformDE and PunyTest side by side:
C:\Source\PunyInformDE
C:\Source\PunyTest
Example clone commands:
git clone https://github.com/IkeC/PunyInformDE.git C:\Source\PunyInformDE
git clone https://github.com/IkeC/PunyTest.git C:\Source\PunyTestPass both lib/ and lib/de/ as include paths. lib/ is needed for the
top-level library files (globals.h, puny.h, …); lib/de/ is needed so that
Include "chartable_de.h" and the internal Include "globals_de.h" etc. can be
resolved without a de/ prefix.
# Windows — from the project root:
tools\inform6.exe +include_path=lib,lib\de example\sterne.inf build\sterne.z5# Linux / macOS — from the project root:
tools/inform6 +include_path=lib,lib/de example/sterne.inf build/sterne.z5On macOS, the easiest setup is to install the tools with Homebrew:
brew install inform6 frotzThat gives you inform/dfrotz on your PATH. For the Unix build flow, use the script in build/build.sh (or INFORM6=inform bash build.sh if Homebrew exposes the compiler as inform).
If you copy the library to a different location, the same rule applies — point
+include_path= at the folder that contains globals.h and the de/
sub-folder, and add the de/ sub-folder as a second entry.
For Windows, the VS Code "Build" task runs the full build script (Unicode + ASCII + Z3 builds, transcript generation) in one step:
cd build
powershell -ExecutionPolicy Bypass -File build.ps1Or press Ctrl+Shift+B inside VS Code.
The build script produces:
build/sterne.z5— Unicode buildbuild/sterne.ascii.z5— ASCII (digraph) buildbuild/sterne.z3— Z3 buildbuild/sterne.transcript.txt/…ascii.txt/…z3.txt— auto-generated transcripts
For macOS/Linux, cd into build/ and run bash build.sh (or INFORM6=inform bash build.sh on Homebrew setups that expose the compiler as inform).
tools\dfrotz.exe build\sterne.z5Requires PunyTest cloned next to this repository (see Repository Layout below):
.venv\Scripts\python.exe -m pytest tests/ -vFor implementation details, architecture, algorithm decisions, and known limits, see Implementation.md. For design analysis and rationale history, see Grammar.md.
Inform6 — The interactive fiction design language and compiler, created by G. Nelson and contributors.
PunyInform — The lightweight Inform 6 library that PunyInformDE is built on. Created and maintained by J. Berntsson, F. Ramsberg and contributors.
Deform — The Inform 6 library extension framework which many grammatical solutions have been lifted from. Created by M. Oehm and contributors.
Original PunyInformDE Fork — The initial German localisation work done in 2023 by L. Santner and A. Pulvermacher.
Many other authors have contributed to the underlying base of this solution. If you feel anyone is missing, please let me know.
Don't be shy, please contribute to this project if you can! Feel free to open PRs or open an issue.
The main hub for discussion outside this repo is the PunyInformDE thread on the IFWizz forums, the central meeting point for the German interactive fiction community.