Sunday, March 29, 2009

Barnett and Kaplan at GDC 2009

I find it kind of telling that at the Game Developers Conference this year in San Francisco, the lead designers for both Warhammer:AoR and WoW gave extremely different lectures. Paul Barnett, famous for his showmanship, gave a typically flashy speech with off-the-wall jokes ("we need more elephants") and non sequiturs ("draw a Q on your forehead") that didn't have anything to do with the advertised topic of his lecture. Some people find his manic and seemingly aimless energy inspiring I guess, because his speeches seemed to be the bulk of the early marketing Mythic used for WAR during development. People gathered around his grand ideas of what was wrong with MMO gaming in general and what he was going to do to fix it. About his biggest specific point at the conference seemed to be that mobile devices were the future of gaming. Oh that's a nice thought, Mr. Barnett. So how exactly do you see that breaking down? Any examples? Will you personally be cashing in on this great insight?

Jeff Kaplan (Tigole) on the other hand, stuck to his topic, had an agenda, and broke his topic down into quantifiable specifics. Some examples:
  • Combat should be about a minute long
  • Stranglethorn pages questline is a bad idea due to inventory limitations
  • Random drop quests should use incremental probabilities to even out streaks
People have talked ad nauseum about the "polish" that sets Blizzard games apart. And sometimes I fear that in the minds of the average person, game "polish" is like literal polish where the product is done and then if you spend just a few more minutes on it at the end you can make it much better. Polish in software design is nothing like that. Most of the "polish" in large software projects takes place in the design stage, before the coders touch pen to paper. Once you're into development it becomes increasingly difficult to look at the product as it's shaping up and say, "this feature isn't quite working for us. Let's try something else." That's what causes over-budget projects, blown deadlines, and producers that rush to ship something that doesn't quite work. It's not that the development team failed to spend enough time at the end. It's that they failed to make good design decisions up front when they're supposed to be made. It takes a lot of brilliant people to do that. It takes a good nuts-and-bolts understanding of game design issues and the ability to make hard, specific decisions about all sorts of nitty gritty things that seem like unimportant details. It's not about glamorous, sweeping statements about "making the game fun" like I associate with Barnett. It's the ability to intelligently lay out specific pros and cons of design details like I associate with Kaplan.

Kaplan is now working on Blizzard's next-generation MMO, funded no doubt by the astronomical profits of WoW. Barnett, I'm sure pretty is fighting to keep WAR in the black. Kaplan's next game I will no doubt be spending money to play. Barnett's next game I'll be downloading his marketing speeches on for entertainment value.

Monday, March 23, 2009

The problem with mana

Mana creates a game mechanic where players must make choices. They bargain with the game using a kind of currency. You can save up and splurge later, or blow your wad now, investing in the hope that your debts won't catch up to you. For healers, this kind of bargaining makes a lot of sense. Healers are in the business of risk management. Our heals mitigate risk of player deaths and wipes. But the more healing we throw into the encounter, the less value each additional heal has. At a point, the group will be so saturated with heals that throwing more would have little to no benefit. So there are two competing forces: the need to heal and the need to not exhaust our mana. As we heal more and more, the value of additional healing declines, and the need to conserve mana balances it out. An equilibrium is reached, and the player's skill is in finding and maintaining that equilibrium. Or at least so it should be. In the current WoW content, healer's rarely exhaust their mana. And Blizzard is making changes to the speed at which mana regenerates to try and re-introduce this equilibrium and aspect of player skill into the healing game.

But none of this really makes sense for damage dealers, who convert their mana into offensive spells. For a DPS class, adding more DPS always has value. In most cases, the value never even changes. DPS is DPS is DPS. So there's never any equilibrium point at which it makes sense to conserve mana. No interesting choices are presented to the player. They simply run out of mana when they run out and then they get to sit there and wait. Most classes have abilities that return mana that are on longish cooldowns that players need to use at times they decide are most useful.

It occurs to me that the current model of DPS mana as a resource in WoW is a little like auto racing. Mana is the fuel. I don't actually know too much about F1 racing, but it seems like there isn't really a concept of conserving fuel. More speed is always better. The decisions that a driver makes as it relates to fuel seem to mostly be when to take pitstops. Drivers try not to force themselves into taking pitstops at critical points in the race, or when they would not get the full benefit of the pitstop. DPS mana classes, especially mages, are much like that. You have a series of mana-returning cooldowns and you have to pick the best time to use them.

But it's not really a very fun model, any more than watching pitstops during F1 races are fun for fans. It seems a more interesting model is the 'fuel' used by a cyclist or runner. Here there is a concept of conservation, because the human body can burst out extra effort but only for a short time, and doing so exhausts you. So you use your periods of burst wisely, and if they have reserves of energy available, you generally see athletes go into 'burn mode' as they approach the finish line. Periods of burst are more interesting and fun than periods of stopping to recover.

This was actually the basic design of the arcane mage during TBC. They could choose to do more damage but only by spending an inordinately greater amount of mana. They couldn't sustain their high-damage mode for very long. This kind of mechanic is interesting but leads to a few problems. Burst damage is hard to balance in PVP, especially if certain classes have better burst capability. Blizzard balanced the arcane mage by having the burst mode require an uninterrupted series of casts to 'ramp up,' something that is not practical to try in PVP. Also, because of innervate, groups could use a brigade of druids to arrange to keep one mage in constant burn mode, something that is very much contrary to the current raid make-up philosophy. Apparently Blizzard decided it wasn't worth trying to balance it because they heavily nerfed the arcane mage's 'burn' mechanic for WotLK, although they've done a pretty good job of preserving the flavour of it.

Of course, there are other ways to make mana conservation a strategic choice. For example, DPS can have different values at different times. In any multi-phase or multi-mob fight it often pays to pump out more damage at one time or another. The simplest and most common example is bosses that have a "soft enrage" at low health. If the last 10% of the fight is the most dangerous, the DPS should make sure that they have enough mana to blow through it without slowing down, even if it means they need to hold back a bit before then. But for damage dealers though, it's never a fun game choice to 'hold back'. Damage is what they're there to do, and doing less than the most possible is not a fun choice to make, even if it's the right one. So even though the fight might favour burst damage during part of it, mana conservation never really comes into play.

Other options are to give the player other things they can "purchase" with their "currency". The warlock design is good example of this. They can buy mana at the cost of health. So for them mana is essentially a currency they can spend on damage or survivability. This works especially well in PVP where the choice can be very difficult. In most PVE encounters though, it's rarely a real choice. You give up health for mana when you need the mana. You could try to extend that mechanic by having very costly shields that a player could choose to use to, trading damage for survivability. Mages already have this with Mana Shield. And I'll bet no mage ever uses it outside of extreme cases like being focused by Fel Rage in the Bloodboil fight.

Another method is to have the currency be more like an allowance than a fixed starting amount. If players only get so much mana per second, they can choose to spend it in different ways or save it up for later. This is basically the design of "mana" for melee classes who gain resources (energy, rage, or runic power) at much faster rates than mana-users and make decisions constantly about how best to spend it. But I think Blizzard wants to preserve the distinction of the caster classes resource system. They have a "full tank of fuel" at the start of the fight and have to choose how to use it best without running out. I think the arcane mage has been the best attempt at it so far. I would take that idea and run with it. Give every caster a 'burn mode' so that you don't unbalance things by having certain classes excel at shorter fights or burst damage. They don't have to be the exact same thing. Here are some ideas for ways to extend the idea of the 'burn' mechanic that should not overly unbalance PVP:

Mana Blast - 60% base mana - fires a beam of pure mana at the target which ignites after 6 seconds for 3600 damage. Caster must channel the spell without interruption.

A mage mana dump. To balance this, Icy Veins or shields should not count as preventing "interruption". This makes it about as unusable in PVP as pyro without the PoM, especially if the beam is really obvious (which would be cool for PVE.)

Angel of Death - 150% base mana - 3 second cast - You become an angel of death, dealing 50% additional damage to targets below 35% health. Lasts for 60 seconds. Can only be cast in combat.

Here's one for the Shadow Priest. No real PVP application but handy for getting rid of excess mana at the end of a fight. Give it a dark, sinister version of the Angel of Redemption graphic!

Owlkin Rage - Your Moonfire spell increases your haste by 5% when used against targets with less than 50% health. Stacks up to 10 times. Lasts 60 seconds.

Who doesn't love Moonfire spam? It's already kind of a mana dump. It just doesn't do enough damage to ever be worth it. The idea here is to make it a useful ramp-up to doing some serious Starfire spam. It just costs a lot of time and mana to get it up to that point. It's kind of a moonkin version of the old Arcane mana dump. It might not even need the target health limitation to make unusable in PVP.

Totemic Detonation - 100% base mana - Targets one of your totems for detonation. After 15 seconds your totem deals 5000 damage to your current target in Fire, Frost, Nature, or Arcane damage as appropriate to the totem's school.

One for the elemental shaman. I like the idea of setting your own totems alight with sparks and fire. Since totems are trivially easy to kill, and the graphic should be really obvious (and cool!) there's almost no reason to try this in PVP. (Should probably be unusable on Stoneclaw Totem.)

Note that the warlock can't really have a mana dump due to how their resource system works. They already have a working mana model though and don't need any help. I think these all sound pretty fun and would make mana an interesting resource to manage, provided fights are neither too short nor too long. You could burst out mana during critical stages in the fight, which a lot of cases would just be the home stretch. Like a great marathon finish, you'd come sprinting to the finish line, and if you timed it right, be literally exhausted of all your energy when the fight is won.

Tuesday, March 17, 2009

Will WoW ever patch faster?

Let's take a look at WoW's major content patch schedule over the past little while, shall we?

DateTime betweenPatchContent
2006/12/053.5mo2.0TBC Content: Karazhan, Mag, Gruuls, SSC, TK, MH
2007/9/254mo2.2Voice comm
2008/10/146.5mo3.0WotLK Content: Naxx, OS, EoE

It would probably be fair to remove patch 2.2, which didn't really add new content and count the full 5-and-a-half months from 2.1 until 2.3 as one wait period. It seems terribly quaint now to look back in vanilla WoW and remember people posting tickers on websites to show how long it had been since the last patch when we had to sometimes wait for ungodly amounts of time like THREE MONTHS. Blizzard seems to have pretty much settled into a pattern of 6 months between content patches.

WoW is a huge piece of software, and the code is terribly old as software goes, having been in development for something like 5 years before it shipped. The oldest portions of its codebase could have been written as long ago as 10 years. Old, huge software projects have a lot of things going against them:
  • Incredibly difficult to change something without inadvertently breaking something else
  • Impossible to maintain all the original coders for everything--people maintaining code have to really on documentation and deduction to understand the code
  • Some features simply can't be built without overhauling sections of old code that could not have anticipated future needs
  • Quality Assurance and deployment procedures take more time than the actual development (Don't think that this is what the PTRs are for, either. The PTR effort is a mere fraction of the total QA effort.)

MMOs are doubly difficult because the software is always live. You can never take it offline to do proper load testing or overhauls. You have to work on the fly, continually branching the code for each new feature so you don't accidentally push half-finished pieces of a new feature into the live code. All the branching and merging has to be done very carefully and it all takes an enormous amount of time.

Unlike most people, you will never hear me criticize Blizzard's ability to write and maintain software. Most of the habitual complainers really have no idea how difficult it is to maintain a piece of software the shape and size of WoW. The crap we have to put up with ourselves is but the tiniest tip of the iceberg of crap that gets filtered out by the devs and QA team. The simple fact of the matter is that WoW patches will get harder and harder to produce. Sure, I think Blizzard is telling the truth when they say they are improving their ability to patch faster. Like the Red Queen, they need to be getting faster and faster just in order to maintain the speed they were going during 2.x and keep patches coming out every 6 months.

They also said that they had a pretty good idea exactly what the patches would be for 3.x, that they did not like the long waits in 2.x and were going to spread the content out more evenly. This did not mean content would come faster, but just that they would pace it more evenly. In 2.x, 2-and-a-half entire tiers were 'ready' at launch, even though they required extensive fixing and balancing, and in one case (Solarian) a complete reworking in order to be really done. Then nearly a year-and-a-half elapsed with only 6 new progression bosses added. This time around, I'm pretty sure a great deal of the Ulduar dev work was complete by the time WotLK launched and it was deliberate held back for 3.1.

I think they decided that part of the problem with so few guilds getting to see Naxx 1.0 and Sunwell were that slower guilds were much slower than faster guilds. You could only clear content as fast as your raid was capable of going. And getting to the next tier relied on jumping through several incredibly ridiculous attunement hoops. There were no shortcuts. So guilds that approached it with extreme professionalism could get there much faster than your average "casual hardcore" raiding guild. By spacing out content patches and making them the only bottle-neck (any guild should be easily capable of being adequately geared for Ulduar by the time it arrives) then everyone that really wants to will be able to step into Icecrown and see the great Lich king Arthas. The guilds that mop up the content way before everyone else will be able to work on all the raid achievements while they wait for everyone else to catch up.

I see things probably shaking down about like this:

DateTime betweenPatchContent
2008/10/146.5mo3.0WotLK Content: Naxx, OS, EoE
2009/10/156mo3.2Some side content with maybe part of tier 9
2010/10/156mo4.0Next expansion

See you in 2010.

Sunday, March 15, 2009

Dual specs part 2

How do you plan on using the dual spec feature once patch 3.1 hits? In a previous post I talked about some of the arguments for and against the feature, and talked a little bit about how I planned to use it. Basically, I generally plan to make my characters' second specs only small variations on their primary specs. I can think of a lot of different ways people will likely make use of the feature though.


Probably the most obvious idea, and no doubt one of the reasons for the feature's very inception, is speccing for both PVE and PVP. This allows you to share in both halves of the game whenever you want, without having to worry about respec costs. Towards the end of TBC when PVE was winding down, a lot of people were doing this because they were bored with PVE and tried some PVP on the side. Some people spent boatloads of gold weekly in so doing. I think Blizzard wanted to make it easier to spend more time in the game doing different things, especially when content patches become further and further apart as they are.

Raiding vs soloing

This one is for the healers and tanks, and is also one of the most obvious uses of dual specs. Healers and tanks have traditionally complained about soloing and grinding slower than their DPS counterparts. Blizzard's answer seems to have been to make soloing and grinding easier and easier, with more and more daily quests that involve no combat at all. Matticus recently had an entire post about dailies like this for healers. There's about 20 of them on WotLK! I think they've gone a long way to making soloing easier on non-DPS classes already, but this'll be handy for a lot of people.

Single-target vs AOE

A lot of people have mentioned something like this. This is one of the only options that might occur to a pure DPS class that really just plays PVE. One spec could be built for maximum DPS on bosses, and one for trash, or whatever multi-target encounters might show up in Ulduar or beyond.

This idea isn't limited to DPS though. Shortly after the feature was announced I speculated on the idea of a boss-tanking spec and an AoE-tanking spec. That would be handy for Sartharion add tanks. Death Knights are especially interesting here since they can have two tanking specs in entirely different trees for different purposes. Along the same line, healers could also have a tank-healing spec and raid-healing spec. Glyph choices in particular would figure in prominently with this type of speccing.

Utility specs

This is one that I can see coming up a lot. Things like having warriors on Malygos bring Improved Spell Reflection or needing extra Divine Guardian paladins for heavy damage phases like Sartharion + 3 drakes. Classes that can move some of these special use abilities into a slightly suboptimal second spec will enjoy an advantage by not having to nerf themselves on every boss just for a little raid utility on one of them.

Specific vs General Purpose

This is kind of a general strategy that rolls all the previous ideas into one. I think a lot of people will have one no-nonsense spec built to do one thing very well, be it progression PVE or arena play. Their second spec could be a catch-all of useful things for a variety of situations. For example, my resto druid might have a straight tree spec for PVE and an alternate healing spec that has a few PVP talents for battlegrounds, a few DPS talents for soloing, and a few odd talent choices that might be effective at single-target healing, something I rarely do but sometimes simply have to (e.g. Patchwerk).

Testing new specs

This will be a handy tool to have for people that like to experiment with different specs or constantly tweak. If you want to try something a little wacky on one of the easier bosses you can, knowing that you can easily switch back into your comfort zone for the harder bosses if you think your latest experiment needs to go back to drawing board.

Are purebreds getting the shaft?

A lot of people have argued that in PVE dual spec proffers a competitive advantage to the 6 hybrid classes that can spec for completely different roles, as opposed to the 4 pure classes (mage, hunter, warlock, rogue). At first this seems reasonable. But clearly there are benefits to dual spec for pure DPS classes as listed above. In fact, hybrids will find it much harder to use their second spec for personal reasons since they have more ways they can benefit their guild in PVE. E.g. A mage will find it a lot easier to dual spec as PVP than a moonkin will. In fact, Rohan argues that the big losers in a dual spec world will be hybrids that primarily DPS since they will be pressured to take a dual spec that can PVE tank or heal.

I don't think either of these concerns are that big of a deal. I'm not sure what purebreds think is going to happen that will cause them to lose a raid spot to a hybrid. Obviously it will be nice to have extra healers for certain fights. One of the examples people often cite is Sunwell where the optimal number of healers could swing from 5-6 on M'uru to 9-10 on Eredar Twins. So let's say as an extreme we need to swing our raid makeups by 2 healers in either direction. If you bring 7 healers normally, you'd want 2 of them to be willing to spec DPS (obviously not a problem) and 2 DPSers willing to spec healing. If your raid doesn't already have at least 2 hybrid DPS classes that can heal in similar gear (shadow priests, elemental shamans, balance druids) then I would point out that hybrids are already statistically underrepresented in your raid and they could use a little competitive advantage. The point is no one's going to bump out a purebred DPS because they want a raid makeup that can switch to 10 tanks and 15 healers because no fight will ever favour such extreme make-ups.

A related concern is that hybrids will be rolling on more loot because they can use it 'one of' their specs. Obviously this will be a matter for guild and raid leaders to decide, but I'm pretty certain there won't be any changes to the way this is customarily done now. Guilds give preference to loot to a player's main raiding spec and PUGs give preference to a player's spec at the time of the raid. The fact that hybrids can make use of off-spec gear a little more easily than they could before won't change that.

Saturday, March 7, 2009

The new lifebloom

Recently in the testing platform for new WoW patches, a major change was made to Lifebloom. This has been a troubled spell since it's inception in The Burning Crusade, an attempt to create a very different type of spell that would make druid healing unique. What makes it unique is that it can stack up to 3 times, and provided you can refresh it before it falls off, it continues to tick at triple power, for a fraction of the price. It's a really cool idea but the stacking aspect made it so potentially powerful in the hands of skilled druids that it was nerfed several times since then. Even right up to 3.0 and a final truly killing nerf, it was still druids main heal, able to be rolled on 3-4 tanks to produce a tremendous amount of pure healing per second.

The change note that appeared on the testing realm was:
Lifebloom: Mana cost of all ranks doubled. When Lifebloom blooms or is dispelled, it now refunds half the base mana cost of the spell per application of Lifebloom, and the heal effect is multiplied by the number of applications.
Naturally the druid community was immediately up in arms about touching a spell so sacred and iconic of the resto druid class. I wasn't so concerned because like I say, 3.0 put a nail in its coffin by making it heal for much less than before. It seemed to be the only way Blizzard could think of to make it so it wasn't so powerful when stacked 3 times. A single stack was worthless, and even rolling a triple stack was only really useful in specific situations. Most druids were using it far less than before. But when mana becomes much more scarce in 3.1, lifebloom stacking would begin to look attractive again, because its so incredibly efficient. Rivven can keep a stack going while gaining mana. I haven't tried but I suspect I could keep 2 or 3 up while still breaking even. Each stack is about 1400 healing every second and we have plenty of time to cast other heals on top of those stacks.

So Blizzard has decided to try something completely different. By making it refund mana for only the first 3 applications, it's essentially putting a tax on druids who try to maintain a triple stack. This is the part that got druids upset because it appears to hit us in our bread and butter. Rolling stacks is what defines us.

But few people stopped to talk about the other big change here: the bloom. No one ever thinks about the bloom, because the bloom is... failure. The bloom means your timing was off and you let the stack die. The bloom is the joke of a consolation prize. Except now the bloom stacks as well. So if a double stack falls off it gets a double bloom. And a triple stack causes a triple bloom. A single bloom is upwards of 3k healing, which can crit for closer to 5k. A triple bloom becomes a formidable heal, about as large as any heal a druid has. And Blizzard pointed this out to the crowd of booing druids, saying now you can make the choice of letting the stack bloom. Not all is lost.

Which seemed like a joke to some. What good is a big heal if you have to predict it 10 seconds in the future? But I think what Blizzard is trying to do is make the bloom a useful decision you make. Each time a lifebloom is about to expire, a druid could now look at the tank health and just as they're about to refresh it, if the tank suddenly takes a drop in health, they could do the unthinkable: nothing. Letting the stack bloom would be an immediate heal, just when its needed. The cost of refreshing the stack is relatively minor if you continue to let it bloom whenever the tank could use it. In fact it becomes more expensive to keep it going now. It seems like the ideal situation is to cast it and refresh it only if the tank is topped up, hoping to let it bloom after about 3 applications, give or take. I posted some numbers I came up with on elitistjerks to try and get a handle on it, if anyone is interested in specifics.

I think it's an interesting design change. It's understandable that people get upset when a core ability is nerfed. But in this case it's hard to call it a nerf, because it's really changing the spell completely. I expect the numbers will be tweaked shortly anyways, so rather than worry about the exact healing per second or healing per mana, I think a more interesting question is this. Which takes more skill? Keeping multiple stacks going or accurately deciding when to let a stack expire? Whether it's a nerf or not it's still a unique and interesting type of heal that defines the druid.

P.S. The graphic above is taken from a great comic from Smoosh that gives you an idea where Lifebloom was before all the nerfs.

Tuesday, March 3, 2009

UI Layout Part 2

Screenshots as promised of my UI redesign over the weekend. I quite liked it during our excellent but unsuccessful 3 drake attempt. For comparison, here is the UI I had last week:

It's ok but there is a lot of wasted space that I was able to clean up. Here's how it looks now in combat:

And here's how it looks out of combat:

You can see how much space around my character has been cleared up while still retaining as much information as before. I'd like to tweak my scrolling text a but too now as well. I'm also trying out GhostPulse to give me better cooldown notification. I didn't get much chance to configure it but it works pretty nice out of the box.

The mods used are all pretty standard. If anyone's curious, here's the list:
  • Satrina's Buff Frames
  • oRA
  • Grid + various plugins
  • Bartender
  • Pitbull
  • Recount
  • Fubar
  • Quartz
  • Deadly Boss Mods
  • Mik's Scrolling Battle Text

Only SBF is a little unusual, and it's one I recommend trying if you haven't.

All in all, it's not a gorgeous piece of art like some people's UI. I aim for functionality over visual fluff. But I'm always looking for new stuff to try. If you have any suggestions for improvements, lemme know.

Sunday, March 1, 2009

UI Layout

Every now and again, I get the urge to rethink the UI I use for WoW. I do this partly because I take the UI pretty seriously, and partly because I find tweaking the UI a lot of fun. It's like a whole little mini-game inside the game! WoW UI designers have a lot going for them. Like with most all Blizzard games, WoW features a very good API for introducing new features. And since there is such a ridiculously large player base, there are a lot of people out there producing UI mods and libraries to use. You can combine, and configure and even modify other peoples work to produce exactly what you personally like.

Initially when the collection of UI mods available was less extensive, I would find things that were similar to what I wanted and then crack open the scripts and edit them to my taste. I was able to get some pretty cool functionality very early before it became a standard part of most any UI nowadays, like player frames that smoothly changed color as health dropped, or spell school indications on the scrolling combat text. But hand-rolling scripts is pretty unnecessary now, and it's a lot of work to try and maintain your scripts through all the patches. Now I just gravitate towards very good mods that feature tons of configuration options as a raw base to work off of. Mods like Pitbull, Grid, and Satrina's Buff Frames are good examples.

My current UI layout is the product of lots of tweaks and trial and error. I've basically followed these principles:
  • make sure your character and immediate surroundings are always clear and in focus
  • put more important UI elements nearer the center of the screen
  • as much as possible, have one consistent UI that works for all characters and all roles
  • keep the screen clean and have elements disappear when they have no immediate value

I've spent a lot of time on keybinds and on finding good mods that meet my needs. But I realize that my basic layout could also use a bit of work. So I decided to really sit down and analyze how the UI is laid out on the screen. First I looked at my first principle: keep your character and surroundings clear. I created a mock-up of the screen showing about where the character would be and then tried to decide exactly where the most important parts of his 'surroundings' were.

Here I've decided that you want to see out in front and to the sides of your character. Whats behind you is not really important, so long as you can see your feet clearly. Remembering that my zoom level can vary a lot, I tried to give some play to the bottom so that where my 'feet' are could vary.

Next I took the second principle: place important elements near the center of the screen. I laid out all the basic elements that I have in my layout using nondescript boxes that I could move around just like a floor plan. I needed a lot more boxes to get everything than I would've imagined when I started! I didn't even try to get things like combat text, extra action bars, or status bars, and it still took 24 boxes to layout the basic elements. I tried to let the color and thickness of the outlines indicate the relative importance of each box. The layout below is the one I am currently using.

Looking at this I realize I've followed a few conventions that people have just gotten used to that don't make much sense. My combat log still sits where it is by default, taking up a lot of space even though I rarely look at it. I have Recount and various log analysis tools for that. I still need to see it, but I could make it a lot smaller. Castbars sit under the frame of the player they're attached to, just as they are in all player frame mods by default. However, they're a little hard to see since they are pushed right up against the target frames, and because I need to make them pretty thin to squeeze them in. These are way more important than I've given them credit my their placement.

What's going on over on the left is a bit of a problem too. The raid frames overlap the pet bars and target debuffs. The reason for this is that only my healer needs raid frames in this central position. And healers can't have pets and don't put debuffs up... except when they do. Sometimes I throw in a bit of DPS while healing and it's annoying not being able to see how long I have on moonfire or faerie fire. And in WotLK vehicles abound, which use the pet frames. So for example in Malygos phase 3, I can't see or target my dragon. I actually have to quickly grab and move my raid frames out of the way at the end of phase 2 to do so. I realize that my healer is going to need raid frames in a more prominent place than other characters, but I wanted a more elegant approach. So I tried to think of what elements would be more important to a non-healer that should take this real estate. There are two such elements: target debuffs and threat meters. Both tanks and DPS characters need to keep a constant eye on these, whereas healers only need to glance at them occasionally. So I should layout these in such a way that I can swap them. This is my only concession to my third principle: keep the UI consistent for all characters. Everything else is generic enough that it has about the same importance to all characters.

The area marked "important cooldowns" is actually a combination of Bartender and Satrina's Buff Frames that show the most important cooldowns and buff timers. It actually takes up more space than this since it can grow, but I realize that it is not laid out very efficiently and wastes some of the space at the bottom that isn't really used.

Debuffs I've placed right beside my character because I wanted them to be prominent. However in practice I hardly notice them and I think it's because the area I'm usually focused on is to the left and below my character, and these are on the opposite side. So i decided to move these over and make them grow upwards so I would be more likely to spot them as they appear. I'd even like to improve on this and make new debuffs pulse or flash or something, but I don't know of any mod that can do that. Any suggestions?

Moving blocks around my little example layout like this made me realize why a lot of people tend towards what I call a letterbox layout where they black out the entire bottom or top of the screen and fill the area with UI elements. Once you have a lot of blocks you want to fit efficiently in to a small space you start to tile them out. However I don't like the letterbox style because it violates my fourth principle: free up space when you don't need it. When I enter or leave combat, or join or leave a raid, I have various UI elements appear or disappear as I need and free up space to see the game world. I like it like this so I have tried to tile my UI elements out but leave it so they can fade out or disappear and still look decent. The finished product does look kind of letterboxy, but while just hanging out in Dalaran, nearly all those boxes disappear or fade out to leave the game world visible.

So here's what I ended up with.

It's not a huge change. Like I say, my UI has gone through a lot of iterations so what I have I basically like. But there were a lot of tweaks made to try and improve it. By laying out the elements directly below my character a bit better I was able to free up just a bit more valuable space directly below my character's feet. I was able to get more stuff out of the way up top to get a clearer view into the distance. I've given castbars prime real estate. It should be much more recognizable when a boss starts a cast. I may even put focus target castbars up there somewhere if I find I need them.

When I actually tried to put the layout into effect, I found that by clearing up some space, I was even able to make important elements a little larger, or put a little more information on than I had before.

Next I'll try it out and see how I like it and if I need to tweak it bit. Then I'll get some screenshots up to see how the entire design process plays out.