Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

"Real time" games

2 views
Skip to first unread message

Laura Proctor

unread,
May 23, 1997, 3:00:00 AM5/23/97
to

I've been thinking about "real time" games, which changed based on the
player's input, but had events that advanced in real time even if the
player did nothing.

Can anyone think of any? (Interactive fiction or computer games in general.)

Were there any that unfolded over a period of _more_ than one day?

Were there any that could be set to correspond with _real_ time? (So, for
example, 7 AM in the game would correspond to 7 AM in real life.)

Miron Schmidt

unread,
May 24, 1997, 3:00:00 AM5/24/97
to

> I've been thinking about "real time" games, which changed based on the
> player's input, but had events that advanced in real time even if the
> player did nothing.
>
> Can anyone think of any? (Interactive fiction or computer games in general.)

Infocom's _Border Zone_, of course. _The Mask of the Sun_ had a few real-time
events, such as the snake in the first pyramid, and the moving boulder in the
lava.
Possibly _The Serpent's Star_ has similar scenes, but I've never played it
very far.

> Were there any that unfolded over a period of _more_ than one day?

I think _The Mask of the Sun_ does. But that probably not what you're looking
for, since it's not *real* real-time.

> Were there any that could be set to correspond with _real_ time? (So, for
> example, 7 AM in the game would correspond to 7 AM in real life.)

I can't think of any.

---------------------------------------------------------------------
Miron Schmidt "Look, this isn't going to get
mi...@comports.com .oOo. any more exciting."
-- Andrew Plotkin, _So Far_
---------------------------------------------------------------------


LFrench106

unread,
May 24, 1997, 3:00:00 AM5/24/97
to

>Were there any that could be set to correspond with _real_ time? (So, for
>example, 7 AM in the game would correspond to 7 AM in real life.)

NetHack, for one.

Just post to rec.games.roguelike.nethack asking for an e-mail response
about the effects that the time has upon your game.

Graham Nelson

unread,
May 25, 1997, 3:00:00 AM5/25/97
to

In article <19970524210...@ladder01.news.aol.com>, LFrench106

<URL:mailto:lfren...@aol.com> wrote:
>
> >Were there any that could be set to correspond with _real_ time? (So, for
> >example, 7 AM in the game would correspond to 7 AM in real life.)

No, the Z-machine is not really aware of an outside world.

In response to the several people who've asked about timed input
in Inform games, here is a short shell-game which shuffles six
dwarves about while the player is typing, and in addition maintains
a game clock (running 10 times faster than player-time; i.e.
sitting at the keyboard for 6 minutes allows an hour to pass in
the game). For a much better implementation of dwarves milling
about in real time, see Melbourne House's "The Hobbit"...


Constant DEBUG;

Constant Story "TIME AND DWARVES";
Constant Headline "^An Interactive Demo^";

Replace Keyboard;
Statusline time;

Include "Parser";

Global game_clock = 5000;

! This is just the parser's ordinary keyboard routine copied out,
! except that I've deleted the "undo" code (can you UNDO in a
! real time game? Hmm) and that there's a marked difference in
! the middle part...

[ Keyboard a_buffer a_table nw i w x1 x2;

DisplayStatus();
.FreshInput;

! Save the start of the table, in case "oops" needs to restore it
! to the previous time's table

for (i=0:i<10:i++) oops_workspace->i = a_table->i;

! In case of an array entry corruption that shouldn't happen, but would be
! disastrous if it did:

a_buffer->0 = 120;
a_table->0 = 64;

! Print the prompt, and read in the words and dictionary addresses

L__M(##Prompt);
AfterPrompt();

! ----------------------------------------------------------------------
! Here's the interesting bit: an ordinary Inform-style keyboard read
! except that TimeRunning() is called every 10 tenths-of-a-second,
! i.e., once every second.
! ----------------------------------------------------------------------

DrawStatusLine();
a_buffer->1 = 0; a_table->1 = 0;
@aread a_buffer a_table 10 TimeRunning -> i;

! (i holds true if TimeRunning() interrupted us, but we ignore this)

! ----------------------------------------------------------------------

nw=a_table->1;

! If the line was blank, get a fresh line
if (nw == 0)
{ L__M(##Miscellany,10); jump FreshInput; }

! Unless the opening word was "oops", return

w=a_table-->1;
if (w == OOPS1__WD or OOPS2__WD or OOPS3__WD) jump DoOops;
return nw;

.DoOops;
if (oops_from == 0)
{ L__M(##Miscellany,14); jump FreshInput; }
if (nw == 1)
{ L__M(##Miscellany,15); jump FreshInput; }
if (nw > 2)
{ L__M(##Miscellany,16); jump FreshInput; }

! So now we know: there was a previous mistake, and the player has
! attempted to correct a single word of it.
!
! Oops is very primitive: it gets the text buffer wrong, for instance.
!
! Take out the 4-byte table entry for the supplied correction:
! restore the 10 bytes at the front of the table, which were over-written
! by what the user just typed: and then replace the oops_from word entry
! with the correction one.
!
x1=a_table-->3; x2=a_table-->4;
for (i=0:i<10:i++) a_table->i = oops_workspace->i;
w=2*oops_from - 1;
a_table-->w = x1;
a_table-->(w+1) = x2;

return nw;
];

Include "VerbLib";

Class Dwarf
has animate proper
with name "dwarf",
move_me
[ rfrom rto;
if (random(10) == 1)
{ rfrom = parent(self);
if (rfrom == Blue_Room) rto = Red_Room; else rto = Blue_Room;
if (player in rfrom)
print "^", (name) self,
" wanders off into ", (the) rto, ".^";
if (player in rto)
print "^", (name) self,
" strolls in from ", (the) rfrom, ".^";
move self to rto;
}
];

Object Blue_Room "Blue Room"
has light
with description
"A blue-painted room, bare of furniture, with a
corridor leading east.",
e_to Red_Room;

Dwarf -> "Thorin";
Dwarf -> "Gimli";
Dwarf -> "Igneous";

Object Red_Room "Red Room"
has light
with description
"A red-painted room, bare of furniture, with a
corridor leading west.",
w_to Blue_Room;

Dwarf -> "Sleepy";
Dwarf -> "Dopey";
Dwarf -> "Doc";

[ TimeRunning o;

! Runs once per second of "real time"

! Every ten seconds, one minute of "game time" passes

game_clock = (game_clock+1) % 14400;
if (game_clock % 10 == 0)
{ SetTime(game_clock/10);
DisplayStatus();
DrawStatusLine();
}

! Every second, every dwarf has the opportunity to move

objectloop (o ofclass Dwarf) o.move_me();
rfalse;
];

[ Initialise;
location = Blue_Room; SetTime(game_clock/10); DisplayStatus();
"^^^^^Welcome to the...^";
];

Include "Grammar";

--
Graham Nelson | gra...@gnelson.demon.co.uk | Oxford, United Kingdom


C.E. Forman

unread,
May 26, 1997, 3:00:00 AM5/26/97
to

Another good one was "Escape from Rungistan", which had arcade-like
sequences as well as puzzles where the player typed against a timer.

OTOH, it also had unquestionably *the* single numero-uno most evil,
vile, wretched, unfair and downright despicable combination-lock puzzle
in the entire history of adventure games.

--
C.E. Forman cefo...@worldnet.att.net
Author of "Delusions", the 3rd place winner in the 1996 I-F Competition!!
Release 3 is now at: ftp://ftp.gmd.de/if-archive/games/infocom/delusns.z5
Read "XYZZYnews" @ http://www.interport.net/~eileen/design/xyzzynews.html
Ye Olde Infocomme Shoppe http://netnow.micron.net/~jgoemmer/infoshop.html

0 new messages