On Sun, 30 Sep 2001, Leon Brocard wrote:

> Paul Makepeace sent the following bits through the ether:
>
> > What did you use to write/modify the game?
>
> The Inform Compiler, see http://www.gnelson.demon.co.uk/inform.html
> for way too much information about the topic.

(Long post with no useful content...move on please, nothing to see here)

Been there done that.  The Inform compiler has a rather quirky nature.
Really nice features like light transmission (if you put something that
produces light inside a transparent object then the surrounding object
becomes a light source too.)

However, one of the quirky 'features' about inform is there's a maximum
object limit.  During my first year a friend and myself wrote a game about
all the people in our hall.  Was very silly and is now lost for all time,
but we had some interesting problems.  Our halls were made of 8 or so
victorian houses that had been converted so that in any house you could go
up or down between any of the four floors and on any floor (sans basement
and some top floors) you could go east or west through holes punched
between the houses.  And as this was a representation of a real place, the
map had to work exactly as people would expect it so we couldn't simplify
matters.

The original version has about 32 hall rooms (i.e. hall objects.)  This
was okay until we hit the maximum object limit.  Then my mad friend - who
hadn't done too much programming till this point - came up with a novel
solution.  Taking the really nice object system and throwing it away we
transformed the entire hall system into one object.  Then whenever you
attempted to move out of the hall object we'd return false, change the
description of the object so it looked like you'd moved and connect the
north and south exits to new rooms.

The complicated bit came when we had to deal with people dropping objects.
Obviously these shouldn't magically chase you around as you moved around
in the hall, so we had to hack even more crazy code to pick up the objects
at the end of each turn and stuff them (with attributes set to say where
they came from) in another object called "The Black Hole" and pick up any
objects in "The Black Hole" that should have been in the room you're
moving into and put them back.

That was...um, interesting...to debug.

In a similar vien each room had a sink and tap (needed to fill a kettle to
make some tea to get Mr Wistow's orange monkey back - don't ask.)  All the
taps and sinks were the same objects that magically moved around between
rooms and we had to remember which rooms you'd left the tap on and turn it
on and off.  I again deny coming up with this crazy scheme and blame it
all on my aquantence.

Needless to say my mad friend is now employed as a professional Perl
programmer.

Later.

Mark.

-- 
s''  Mark Fowler                                     London.pm   Bath.pm
     http://www.twoshortplanks.com/              [EMAIL PROTECTED]
';use Term'Cap;$t=Tgetent Term'Cap{};print$t->Tputs(cl);for$w(split/  +/
){for(0..30){$|=print$t->Tgoto(cm,$_,$y)." $w";select$k,$k,$k,.03}$y+=2}


Reply via email to