NerdanelVampire: I've been playing with monster filtering and other features in dungeons.lua. I like it, but the potential to make a horribly unbalanced dungeons is significant. For example, you make an open dungeon. Fine, but now the dungeon is very hard relative to its level for most characters. Now if you want to balance it, you can filter the monster generation to only allow, say, icky things, but if your vision doesn't allow for that - say, it's an undead dungeon and you don't want to wimpify undeads - you'd rather that there were fewer monsters or that the loot lying around and dropped by monsters was very high quality.
The following things cannot currently be customized without LEVEL_GENERATE_POST or even worse hacks:
- The number of monsters on a level. There is a minimum setting, but no maximum or average.
- The number of up/down stairs.
- The level of generated loot.
- The number of items lying on the ground.
- The generation frequency of low-level monsters.
- The generation frequency of low-level items.
- The generation frequency of out-of-depth stuff and how out-of-depth it is.
For example, instead of having leveled-up jackals in an evil god's dungeon, I'd like to have no or very rare normal jackals, but instead have lots and lots of naturally deep stuff.
Sorgath: sounds like you just want to make it a normal dungeon with a deeper level.
NerdanelVampire: The deeper level alone doesn't solve it. Why do you think Angband in ToME 2 has leveled-up monsters? The current dungeon generation simply produces far too many low-level monsters, especially if you want a particular dungeon to be especially hard, like Angband.
NerdanelVampire: Here's an example. I made a lost soul. I'm currently at dungeon level 98 which is a small but crowded two-room level where I'm able to see (nearly) every monster. The toughest monster is a level 52 hell knight. The second toughest monster is a level 47 cult leader. The title of the weakest monster is a draw between a level 2 voormi and a level 2 novice mage. Under level 10 there is also a level 5 eye jelly, a level 7 giant pink frog, a level 9 hatchling cloud dragon, and 15 level 9 aquatic roots. The rest are somewhere in the middle. As this kind of monster distribution is obviously (I hope so) unsuitable for an Angband-equivalent dungeon, and I find super jackals and super novice mages silly (and not in the good way), the only conclusion is that the monster generation needs to be tweaked somehow.
Sorgath: Alright, i yield. Maybe there do need to be some major changes to give mod makers more control.
In fact I'd like to change the entire monster generation algorithm more to my liking. I'd like it if there were a very, very tiny but nonzero chance of meeting something as utterly unfair as a Star-spawn of Cthulhu on dungeon level 1, just like I'd like it to be possible but very, very unlikely to find something as sweet as a quadruple-immunity randart or a +30 to blows randart on dungeon level 1. As this is clearly not the philosophy of the recent ToME, I'd like a better control over these things.
Sorgath: First off i'd just like to say that few people really want to find a Star-spawn of Cthulhu on lvl 1 or a +30 blows randart, they take all the fun out of the game, one is instant death and the other is instant victory.
NerdanelVampire: Note the "very, very rare" part. I don't like hard caps on impossibility. If you see a Star-spawn of Cthulhu without being strong enough to handle it, run. Currently monsters are never, ever generated more than 40 levels out-of-depth. I'd like to keep things a little bit more unpredictable. I think the gain in excitement is more than the loss in balance.
secondly, this is the second time in two days i've seen you refer to using hooks as a really bad way of doing things. They are there for a reason and now that T3 has expanded the number of hooks they are even more useful, why do you so dislike having to use them?
I would also recommend you ask around to the forums and wiki to see if someone else can come up with nice easy ways of doing these things rather than simply stating that they aren't possible. I personally haven't looked through the dungeon generation code much but i'm sure with the huge abundance of hooks and the amount of stuff that's been moved to lua the things you're asking should be possible.
NerdanelVampire: Some applications of hooks are plain ugly, not all. If you completely redefine what the hooked-at thing is doing, instead of adding to it or checking if the action can be done, then it's a big step towards spaghetti code, and that sucks. In the back of my mind I obviously meant this topic as a hint for the engine developers, so that we can get un-kludgy ways of doing these things.
Sorgath: The subsystems are the un-klungy way of doing things. Maybe DarkGod will subsystemify the generation code.
BucketMan: I have no objection to hooks, but I would also like to see more control over dungeon generation. In my case, the primary issues are:
- No control over item generation: A 1x1 dungeon generates just as many random items as a 5x5 dungeon.
- No control over trap generation
Everything else I can 'wing' but I haven't figured out how to iterate through existing items or traps, and going through and retroactively deleting them all after they've been generated seems a bit silly. Of course, building a dungeon generator is an option, but these two seem like fairly obvious things that people want want to do. It would be nice to have dungeon level flags that caused these things to not generate. That way I could simply place my own. (Of course, I haven't looked at alph14 yet. These things have been mentioned on the mailing list. It's possible they've already been implemented.)
Oh...also, if anyone has figured out a way to make the random object generators filter by flag rather than TVAL, please let me know.
NeilStevens: Funny, I've had total control over item generation in E-Team.
ToME Wiki