I wonder if text adventures used dictionary compression, because it seems easy enough to do and should reduce file size quite a bit...

One could map some of the ascii or iso-8859 non english characters (0-31 & 128+) to 128 common words and word endings, then escape 224+ with a follow up byte for 32*256=8192 word segments or full common words, and names.

I guess the drawback is that you need to keep a large dictionary on disk and in RAM (around 60KB probably).

Compression might be... * 0.3?

I'd probably arrange the words in the 32 escape tables alphabetically and by length for easier crunching/packing... using an index for search.

Sub-sorting by word length would speed up search and reduce the need for storing word length & addresses for the dict entry offsets and the dict could be a linear string. Also, 8-bit for a-z would be wasteful, but faster I suppose.

Spaces in the text could be automatically inserted (and removed upon punctuation). Initial capital could be automatic too.

...If one were designing a late terminal-era computer back in the '80s, one could put this dictionary and index lut into a 64K ROM, and also include programming syntax... providing an alternative or supplement to the tokenization used in e.g. BASIC.

With a display ASIC, one could even make ...hardware accelerated text :O

To complicate & pack things further:
ONE COULD STORE TE\xT IN \fOUR \bIT NI\b\bLES:

EISA RNTO LCUD PMG\
with \ as an escape character for the rare chars
hbyf vkwz xqjé üï-'

@androidarts
it has been a while since I recall reading of this, but I think this was used in the original Elite (that space trading game).
So words like COMPUTER and COMBAT would both use the "COM" -syllable as a sprite instead of having to store and draw it as three characters.