Patch 9.0.2, Mac Support, Classic - Naxx Attunement, Curseforge Read Only Update

Engineer’s Workshop: Enhancing Character Customization
Originally Posted by Blizzard (Blue Tracker / Official Forums)
Now that we’re less than a week away from the release of Shadowlands, we hope you’ve had a chance to play around on the pre-patch and glow up your characters with the new character customization options! While you were fiddling with new hair styles and eye colors, you may have wondered what it takes to overhaul a major system that has been progressively expanded upon with every expansion; so stay a while, and read about how we helped bring these new options to life!

A Little History
When World of Warcraft originally shipped, it was our utmost priority to make the game playable for as many people as possible. To do this, the minimum specifications had to be optimized so a wide variety of hardware could run the game. As such, compromises had to be made. Should individual fingers be added to characters’ hands when it could impact frame rates, or should that processing power be directed at a gameplay feature instead? Since our launch in 2004, those concerns have faded due to performance increases in each generation’s hardware, offering us a chance to explore new ideas and upgrades.

So, what did we change and how were the early characters built? Originally, the data model was relatively straightforward, but as time went on—and new features were added—the strain started to show. Per race and gender, only five features could be customized (later expanded to eight in bLegion), but what does one do when you've already used all five? How would someone create Demon Hunter NPCs prior to Legion, when Night Elves already used all five slots? Designers clearly had a flash of inspiration when they used the item system to effectively add another feature; since shirts come first in the "paste hierarchy," they could make it appear like there were tattoos by adding alpha and transparency to the whole shirt, minus the tattoo parts. Clever!

Systems, Gameplay and Data Layout
The technical gymnastics discussed above are not what we want to go through every time a developer wants to create something special. So, we gathered such lessons from expansions past, and knew that we ultimately wanted an unbounded amount of customizations, where each feature would be separated from the rest (such as eyes, face, beard or moustache), rather than locked to five generic slots. We wanted it to be easier to maintain, and we didn't want to duplicate large swathes of data (see our "spreadsheet" style editor below, where every cell is a face variant crossed with a skin color choice). Most of all, we wanted to reduce the overall load on artists creating assets and designers hooking them up.

Pictured: The old customization editor used prior to Shadowlands pre-patch.

To start off, we took a loose affiliation of database tables, where each record held monumental amounts of information, and split the whole thing into smaller, more logical data groupings. In turn, this allowed us to part ways with the spreadsheet editing and create a series of custom and auto-generated editors that would look very similar to what would be eventually shown to the player in game. In the end, the new data layout allowed all the flexibility we need, as well as offered us opportunities for cool new customizations that weren’t possible before, such as allowing Worgen and Gilnean forms to be changed independently.

With our asset pools and new editing experience adding new choices is now more straight-forward!

Finally, as we had totally overhauled the data and gameplay elements, we also needed to be prepared for all of the players logging in on day one with the old data, and make their characters look the same as they did before pre-patch (not to mention tens of thousands of NPCs). We created a silent conversion process with almost 9,000 rules to take care of this, which takes into account things like the Human beard option now being split into beard, mustache, and sideburns. The automation team built a tool that could compare before and after screenshots en masse, for QA to quickly identify any mismatches. If all went well, our players could log in on pre-patch day and hopefully not notice that anything happened at all to their beloved characters!

Rebuilding the Engine
To facilitate the new customization options, a complete overhaul of the engine was required. In the past, each unique set of customization options required its own texture, and choosing different options would change which unique texture was used for a given character. The number of new Shadowlands character options has sent the permutation count into the range of millions, so we wrote a brand-new character system to procedurally generate player textures on the fly.

Among other changes, all texture processing code was rewritten from scratch using SIMD (Single Instruction Multiple Data) extensions and a system built for managing shared resources between characters that use the same textures. These changes maximize processor utilization and helps us avoid performing duplicate texture work for intensive scenes. In tandem with the new database layout, this allowed us to create a lightning-fast, 100 percent data-driven system, moving away from manually set up database tables. Here’s a GIF of what happens in the engine when it receives a request to build an orc.

Intermediate textures are generated while using a greyscale texture and a mask to generate a procedurally colorized tattoo.

A screenshot from an early prototype, showing textures used and their inputs and outputs.

User Interface and Animations
With the increased number of customization options, the user interface had to be completely rewritten from scratch for Shadowlands. The new system allows designers to create and categorize as many customization options as they want, without any need for reengineering the underlying code or systems to support it. Each option can also have as many choices as we want, and designers can choose to display each choice using a custom name, up to two color swatches or with just a number. A lot of work also went into making the whole experience much more responsive to player input, allowing choices to be viewed as the player hovered their mouse over them rather than having to click on each one to view it. The entire customization UI is now also shared between character creation and the Barber Shop.

We also rewrote the entire race and class selection screen, which now allows our outstanding designers and artists to add custom animations and effects. Because we are in the creation screen, the main game systems aren't running yet, so this required an extensive refactor. In the new system, the artists and designers have full control over which animations and effects play for every single race, class, and gender combination, and can make changes as needed.

We hope you enjoyed the glimpse behind-the-scenes of character customization as much as we've been enjoying the creative looks emerging from these changes! Stay stylish, Azeroth!
This article was originally published in forum thread: Engineer's Workshop - Enhancing Character Customization started by chaud View original post
Comments 24 Comments
  1. kaintk's Avatar
    damn, WoW really need to go for a wow2 rebuild with a better engine and more customizable... the actual system is so old and hard to play with

    - - - Updated - - -

    Quote Originally Posted by Easo View Post
    Imagine getting stuck in doors. I guarantee it.
    Boob slider or nothing.

    well , they could go from tauren to gnome for heigh customization purpose , so no problem being stuck anywhere
  1. aeuhe4yxzhds's Avatar
    Quote Originally Posted by Easo View Post
    Imagine getting stuck in doors. I guarantee it.
    Boob slider or nothing.
    Yeah.... we did imagine it all the way in vanilla.
  1. Sinaa's Avatar
    Quote Originally Posted by aeuhe4yxzhds View Post
    Yeah.... we did imagine it all the way in vanilla.
    WoW2 is a terrible idea.
  1. Zephire's Avatar
    Quote Originally Posted by WowIsDead64 View Post
    So hard work, that even I can do it.

    If they have procedural texture generation, then where is my armor dyeing?
    Sure. However, they have so much more to work on and have to prioritize them accordingly. I've done a lot of "system upgrades" where I work and the amount of resources needed for a smooth transition is pretty big. Can't even imagine the resources required for something as large, complex and old as WoW. I mean, they CAN do ANYTHING but have quality bars and priorities to follow while also following company guidelines.

    I'm just happy they start putting focus on customization. It's a huge part of a game nowadays. Some things that would be really cool to customize would be:
    - Emote/dance
    - Armour colours
    - Character height (which they have already with different toys)
    - Body shape

    Kep in mind though that it has to be done "right". We don't want them to have to re-do it again, later, just to be able to introduce say body shape. They got to be smart about it and who knows how complicated it becomes due to how old the game is.

    What's nice about customization is that it almost never has to be balanced and can be added without regard of tuning. I think we have a bright future to look forward to More options will come now and then for sure! And maybe large overhauls like the described above would be plausable every expansion at least.

Site Navigation