Making D:1 more interesting for newer players
New players often complain that the early game is boring. While I never felt this way about, say, D:5, I can absolutely see why someone would feel this way about D:1.
People who are new to the game will usually be directed towards strong combos like MiBe. These combos can still be challenging on D:2 and beyond, but tend to make D:1 a trivial chore. If you go to the "Monsters" section of the spreadsheet and sort by NumNonVault, you can see that only 13 monsters are able to generate naturally on D:1. (Goblin, rat, kobold, hobgoblin, bat, frilled lizard, jackal, giant cockroach, dart slug, leopard gecko, ball python, ooze, and gnoll, in descending order of frequency). A D:1 gnoll might be scary to some of these combos, but it's also quite rare, appearing in less than 1/10th of games.
It is possible for the minmay_shallow_snake_nest vault to put an adder on D:1 that is not trapped behind walls, but this is extremely rare. The rest of those vault monsters are not accessible without digging/Shatter/etc.
Furthermore, a ton of items are either outright unable to generate on D:1, or so unlikely to generate on D:1 that they might as well be unable to. These items include books (it takes an average of about 3,000 D:1s per book), staves (about 7,000 D:1s per staff), miscellaneous items (~40,000 D:1s), wands (~1,000 D:1s), manuals (can't appear at all), and numerous specific item subtypes, such as scrolls of torment (~25,000 D:1s). Artefacts are also incredibly rare on D:1, with an average of around 1/5000th of an artefact generating on each D:1.
So we're left with a level that has no monsters that are interesting to the combos new players typically play, none of the artefact items that excite new players, and not even a whole lot of vaults aside from the arrival vault.
This is a problem that has been gradually worsening over DCSS's development, with an increasing number of items being banned from D:1, and especially the removal of post-level-generation monster spawns, which left D:1 unable to generate adders and such. Yeah D:1 is interesting on NaMo or MuCK but if you're playing a good combo then D:1 is an easy level where you never find anything cool.
Therefore, I'd like to make some suggestions to make D:1's monster and item generation less restrictive, in the hopes of making it less boring for the players that aren't playing bad combos.
Let adders and quokkas appear on D:1
Previously, normal games would see these monsters on D:1 occasionally due to post-level-generation spawns. Restoring this would provide some more substantive threats on D:1. They could be as uncommon as gnolls and still be memorable encounters (although I think they should be a bit more common than that).
If you think that adders or quokkas on D:1 would be unfair, another option would be to buff oozes and/or ball pythons, which are currently uncommon D:1 monsters that don't work very well.
Remove the item_level > 2 checks in _try_make_armour_artefact(), _generate_book_item(), _try_make_jewellery_unrandart(), _generate_jewellery_item(), _try_make_weapon_artefact()
This check is why it's so extremely rare to find artefacts on D:1, D:2, and D:3. With it gone, artefacts would still be less common on early levels (artefact frequency increases with depth, not to mention later vaults tend to have more loot), but not so vanishingly rare.
Remove the item_level > 6 check in _generate_book_item() that stops manuals from generating early
I'd argue that manuals are at their most interesting when generated early, if anything. Once again, manuals would still be more common at deeper depths (vaults that explicitly place manuals notwithstanding), but it shouldn't just be impossible to get them early.
Remove the item_level > 7 check in items() that stops misc items from generating early
Wanderers can even start with some of the misc items already! So clearly they aren't that broken to have on D:1.
Remove the chance in items() to turn early books and staves into potions and scrolls
I am really baffled by the decision to keep staves off of D:1, it's not like they're super powerful items. Like manuals, finding books early tends to be more interesting than finding books later.
This check also applies to wands, but for wands it is probably worth keeping, simply because giving the player a wand on D:1 probably makes their game free while also being way less cool than a good weapon/armour/whatever.
Remove the depth_mod < 4 checks in _generate_scroll_item() (and adjust the items' weights downward to compensate)
This is responsible for vulnerability, summoning, acquirement, silence, brand weapon, torment, and holy word being nearly impossible to find on D:1 (and the next few dungeon levels). If scrolls of summoning would be too bad in the hands of early monsters, mark them with ISFLAG_NO_PICKUP as is done for high-tier wands and potions of berserk rage. Restricting the items themselves not only makes early dungeon levels less exciting, it means you should keep track of which level you found an unidentified scroll on (since that tells you its likelihood of being one of the aforementioned scrolls), which is bad.
Adjust weapon subtype selection
This one's more complicated than just removing an item_level check. There is an item level check - an item_level > 6 check in _determine_weapon_subtype() that stops lajatangs, triple crossbows, fustibali, demon weapons, double swords, eveningstars, executioner's axes, quick blades, and triple swords from generating early. But if you look at the objstat, you'll see that it's not just these weapons that are super rare; everything except club, dagger, short sword, whip, spear, mace, hand axe, and hunting sling is near-nonexistent on D:1. Flails and halberds show up occasionally, but only because gnolls are carrying them (look at the OrdNumHeldMons column).
This is the way _determine_weapon_subtype() currently works:
1. If it passes that item_level > 6 check, a 1/30 chance, and another [item level]+6 in 100 chance, it picks a random one of the "rare" weapons listed above.
2. If it didn't do that, there's an [item level]/20 chance of effectively picking from a weighted list of weapons, like is done for potions and scrolls and other items with sane generation mechanisms.
3. If it didn't do that, there's an [item level]/[item level+7] chance of picking a quarterstaff, falchion, long sword, war axe, trident, flail, or rapier, all equally likely.
4. If it didn't do that, it picks a hunting sling, spear, hand axe, mace, dagger, club, whip, or short sword, with daggers being twice as common as the others.
D:1 has an item level of 0, so it hits option 4 every single time. Weapons other than those eight only manage to show up on D:1 because of vaults and monster equipment.
Compare this to _get_random_armour_type(), which generates higher quality armour more often at higher item levels, but still has a small chance of giving you good armour even on D:1. I'd like to see _determine_weapon_subtype() be more like that.
Also, altars
Currently vaults can place altars on D:1, but it's very rare except for Ashenzari, TSO, Nemelex, and Xom altars. And dpeg_arrival_lava_altar and dpeg_arrival_water_altar have the altar hidden in a place that most players probably will not look. It might be worth generating other gods' altars on D:1 more often.
And to prevent power creep...
...one could either slightly decrease the overall quality of items, or slightly reduce the overall quantity of items. Changing _num_items_wanted() in dungeon.cc would be a very easy way to nerf the number of items, though this also changes the ratio of non-vault items to vault items. It is also easy to make a change to _num_items_wanted() that only affects the first few dungeon levels, much like the other changes I am proposing.
If you want to go the route of nerfing item quality instead, there are a lot of x_chance_in_y(X + item_level, Y) calls in all these makeitem.cc functions I've been listing. Nudging the Xes down and the Ys up is pretty easy, and would hit vault loot too.
Other possible complications besides power creep
Allowing better items to generate on D:1 makes startscumming more effective. I am skeptical that startscumming for a scroll of acquirement or whatever would be better than startscumming for, say, crystal plate armour, which you can already do. However, I admit there's potential for startscumming for unrandarts to be an issue. It's possible that those item_level > 2 checks would be appropriate for deciding whether an item can become an unrandart.
A really good item generating arguably makes the game too easy. On the other hand, venom weapons already generate on D:1 and D:2 all the time. A good weapon base type or a +Blink artefact or whatever has the potential to be useful longer than said venom weapon, but item quantity on early levels can be reduced accordingly to avoid giving the players more useful-all-game items overall. (There are already many useful-all-game items that generate on D:1; they just aren't flashy, because they're potions, scrolls, non-artefact jewellery, and throwing nets.)
Any other suggestions?