Skip to content

IkeC/PunyInformDE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PunyInformDE

Deutsch

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.

English

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=2 support: 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

Repository Layout

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\PunyTest

Quick Start

1. Compiling a game

Pass 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.z5

On macOS, the easiest setup is to install the tools with Homebrew:

brew install inform6 frotz

That 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.

2. Using VS Code build task / build scripts

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.ps1

Or press Ctrl+Shift+B inside VS Code.

The build script produces:

  • build/sterne.z5 — Unicode build
  • build/sterne.ascii.z5 — ASCII (digraph) build
  • build/sterne.z3 — Z3 build
  • build/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).

3. Run the game

tools\dfrotz.exe build\sterne.z5

4. Run tests

Requires PunyTest cloned next to this repository (see Repository Layout below):

.venv\Scripts\python.exe -m pytest tests/ -v

Where To Read More

For implementation details, architecture, algorithm decisions, and known limits, see Implementation.md. For design analysis and rationale history, see Grammar.md.

Acknowledgements

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.

PunyInformDE Games

Contribute

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.

About

German version of PunyInform

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors