Patricia Shanahan wrote:
> > [...] He also said that nothing
> > is randomly generated in the main plot. I asked him how he finitely
> > programmed the infinite number of choices in the main plot without
> > anything being randomly generated, but he said that is his secret,[...]
>
> There are well known structures that can generate an infinite set from
> finite information. One of the most important is a formal grammar - you
> can see examples in most programming language specifications.
Also the code could use the system clock (current date-time, not milliseconds
since last boot) to provide "variety" without actually using a [P]RNG ;-)
Though if I were aiming for this, I'd probably use some sort of high quality
hash (SHA1 would be good enough) of the current gamestate and/or history to
provide fully determinate but not easily predicatable plot twists.
Not actually "infinite" though (except in the sense of arbitrary extensibility
that Patricia means) because a finite machine cannot provide infinite behaviour
without repeats[*].
-- chris
[*] One caveat: if you allow (unrealistically) the machine to have an
arbitrarily extensible memory, bus width, etc, and you come up with some scheme
to replace the fixed hash with hashes from an infinite family with unbounded
bit-length, and kept switching the hash as the game ran (say every 10^40 years
;-) then you might be able to make a convincing case that your game was
"potentially infinite"...