Preface: I use ‘3e’ as an umbrella term for 3.0, 3.5, 3.PF, and all other 3e clones.
3e was the second edition of D&D that I played, so I know firsthand how much of an improvement it is over what came before. So what’s so great about 3e? Well, 3e cleaned up a lot of the legacy quirks which plagued earlier editions. While some gamers find these quirks charming and nostalgic, I don’t miss them:
To-Hit-Armor-Class-0 (thac0) and Descending AC: Thac0 itself is an improvement on the to-hit charts that came before, but Base Attack Bonus (BAB) is even better! Thac0 means that lower numbers are better (both thac0 and AC), and gamers must sometimes subtract negative numbers. Meanwhile BAB means that higher numbers are better — which is all much more intuitive — and nobody ever has to subtract a negative number. It’s not that BAB is so much easier to use than thac0, but it’s a victimless improvement. Literally nothing is lost in the translation from thac0 to BAB.
Saving Throws: Before Fort, Ref, and Will, there were five save categories: Paralyzation/Poison/Death Magic, Rod/Staff/Wand, Petrification/Polymorph, Breath Weapon, and Spell. (And you’d better remember the order, in case an ambiguous case comes up, like saving against a wand of polymorphing!) Not only are these categories needlessly confusing, the save numbers themselves follow no pattern — they improve by hops and leaps, and depending on your class they might start great and end poorly, or start poorly but end great. Oh, and lower save numbers are better than higher. 3e’s three save categories are much cleaner, intuitive, and easier to use.
Different Ability Tables: Before 3e gave us one unified table for all six abilities, there was a separate table for each ability. Oh, and the bonuses didn’t follow any kind of pattern — a 16 Strength gave you a +1 to damage, but not to your attack roll, while a 15 Dexterity gave you a -1 to AC (remember descending AC?), but not to your missile attack rolls. Some stuff wasn’t even bonuses or penalties — your Strength gave you a percentage chance to bend bars/lift gates. 3e’s one table is much consistent and intuitive.
Different XP Tables: Before 3e’s one unified XP table, each class had a different table and rate of level advancement. This was intended as a balancing factor so that casters didn’t dominate the game so quickly, but it also tied into the whole mistaken ‘Overpowered high XP wizards are okay, because they sucked for the first few thousand XP!’ philosophy. 3e’s one XP table may contribute to its class balance issues, but it was a necessary evolution of game design because it gives game designers a simple balance metric to judge classes by: X levels of one class should equal X levels of any other class.
Racial Level Limits: Believe it or not, humans were the only race that could achieve 20th level in any class, before 3e. (With the odd exception of half-elven bards.) This quirk of earlier editions is meant to explain why the longer-lived races haven’t taken over the world of D&D — ‘longer lifespan = more time for NPCs to level up via practice and study’ being the reasoning. This is the human race’s one and only advantage, both in terms of PCs and NPCs — except that few DMs actually enforced them. (Go ahead, tell Bob his elven mage can’t gain 16th level, or tell Susie that her halfling cleric can’t gain 9th level — them’s the kind o’ fightin’ words that ends friendships!) Though 3e requires different assumptions about NPCs and XP, and requires humans to have actual advantages, the loss of racial level limits is a big leap forward.
Fewer Restrictions: Believe it or not, D&D races and classes had even more restrictions before 3e relaxed them somewhat. No racial ability requirements, no racial class restrictions, no class ability prerequisites, and no highlander druid hierarchies! (There can be only one grand druid?!)
XP-by-HD: Before 3e introduced the concept of CRs, defeated monsters yielded XP based on their HD — which was even cruder and more prone to accidental TPKs. CRs suffer from a lack of clear guidelines, but they’re also a clear improvement on what came before.
Subsystems: Before 3e and the d20 system, there was a different subsystem for every game action. Sometimes rolling high is good, sometimes it’s bad. Sometimes you roll a d20, sometimes a d100, or a few d6s. There’s really no rhyme or reason to pre-3e confusing mess of subsystems, so 3e is a huge improvement.
Dual & Multiclassing: Before 3e’s buffet-style multiclassing, there were two odd subsystems for players who wanted more than one class — dual classing for humans, and multiclassing for everyone else. Dual classing is very limited and onerous, while multiclassing is a single decision the player makes at level 1. 3e’s multiclassing has a couple of serious flaws, but it’s worlds better than what came before.
Healbot Clerics: Before 3e introduced spontaneous cure spells, clerics had to prepare all their healing spells. Which of course tends to result in clerics who prepare nothing but cures, because thanks to random loot tables and 2e’s disdain for abominations like ‘the magic shoppe syndrome,’ you can’t rely on healing items. And oh, you die at 0 hit points, so good luck when your fighter’s at single digits and you’re out of heals because you prepared dispel magic today! 4e finally rid D&D of healbots for good, but 3e took the first step.
These include buffet style multiclassing, level adjustments, iterative attacks, spontaneous cure spells, skills, feats, wealth-by-level guidelines, item crafting. Wealth-by-Level
3.x also deserves a few honorable mentions; while not part of the game’s fundamental rules, they were an overall positive impacts. The Open Gaming License allows anyone with a creative idea to get it onto the D&D market, and have a shot at a piece of the D&D pie. Lots of these third party products are crap of course, but there are some gems out there. Eberron was born out of taking the 3.x rules to their logical conclusion within a fantasy world, and spawned two races that became instant favorites for many players. (Changelings and warforged.)