>Anyway, while I was fixing things, I also added (by popular request) a new
>command line switch, -L, which allows you to specify a particular level (or
>levels) for RanDOOM to ranDOOMize. For example,
Hey, this is a great idea. Randoom seems to be getting better by leaps
and bounds, and to be honest it was pretty good to begin with. I've
probably had as much fun with Randoom as I have with the original game.
<SNIP>
>A FEW WORDS ABOUT THE NEW PLACEMENT ALGORITHM
>---------------------------------------------
>A RanDOOM user asks:
>> Randoom 1.4's new-and-improved monster placement strategies are great,
>> but I think it overdoes it... mainly because I almost never see a
>> cacodemon around anymore, even when I have the frequency set up to 1.0.
>> I think that for some reason, Randoom thinks they're much bigger than it
>> really are, so when it goes to see if thy'll fit in a room or something
>> it decides they won't, and doesn't place them. [...]
>>
>> With Randoom 1.2, when it DIDN'T check to see if a monster would get
>> stuck in a wall or something (i.e., random placement), I found cacodemons
>> all the time in small narrow corridors, and rarely were they stuck, so
>> they _can_ fit there. Will this "bug" be fixed in Randoom 1.5?
>OK, here's the scoop:
>The new placement algorithm checks the "fit" of objects about to be
>placed and, if they are too large in any dimension, are rejected and a
>new object is chosen at random for that spot. The DOOM map has only a limited
>number of spaces where the larger objects CAN fit. Since objects are
>placed at random, there's nothing to "match" a given space with a given
>object. Suppose for the sake of this discussion that a given map has 100
>usable spaces. Of these, let's suppose that 10 are large enough for
>spider demons, the largest monster. Just because there are 10 spots
>where a spider demon COULD fit, however, does *not* mean that there WILL
>be 10 spider demons. Depending upon how the weights are set, RanDOOM
>might put stimpacks, armor bonus helmets, and shotguns there instead. If
>all 10 "big" spots are filled with other stuff, that means by the time a
>cacodemon does come up, it won't fit into the place RanDOOM is trying to
>put it, so it will be tossed and another item drawn at random until one
>which fits is found.
I understand this, but I still agree with the original poster (I'd go look
at your name, but I hate using Emacs). Even with the checking-for-space-
and-booting algorithm, the number of cacodemons and barons in 1.41 should
be the same as the number of cacodemons and barons in 1.3 _that were
actually out and running around_. And this clearly isn't so. I've
used the KILL.W weight file to randomize a number of levels under 1.3 and
1.4/1.41 and under the new version their are hardly ever any barons or
cacodemons, and very few spectres and demons. In all cases the number of
bigger monsters is not equal to 1.3 monsters - monsters stucks in walls.
It seems like either 1.4 thinks objects are bigger than they really are and
so boots objects that would fit, or junctures that are not actually walls
(acid pits, lighting zones, sector changes) are disqualifying objects
from being placed.
Oh well. If you wanted to do a weighting algorithm, you could generate a
list of all the items you wanted to place on a level, sort for size, and
then try to place the big objects first by searching until you find a
spot or until you reach a timeout where you would have to rechoose objects
that size and bigger. This would add time to level generation, but hey
that's what sandwiches are for.
>Surgeon General's Warning: At id's request, RanDOOM will only work with
>the registered version of DOOM.
I think Randoom itself is a good reason to register. Nothing like walking
through a level with nothing but Sergeants, Troopers, and berserker boxes.
Chris R
>--
>Scott Coleman tm...@uiuc.edu
>President ASRE (American Society of Reverse Engineers)
>Ed Green Fan Club #005
>I understand this, but I still agree with the original poster (I'd go look
>at your name, but I hate using Emacs). Even with the checking-for-space-
>and-booting algorithm, the number of cacodemons and barons in 1.41 should
>be the same as the number of cacodemons and barons in 1.3 _that were
>actually out and running around_. And this clearly isn't so.
Right, and the item sizes are being optimized by several kind volunteers
even as I write this. But the sizing is a factor, as well.
Look for a "best fit" algorithm, -M3, in the next release of RanDOOM,
along with new, optimized sizes and some speed improvements to boot.
Keep your eye on this newsgroup! ;-)