Jump to content
FORUMS
Stan

Dev Watercooler: WoW Classic Development

Recommended Posts

dzwWlAu.jpg

Blizzard released a new Dev Watercooler today with information about the ongoing WoW: Classic development. Classic servers will run on Patch 1.12: Drums of War, because it represents the most complete version of the classic experience. Devs are hard at work to make the modern client compatible with the classic data.

Blizzard LogoBlizzard (Source)

Greetings! Development of World of Warcraft Classic is underway, and we’re very excited to share some of the challenges and solutions we’re working on. As we mentioned last BlizzCon, the process of restoring the classic game is not straightforward, and it’s important to us to take the time and effort to get it right—this includes poring over numerous game versions, data, and code; meticulously scrutinizing all the changes we’ve made over the years. Rest assured: The WoW Classic team is hard at work making it a reality, and we’re at a point in development where we’re ready to share some of the things we’ve been working on.

WOW CLASSIC: FIRST PROTOTYPE

The first—and among the most important—decision we had to make was which version of the game to focus on. As many of you have noted, the classic period was two years long and full of changes. Core features like Battlegrounds were introduced in patches after WoW’s original launch, and class design similarly changed over time. After careful consideration, we decided on Patch 1.12: Drums of War as our foundation, because it represents the most complete version of the classic experience.

Once we had our starting point, we began taking stock of what we had in the source code and what we could make available, which included restoring the original development database from archival backups. After stitching various key pieces together, we had a locally rebuilt version of Patch 1.12 running internally. The team could create characters and do basic questing and leveling—and dying, which we did many times. For testing purposes. Obviously.

Our initial runs exposed a few (expected) issues: the game sometimes crashed, didn’t recognize our modern video cards, and was incompatible with our current login system. That first pass also couldn’t support any of our modern security and anti-cheating capabilities. Clearly we had a lot of work to do to make WoW Classic live up to the Blizzard standard of quality, and deliver the experience players want.

THE PATH FORWARD: SECOND PROTOTYPE

Speaking of engineering, World of Warcraft is a very data-driven game, which means the basic code is flexible and the specific way it behaves is controlled by information contained in databases. Things like quests, monsters, items, and the rules for how these all interact are defined by the designers and artists in data.

So we asked ourselves, would it still be possible to deliver an authentic classic experience if we took our modern code, with all its back-end improvements and changes, and used it to process the Patch 1.12 game data? While that might seem counterintuitive, this would inherently include classic systems like skill ranks, old quests and terrain, talents, and so on, while later features like Transmog and Achievements would effectively not exist because they were entirely absent from the data. After weeks of R&D, experimentation, and prototyping, we were confident we could deliver the classic WoW content and gameplay without sacrificing the literally millions of hours put in to back-end development over the past 13 years.

While our initial effort helped us determine the experience we wanted to provide, this second prototype really defined how we’d get there. Starting from a modern architecture—with all its security and stability changes—means the team’s efforts can be focused on pursuing an authentic classic experience. Any differences in behavior between our development builds and the patch 1.12 reference can be systematically cataloged and corrected, while still operating from a foundation that’s stable and secure.

DIGGING IN

So what does it take to recreate an authentic classic experience with modern engineering? Let’s start by categorizing the different types of game data that make up WoW:

  • Table data: This kind of information is almost always represented as numbers. How many hit points a creature has, the amount of Strength an item grants, or where and when certain creatures spawn, are all examples of the numerical data we store in our databases. We can also store and enforce relationships between different pieces of data.
  • File data: This is often very dense data like 3D models, textures, animations and terrain. Our user interface is built up from XML and Lua files. Many of the art files do not use the same file formats that commercial art tools spit out. Our build pipeline takes these raw art files and translates them into something optimized for our game to read and process.
  • Lua scripts: Some features are driven by Lua scripts written by designers, allowing them to easily define custom behaviors for server-side logic without requiring deep engineering knowledge.

HOW ENGINEERING HAS CHANGED

One challenge we face is that all the classic data is in the original format used at launch, but that format has changed substantially in the intervening years. Major work needs to be done in this area to make the modern client compatible with the classic data.

For example, spells could originally only perform three actions on the spell’s target. In table form, that looked something like this:

ID

Name

Effect One

Effect Two

Effect Three

Aura One

Aura Two

Effect Damage One

Aura Damage One

Aura Damage Two

1

Fireball

Deal Damage

Apply Aura

Nothing

Nothing

Deal Damage Periodically

30

Nothing

3

2

Frost Bolt

Deal Damage

Apply Aura

Nothing

Nothing

Slow

20

Nothing

Nothing

As you can see, there is a lot of space taken up by ‘Nothing’. Over the course of WoW’s lifetime, we’ve improved our data design and normalized much of our database data. Today, that same data would be separated out like this:

Table Name: Spell

ID

Name

1

Fireball

2

Frostbolt

Table Name: Spell Effect

ID

SpellID

Effect

Damage

1

1

Damage

30

2

2

Damage

25

Table Name: Spell Aura

ID

SpellID

Aura

Damage

1

1

Deal Damage Periodically

3

2

2

Slow

Nothing

In this form, there is much less wasted space and spells are no longer limited to three effects. But before we can load any database data, we need to transform the old data layout into the new one. This is not limited to spells, as almost every game system (including items, creatures, player characters, spawning, AI, and more) has had its database layout altered over the years.

LOOKING AHEAD

All the work we’re doing will ultimately allow us to recreate an authentic classic experience on a platform that is much more optimized and stable, helping us avoid latency and stability issues. Additional modern improvements will include modern anti-cheat/botting detection, customer service and Battle.net integration, and similar conveniences that do not affect the core gameplay experience.

We are looking forward to the challenges ahead and share your passion for the classic game; every code check-in data conversion we make brings WoW Classic closer to providing that authentic experience you—and we—want. Thanks for joining us on this journey.

  • Like 3

Share this post


Link to post
Share on other sites

Huge fan of this information. It makes me feel like the time line is even further away though.  Still cool to see behind the scenes things they've learned and things they are yet to discover. Never even realized how their coding of spells has changed so drastically, even on things like frostbolt or fireball that are original spells.

  • Like 1

Share this post


Link to post
Share on other sites

This is exactly what I was hoping they would be doing: take 8.0 and turn it into 1.12. Curious as to whether or not they will use sharding and maybe even a single mega-server since it would help massively with fluctuating server populations. 

Share this post


Link to post
Share on other sites

This information is the difference between console and PC developers; Gettin' all gangster with the engineering.

I just want my Windfury Totem back, daddy

Edited by Abom

Share this post


Link to post
Share on other sites

This is great information and really shows the difference between producing a stable professional product and hacking together a kludge that private servers are.

  • Like 1

Share this post


Link to post
Share on other sites

I can't believe it's taking so long, if all they had to do is change frostbolt and fireball.  I can see it's a complex change, but maybe just release WoW Classic without mages for now?

(omfg I'm just kidding, please stop hitting me.)

  • Thanks 1
  • Haha 2

Share this post


Link to post
Share on other sites

It was obvious that they can't just boot the 1.12 server from backup and then implement it. Too many legacy code and bugs.

And supporting two different code bases really sucks. So, what they came up with is the obvious solution - just use the base of the game, but scale it to 1.12 content. This way they can implement future stability/backend patches to the Vanilla server as well, greatly reducing the time and effort required to support it.

However, while just booting the 1.12 server may have taken like a week, the current project is huge. I will not be surprised if it takes them 2 years or more. It's just a ridiculous amount of work.

It gives me hope that we may see TBC and Wrath though. While Vanilla could take quite a bit of work to roll back due to the Cata rework, TBC and Wrath are pretty much unchanged in their current version on live.

Edited by ionix
  • Like 1

Share this post


Link to post
Share on other sites

Think that having "past WoW" at our fingertips becomes much more possible once Classic (and its lessons) are finished. Looking forward to a lot of nostalgia (and new WoW content!) for the next few years :)

Share this post


Link to post
Share on other sites
On 6/16/2018 at 11:02 AM, ionix said:

It gives me hope that we may see TBC and Wrath though. While Vanilla could take quite a bit of work to roll back due to the Cata rework, TBC and Wrath are pretty much unchanged in their current version on live.

Mechanically they are, several bosses, other than tuning the numbers, had changes to become soloable. Rolling it back wouldn't be that easy. I guess like Vanilla, it might require some reverse engineering of sorts, since game is running on a different structure. Anyway, that's unlikely, as it might split playerbase way too much, and it might have ended with dead servers.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Stan
      Cross-Realm Mythic Eternal Palace opens next week and Blizzard just announced nerfs for Lady Ashvane and Queen Azshara on Mythic difficulty to go live with it on October 22.
      Blizzard (Source)
      Hello!
      Earlier this week, the Mythic Hall of Fame for Azshara’s Eternal Palace reached its capacity, and guilds around the world have until the next weekly reset in each region to earn their Feat of Strength. At that time, Mythic difficulty will become available to cross-realm groups.
      Along with the closure of the Hall of Fame and the Achievement, we intend to make the following tuning changes during weekly maintenance in each region:
      Dungeons and Raids
      Azshara’s Eternal Palace Lady Ashvane Lady Ashvane’s health reduced by 5% in Mythic difficulty. Waterlogged periodic damage reduced by 10% in Mythic difficulty. Rippling Wave damage reduced by 10% in Mythic difficulty. Queen Azshara The "Stand Together!" and "Stay!" decree combination is no longer possible in Heroic difficulty. Overzealous Hulk and Tidemistress health reduced by 10% in Mythic difficulty. Draining Azshara’s Ancient Ward now reduces its energy by an additional 5 points in all difficulties. Empowering a Ward of Power now increases its energy by an additional 5 points in all difficulties. Healer-specialization characters are now less likely to be targeted with decree combinations that include “March!” in all difficulties. Short Circuit now drains 10% less energy from the affected Ward in all difficulties. Essence of Azeroth now has an increased duration if there are fewer than 20 players in the raid in Normal and Heroic difficulties, and lasts 30 seconds (was 25) in Mythic difficulty. As always, we’ll let you know here if we decide to make any further changes.
      Thank you very much!
    • By Stan
      Our preview of Patch 8.3 continues with a first look at racial abilities of the upcoming Allied Races.
      Mechagnome Racials
      Mechagnomes have two active abilities available at level 24. The first one allows you to summon clones to distract enemies and the second one allows you to open locked chests and doors that require Lockpicking.
      Hyper Organic Light Originator - Summon Organic Light duplicates to distract your foes. (Instant, 3 min cooldown) Skeleton Pinkie - Allows opening of locked chests and doors that require a skill level of up to 600. (1.5 min cooldown) As a Mechagnome, your limbs work as a Blacksmithing Anvil, Cooking Fire, and Mining Forge. You have a self-heal at your disposal, which heals you for a fifth of your total health whenever you fall below 20% health. The final passive racial passive gradually increases your primary stat (Int/Str/Agi) by 50 every 5 seconds, up to a maximum of 400 when fighting the same target.
      The following racial passives are available to Mechagnomes:
      Combat Analysis - You gather and analyze combat data every 5 sec, increasing your primary stat by 50, stacking up to 8 times. The data decays while out of combat. Mastercraft - You function as a personal Blacksmithing Anvil, Cooking Fire, and Mining Forge. In addition, your limbs include every profession tool. [NYI] Re-Arm - When you fall below 20% health, heal for 20% of your maximum health. This effect cannot occur more than once every 2.5 min. Languages - Common, Gnomish. Vulpera Racials
      Active abilities embrace the scavenger/camping fantasy of the Vulpera. You can set up a camp and return back on a 1-hour cooldown. Next, you have a bag of tricks, used to heal your allies or deal damage to enemies.
      Bag of Tricks - Pull your chosen trick from the bag and use it on target enemy or ally. Enemies take 14 damage, while allies are healed for 28. (Instant, 1.5 min cooldown) Rummage Your Bag - Change the contents of your Bag of Tricks. Now where did you put that...? [NYI] (5 sec cast, 5 min cooldown) Make Camp - Make a camp at this location. Can only be used outdoors. (5 sec cast) The racial creates a camp with fire, a tent and an explosive backpack at your location. You can use Return to Camp as your secondary Hearthstone on a 60-minute cooldown to return back. The camp is visible for others for five minutes and then disappears.

      Return to Camp - Return to your camp. (10 sec cast, 60 min cooldown) When used, there's a short cutscene with a caravan transporting you back to your camp starts playing.

      Passive abilities include a Fire damage reduction by 1%, 5% damage reduction when you first take an enemy hit, and you can find additional bags of goods whenever you kill a humanoid.
      The following racial passives are available to the Vulpera:
      Fire Resistance - Reduces Fire damage taken by 1%. Nose For Trouble - When you first take damage from an enemy, reduce that damage by 5% of your maximum health. Vulpera Survival Kit - You have a chance to find an additional satchel of goods when you kill a humanoid. Languages - Orcish, Vulpera. Other Patch 8.3 Content:
      Visions of N'Zoth Class Changes Visions of N'Zoth Development Notes New Forsaken Leadership in Patch 8.3 (Spoilers) Azshara's Bargain and the Key to Defeating N'Zoth (Spoilers) I'lgynoth's Whispers in Patch 8.3 (Analysis) Allied Races & Pandaren Death Knight Textures Added on 8.3 PTR Death Knight Starting Zone Revamp Hints in Patch 8.3 Official Mechagnomes & Vulpera Preview Mechagnome & Vulpera Unlock Requirements Vulpera Heritage Armor Preview Mechagnome Heritage Armor Preview Mechagnome & Vulpera Dance Animations Vulpera Tidbits: Racial Mount, Shaman Totems, Hunter Pet Corrupted Rings with Kiss/Curse Effects from Ny'alotha New Essences in Patch 8.3 Ny'alotha Cloth Sets Preview Ny'alotha Leather Sets Preview Ny'alotha Plate Sets Preview Wrathion's Legendary Cloak Preview New Dubloon Vendors Selling Island Expedition and Invasion Crates in Patch 8.3 Alpaca Mounts in Patch 8.3 N'Zoth Serpent Mount in Patch 8.3 Aqir Flying Mount in Patch 8.3 Ny'alotha Allseer Mount in Patch 8.3 Assaults in Patch 8.3 N'Zoth's Model in Patch 8.3 Ny'alotha Raid Boss Names & Descriptions Goblin & Worgen Heritage Armor Sets Preview Visions of N'Zoth Content Update Preview Ny'alotha Raid Testing: October 17th & 18th
    • By Stan
      Ny'alotha Allseer is a N'Zoth-themed mount added to the game in Patch 8.3. It is rewarded from a quest and could very well be the end-of-expansion reward for everyone, who defeats N'Zoth on Heroic difficulty before the next expansion, similar to Legion's Kirin Tor Summoning Crystal.
      Ny'alotha Allseer
      "To find him, drown yourself in the Circle of Stars."

      Run Animation
      The mount shares animations with The Hivemind.

      Other Patch 8.3 Content:
      Visions of N'Zoth Class Changes Visions of N'Zoth Development Notes New Forsaken Leadership in Patch 8.3 (Spoilers) Azshara's Bargain and the Key to Defeating N'Zoth (Spoilers) I'lgynoth's Whispers in Patch 8.3 (Analysis) Allied Races & Pandaren Death Knight Textures Added on 8.3 PTR Death Knight Starting Zone Revamp Hints in Patch 8.3 Official Mechagnomes & Vulpera Preview Mechagnome & Vulpera Unlock Requirements Vulpera Heritage Armor Preview Mechagnome Heritage Armor Preview Mechagnome & Vulpera Dance Animations Vulpera Tidbits: Racial Mount, Shaman Totems, Hunter Pet Corrupted Rings with Kiss/Curse Effects from Ny'alotha New Essences in Patch 8.3 Ny'alotha Cloth Sets Preview Ny'alotha Leather Sets Preview Ny'alotha Plate Sets Preview Wrathion's Legendary Cloak Preview New Dubloon Vendors Selling Island Expedition and Invasion Crates in Patch 8.3 Alpaca Mounts in Patch 8.3 N'Zoth Serpent Mount in Patch 8.3 Aqir Flying Mount in Patch 8.3 Assaults in Patch 8.3 N'Zoth's Model in Patch 8.3 Ny'alotha Raid Boss Names & Descriptions Goblin & Worgen Heritage Armor Sets Preview Visions of N'Zoth Content Update Preview Ny'alotha Raid Testing: October 17th & 18th
    • By Stan
      Here's a preview of Leather sets that will drop in Ny'alotha, the Waking City raid in Visions of N'Zoth.
      Currently, there's some clipping going on with the belt which will be hopefully fixed in future builds.
      Leather Sets from Ny'alotha, the Waking City
      Raid Finder

      Normal Difficulty

      Heroic Difficulty

      Mythic Difficulty

      Other Patch 8.3 Content:
      Visions of N'Zoth Class Changes Visions of N'Zoth Development Notes New Forsaken Leadership in Patch 8.3 (Spoilers) Azshara's Bargain and the Key to Defeating N'Zoth (Spoilers) I'lgynoth's Whispers in Patch 8.3 (Analysis) Allied Races & Pandaren Death Knight Textures Added on 8.3 PTR Death Knight Starting Zone Revamp Hints in Patch 8.3 Official Mechagnomes & Vulpera Preview Mechagnome & Vulpera Unlock Requirements Vulpera Heritage Armor Preview Mechagnome Heritage Armor Preview Mechagnome & Vulpera Dance Animations Vulpera Tidbits: Racial Mount, Shaman Totems, Hunter Pet Corrupted Rings with Kiss/Curse Effects from Ny'alotha New Essences in Patch 8.3 Ny'alotha Cloth Sets Preview Ny'alotha Plate Sets Preview Wrathion's Legendary Cloak Preview New Dubloon Vendors Selling Island Expedition and Invasion Crates in Patch 8.3 Alpaca Mounts in Patch 8.3 N'Zoth Serpent Mount in Patch 8.3 Aqir Flying Mount in Patch 8.3 Assaults in Patch 8.3 N'Zoth's Model in Patch 8.3 Ny'alotha Raid Boss Names & Descriptions Goblin & Worgen Heritage Armor Sets Preview Visions of N'Zoth Content Update Preview Ny'alotha Raid Testing: October 17th & 18th  
    • By Stan
      Last week, Blizzard added Death Knight creature textures for Allied Races and the Pandaren along with encrypted sound files of Bolvar and Darion Mograine to the game. In this week's PTR build, four Death Knight Swords have been added.
      If Allied Races and the Pandaren will indeed be able to become Death Knights in Patch 8.3, it would make perfect sense to revamp the starting zone, because the current one is outdated now that Bolvar is the Lich King.
      Blizzard added four Ebon Blade swords to the game on 8.3 PTR that will likely be rewarded to new Death Knights created in Visions of N'Zoth as part of the overhauled starting experience.

      Other Patch 8.3 Content:
      Visions of N'Zoth Class Changes Visions of N'Zoth Development Notes New Forsaken Leadership in Patch 8.3 (Spoilers) Azshara's Bargain and the Key to Defeating N'Zoth (Spoilers) I'lgynoth's Whispers in Patch 8.3 (Analysis) Allied Races & Pandaren Death Knight Textures Added on 8.3 PTR Official Mechagnomes & Vulpera Preview Mechagnome & Vulpera Unlock Requirements Vulpera Heritage Armor Preview Mechagnome Heritage Armor Preview Mechagnome & Vulpera Dance Animations Vulpera Tidbits: Racial Mount, Shaman Totems, Hunter Pet Corrupted Rings with Kiss/Curse Effects from Ny'alotha New Essences in Patch 8.3 Ny'alotha Cloth Sets Preview Ny'alotha Plate Sets Preview Wrathion's Legendary Cloak Preview New Dubloon Vendors Selling Island Expedition and Invasion Crates in Patch 8.3 Alpaca Mounts in Patch 8.3 N'Zoth Serpent Mount in Patch 8.3 Aqir Flying Mount in Patch 8.3 Assaults in Patch 8.3 N'Zoth's Model in Patch 8.3 Ny'alotha Raid Boss Names & Descriptions Goblin & Worgen Heritage Armor Sets Preview Visions of N'Zoth Content Update Preview Ny'alotha Raid Testing: October 17th & 18th
×
×
  • Create New...