Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.programming > #3333 > unrolled thread

Programming Open-Ended Plots In Games

Started byBrian <briansipler@yahoo.com>
First post2013-05-18 18:13 -0700
Last post2013-05-22 12:19 -0700
Articles 11 — 7 participants

Back to article view | Back to comp.programming


Contents

  Programming Open-Ended Plots In Games Brian <briansipler@yahoo.com> - 2013-05-18 18:13 -0700
    Re: Programming Open-Ended Plots In Games Patricia Shanahan <pats@acm.org> - 2013-05-18 19:31 -0700
      Re: Programming Open-Ended Plots In Games "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2013-05-19 10:12 +0100
        Re: Programming Open-Ended Plots In Games "osmium" <r124c4u102@comcast.net> - 2013-05-19 05:43 -0500
          Re: Programming Open-Ended Plots In Games Jussi Piitulainen <jpiitula@ling.helsinki.fi> - 2013-05-19 14:22 +0300
          Re: Programming Open-Ended Plots In Games Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2013-05-19 08:39 -0700
          Re: Programming Open-Ended Plots In Games "Charles Hottel" <chottel@earthlink.net> - 2013-05-19 13:45 -0400
          Re: Programming Open-Ended Plots In Games "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2013-05-20 08:30 +0100
      Re: Programming Open-Ended Plots In Games Brian <briansipler@yahoo.com> - 2013-05-19 14:55 -0700
        Re: Programming Open-Ended Plots In Games Patricia Shanahan <pats@acm.org> - 2013-05-22 07:52 -0700
          Re: Programming Open-Ended Plots In Games Brian <briansipler@yahoo.com> - 2013-05-22 12:19 -0700

#3333 — Programming Open-Ended Plots In Games

FromBrian <briansipler@yahoo.com>
Date2013-05-18 18:13 -0700
SubjectProgramming Open-Ended Plots In Games
Message-ID<06ed0b39-4b4c-4ce1-b0d0-3bfa25b7ade0@g9g2000yqh.googlegroups.com>
Hi, there is a computer game that I play.  It's a text-based RPG, and
you play it on the Windows Desktop.  The game has an open-ended plot,
and I talked to the developer of that game, and he said the open-ended
plot means that he finitely programmed an infinite number of choices
that players can make during the main plot.  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, and
he wouldn't give out his programming techniques.  How do you think he
finitely programmed the infinite number of choices that you can make
during the main plot without anything being randomly generated in the
plot?

Brian

[toc] | [next] | [standalone]


#3334

FromPatricia Shanahan <pats@acm.org>
Date2013-05-18 19:31 -0700
Message-ID<OcydnQ7cCa3wpAXMnZ2dnUVZ_rWdnZ2d@earthlink.com>
In reply to#3333
On 5/18/2013 6:13 PM, Brian wrote:
> Hi, there is a computer game that I play.  It's a text-based RPG, and
> you play it on the Windows Desktop.  The game has an open-ended plot,
> and I talked to the developer of that game, and he said the open-ended
> plot means that he finitely programmed an infinite number of choices
> that players can make during the main plot.  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, and
> he wouldn't give out his programming techniques.  How do you think he
> finitely programmed the infinite number of choices that you can make
> during the main plot without anything being randomly generated in the
> plot?

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.

A compiler does not contain within it the infinite set of possible
arithmetic expressions (ignoring any limits on program size). Instead,
it has a finite set of rules about arithmetic expression structure.

Patricia

[toc] | [prev] | [next] | [standalone]


#3336

From"Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org>
Date2013-05-19 10:12 +0100
Message-ID<RrSdnaH1JOVMCgXMnZ2dnUVZ7vWdnZ2d@bt.com>
In reply to#3334
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"... 

[toc] | [prev] | [next] | [standalone]


#3338

From"osmium" <r124c4u102@comcast.net>
Date2013-05-19 05:43 -0500
Message-ID<avron7Fka8mU1@mid.individual.net>
In reply to#3336
"Chris Uppal" wrote:

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

I think there is a needed but missing word in the English language to 
classify things that are, for all practical purposes, infinite but not 
infinite from the standpoint of a picky mathematician.  Does any language 
have such a word?   Peninfinte is as good as I could come up with in 
English.

And as a WAG, there are no non-picky mathematicians. In the same sense that 
there are no white crows. 

[toc] | [prev] | [next] | [standalone]


#3339

FromJussi Piitulainen <jpiitula@ling.helsinki.fi>
Date2013-05-19 14:22 +0300
Message-ID<qotip2fi59i.fsf@ruuvi.it.helsinki.fi>
In reply to#3338
osmium writes:

> I think there is a needed but missing word in the English language
> to classify things that are, for all practical purposes, infinite
> but not infinite from the standpoint of a picky mathematician.  Does
> any language have such a word?  Peninfinte is as good as I could
> come up with in English.

If there was a real need, there would be a word.

There are words that come close enough. Opening a large thesaurus at
"large" I find a number of candidates: one of "immense", "enormous",
"humongous", "ginormous", "superabundant" might be taken and defined
in a context to mean a number that is so large that it won't ever be
exhausted.

Another tack would be to play with "generative" and use several words
(this is often done in practice!) to convey the idea that the game
generates its plot, map, whatever as the players make choices, in a
way that won't be exhausted as long as anyone can possibly care.

> And as a WAG, there are no non-picky mathematicians. In the same
> sense that there are no white crows.

I suppose a mathematician is one who does mathematics. And mathematics
is what mathematicians do. Possibly in the same sense that there are
white crows.

[toc] | [prev] | [next] | [standalone]


#3350

FromDaniel Pitts <newsgroup.nospam@virtualinfinity.net>
Date2013-05-19 08:39 -0700
Message-ID<Hm6mt.4342$OS5.1644@newsfe24.iad>
In reply to#3338
On 5/19/13 3:43 AM, osmium wrote:
> "Chris Uppal" wrote:
>
>> 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"...
>
> I think there is a needed but missing word in the English language to
> classify things that are, for all practical purposes, infinite but not
> infinite from the standpoint of a picky mathematician.  Does any language
> have such a word?   Peninfinte is as good as I could come up with in
> English.
>
> And as a WAG, there are no non-picky mathematicians. In the same sense that
> there are no white crows.
"Practically infinite" I think fits the bill, though it isn't a single word.

To put the numbers in perspective, a clock which keeps time in a 32bit 
number-of-seconds-since-an-epoch is valid for 136 years. Adding one bit 
doubles that time period.  64 bit value would store 584,554,531,341 years.

If your game state was encoded in 64bits, and changed ten times a 
second, it could have enough different states that you play the game for 
58 billion years and not see the same state twice.

That doesn't fit the definition of "infinite", but it is over 4 times 
the age of the universe ;-)


[toc] | [prev] | [next] | [standalone]


#3351

From"Charles Hottel" <chottel@earthlink.net>
Date2013-05-19 13:45 -0400
Message-ID<vNidncY0EoEkkgTMnZ2dnUVZ_q6dnZ2d@earthlink.com>
In reply to#3338
"osmium" <r124c4u102@comcast.net> wrote in message 
news:avron7Fka8mU1@mid.individual.net...
> "Chris Uppal" wrote:
>
>> 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"...
>
> I think there is a needed but missing word in the English language to 
> classify things that are, for all practical purposes, infinite but not 
> infinite from the standpoint of a picky mathematician.  Does any language 
> have such a word?   Peninfinte is as good as I could come up with in 
> English.
>
> And as a WAG, there are no non-picky mathematicians. In the same sense 
> that there are no white crows.
>
From Donald Knuth, The Art of Computer Programming:

An algorithm has 5 important features: (1) finiteness: i.e. terminates after 
a finite number of steps (2) definiteness, (3) input, (4) output, (5) 
effectiveness.

A computational method has all the characteristics of an algorithm except it 
lacks finiteness. 

[toc] | [prev] | [next] | [standalone]


#3357

From"Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org>
Date2013-05-20 08:30 +0100
Message-ID<Daudna__xt_dTATMnZ2dnUVZ8uKdnZ2d@bt.com>
In reply to#3338
osmium wrote:

> I think there is a needed but missing word in the English language to
> classify things that are, for all practical purposes, infinite but not
> infinite from the standpoint of a picky mathematician.

"FAPP-infinite", "practically inexhaustible" (or infinite), "effectively 
inexhaustible" (or infinite), "large enough" ?

But I can see problems with all of them.

    -- chris 

[toc] | [prev] | [next] | [standalone]


#3352

FromBrian <briansipler@yahoo.com>
Date2013-05-19 14:55 -0700
Message-ID<c113ec09-c8d5-4a3c-a5d3-0950f3a637b4@i3g2000yqf.googlegroups.com>
In reply to#3334
On May 18, 10:31 pm, Patricia Shanahan <p...@acm.org> wrote:
> On 5/18/2013 6:13 PM, Brian wrote:
>
> > Hi, there is a computer game that I play.  It's a text-based RPG, and
> > you play it on the Windows Desktop.  The game has an open-ended plot,
> > and I talked to the developer of that game, and he said the open-ended
> > plot means that he finitely programmed an infinite number of choices
> > that players can make during the main plot.  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, and
> > he wouldn't give out his programming techniques.  How do you think he
> > finitely programmed the infinite number of choices that you can make
> > during the main plot without anything being randomly generated in the
> > plot?
>
> 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.
>
> A compiler does not contain within it the infinite set of possible
> arithmetic expressions (ignoring any limits on program size). Instead,
> it has a finite set of rules about arithmetic expression structure.
>
> Patricia

Hi Patricia, you said formal grammar can generate an infinite set from
finite information.  I looked up formal grammar on the Internet.  How
do you use formal grammar to generate the infinite number of choices
that you want in the main plot of a game?

[toc] | [prev] | [next] | [standalone]


#3370

FromPatricia Shanahan <pats@acm.org>
Date2013-05-22 07:52 -0700
Message-ID<5LKdnUF6cqsyRgHMnZ2dnUVZ_jidnZ2d@earthlink.com>
In reply to#3352
On 5/19/2013 2:55 PM, Brian wrote:
> On May 18, 10:31 pm, Patricia Shanahan <p...@acm.org> wrote:
>> On 5/18/2013 6:13 PM, Brian wrote:
>>
>>> Hi, there is a computer game that I play.  It's a text-based RPG, and
>>> you play it on the Windows Desktop.  The game has an open-ended plot,
>>> and I talked to the developer of that game, and he said the open-ended
>>> plot means that he finitely programmed an infinite number of choices
>>> that players can make during the main plot.  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, and
>>> he wouldn't give out his programming techniques.  How do you think he
>>> finitely programmed the infinite number of choices that you can make
>>> during the main plot without anything being randomly generated in the
>>> plot?
>>
>> 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.
>>
>> A compiler does not contain within it the infinite set of possible
>> arithmetic expressions (ignoring any limits on program size). Instead,
>> it has a finite set of rules about arithmetic expression structure.
>>
>> Patricia
>
> Hi Patricia, you said formal grammar can generate an infinite set from
> finite information.  I looked up formal grammar on the Internet.  How
> do you use formal grammar to generate the infinite number of choices
> that you want in the main plot of a game?
>

I did not intend to literally suggest using a formal grammar. Rather, a
formal grammar is an example of a finite generator whose possible output
is an infinite set of strings of unbounded length.

I do suggest thinking in terms of using generators for the game. For
example, as the player moves around generate new spaces, rather than
restricting the player to spaces that are already compiled in.

Patricia

[toc] | [prev] | [next] | [standalone]


#3373

FromBrian <briansipler@yahoo.com>
Date2013-05-22 12:19 -0700
Message-ID<80b0d2c0-f3ea-484d-a3a3-6601db457e53@20g2000yqe.googlegroups.com>
In reply to#3370
On May 22, 10:52 am, Patricia Shanahan <p...@acm.org> wrote:
> On 5/19/2013 2:55 PM, Brian wrote:
>
>
>
>
>
>
>
>
>
> > On May 18, 10:31 pm, Patricia Shanahan <p...@acm.org> wrote:
> >> On 5/18/2013 6:13 PM, Brian wrote:
>
> >>> Hi, there is a computer game that I play.  It's a text-based RPG, and
> >>> you play it on the Windows Desktop.  The game has an open-ended plot,
> >>> and I talked to the developer of that game, and he said the open-ended
> >>> plot means that he finitely programmed an infinite number of choices
> >>> that players can make during the main plot.  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, and
> >>> he wouldn't give out his programming techniques.  How do you think he
> >>> finitely programmed the infinite number of choices that you can make
> >>> during the main plot without anything being randomly generated in the
> >>> plot?
>
> >> 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.
>
> >> A compiler does not contain within it the infinite set of possible
> >> arithmetic expressions (ignoring any limits on program size). Instead,
> >> it has a finite set of rules about arithmetic expression structure.
>
> >> Patricia
>
> > Hi Patricia, you said formal grammar can generate an infinite set from
> > finite information.  I looked up formal grammar on the Internet.  How
> > do you use formal grammar to generate the infinite number of choices
> > that you want in the main plot of a game?
>
> I did not intend to literally suggest using a formal grammar. Rather, a
> formal grammar is an example of a finite generator whose possible output
> is an infinite set of strings of unbounded length.
>
> I do suggest thinking in terms of using generators for the game. For
> example, as the player moves around generate new spaces, rather than
> restricting the player to spaces that are already compiled in.
>
> Patricia

Thank you everybody for the answers.  I really appreciate the help.

[toc] | [prev] | [standalone]


Back to top | Article view | comp.programming


csiph-web