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}