[net.games.rogue] The FLAME hits --More

paul@wjvax.UUCP (Paul Summers) (10/27/84)

YES THIS IS A FLAME!!!!!!!!!!!!!!!

For the first time ever, I found the Amulet.  Here I was, practically
invincible (+6,+10 mace, ring of stealth, +6 rustproofed banded mail,
strength 20, polymorph, scare monster, teleports, 157000 experience points).
I could take out a Jabberwok (yes, 5.3) with about 3 hits.  That mace would 
never miss.

There was only one thing to which I was not imune:

	THAT #%&@%$* "saved game bug"!!!!!!!!!!!!!!!!!!!!!!!!!!

I had been keeping the game in the background when I wasn't playing it just
to avoid that very problem.  I had never been hit by a nymph, so my pack
was in good shape.  I'd been playing the game off and on for about a week,
when I decided I was pushing my luck with system crashes (I've lost several
good starts through system crashes using this method) so I saved the game.
I SAVED THE GAME! Oh, the folly of my deed!

I made sure that I was standing on a stair case before saving it.  The next day,
I restored the game and took one step to the left.  Nothing happenned. I 
typed several more h's and got this response:


	---------------
	|  ...        |
	|  .@hhhhhhhhhhhhhhhh
	|  ...        |
	+             |
	---------------
Of course!  The game was saving itself, without out even asking it to do so.
No problem, I thought.  I'll just restore it, and go up the stairs.  That should
fix everything.  WRONG.  I did an inventory (the only thing I could do.)
My pack was a shambles.  It looked like the list had linked back to itself.
I had two of everything (that is, two item a)'s, two item b)'s).  

DEFEATED BY FAULTY SOFTWARE.

		       ----------
		      /          \
                     /    REST    \
                    /      IN      \
                   /     PEACE      \
                  /                  \
                  |      Gimli       |
                  |     6650 Au      | 
                  |   Killed by a    |
                  |  Lazy Programmer |
                  |      1984        |
                * |   *    *         | *
         _______/_(\/)/\(\/\/)/\/)//\\/)_________

I think I'm going to switch to sail.
-- 

<*><*><*><*><*><*><*><*><*><*><*><*><*><*><*><*><*><*><*><**><*><*><*><*><*><*>

Paul Summers
Watkins Johnson, Co.
2525 N. First St.
San Jose, Ca.  95131-1097

(408) 262-1411 x3203

(...wjvax!paul)

Working is fine, but I wouldn't want to make a career out of it.

dhb@rayssd.UUCP (11/06/84)

I think that the save game bug is one of the worst things in the entire
game.  Most of the rest of the things can be worked around by careful
playing but not this one.  If you have ever seen the source to the game
you will understand not only the cause of this bug but the complexity
of attempting to resolve it.  The way the program saves the game is by
finding out the beginning address of the data space, doing an sbrk() to
find the end of the data space, and then writing the entire data space
to the file.  The restore routine simply finds out the size of the file,
sets the size of the data space to that amount, and then reads the file
in.  When I first saw this I almost choked.  This is not to say that I
think the authors are poor programmers, just that the code is EXTREMELY
un-portable (I was trying to port an old version (3.8) of the program
to another operating system at the time!).  This method of doing the
save/restore is also highly prone to problems (witness the current bug)
due to the fact that a large portion of the data space contains pointers.

Just let me state again that I am not critizing the quality of the
save/restore routines coding, only it's portablity.  If any of the
authors are interested, I have a save/restore routine about 95%
finished which should alleviate these problems.
-- 
	Dave Brierley
	Raytheon Co.; Portsmouth RI; (401)-847-8000 x4073
	...!decvax!brunix!rayssd!dhb
	...!allegra!rayssd!dhb
	...!linus!rayssd!dhb