Jump to content
FORUMS
Sign in to follow this  
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...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Starym
      We have another triple entry in the hotfix ledger, as Radiant Echoes gets more improvements in retail, while Season of Discovery and Cata Classic get additional class changes.
       August 7  (Source)
      Player-characters
      Steady Flight should no longer be removed after entering an Arena. Quests
      We tuned up the Prototype Shredder MK-03 so that “Eye for an Eye” can be completed. Radiant Echoes Event
      Increased Flightstone and upgrade Crest drop rates in the event. Reduced the HP scaling on all event bosses so that they should be killable in a more-reasonable timeframe. Developers’ notes: This includes both ‘minibosses’ (e.g. Hogger, Thorim) and final bosses (e.g. Remembered Onyxia, Ragnaros). Season of Discovery
      Hunter Heart of the Lion once again has a 100 yard range. Warrior The Focused Rage rune will now correctly reduce the cost of Meathook by 3. Cataclysm Classic
      Fixed an issue where Faerie Fire did not deal intended amounts of threat when used on NPCs targeting another unit.
    • By Stan
      Due to a bug introduced with the War Within pre-patch, some players are receiving item level 250 gear from the weekly cache.
      We've seen numerous reports on Reddit and the official forums that the Last Hurrah weekly quest on live servers drop low-level gear for some players. Apparently, the bug was first introduced with the War Within pre-patch two weeks ago and still hasn't been fixed.
      Here's an example of a low item level drop from the Cache of Awakened Treasures by Omnifox.

    • By Starym
      Week 2 brings quite a few changes, as Hunters in particular rise up, while Shadow has a really bad time. The top 3 remains the same and very consistent, so let's jump in and see what's going on.
      Warcraft Logs Points
      The below logs are based on POINTS, and not actual damage or healing, meaning they log the timed completion for the specs, with higher keys getting more points, obviously. The time in which the dungeon is completed is also a factor, but a much, much smaller one, as it grants very few points if you do it significantly faster than just any in-time completion. We're also using the Normalized Aggregate Scores numbers, for clarity, meaning the top spec is marked as 100 and then the rest are ranked in relation to that peak point.
      All Keys
      95th percentile DPS
      The top 3 remains quite stable with the Evoker-Paladin-Warrior trio reigning supreme. We see the first change of the week right after that though, as Frost DK continues its upward march in dungeons as well as in raids, taking 4th from Elemental. Both DKs are on the rise, as Unholy also moves a spot up, taking advantage of Shadow's precipitous 5-spot fall to the bottom of the top 10. Arms remains stable as two Hunters burst in, Beast Mastery taking 8th and Marksmanship 9th, as Frost Mage disappears down towards the bottom. Speaking of the bottom, Devastation gets some new roommates there, as Outlaw and Destruction fall and give Enhancement and Feral a break.

      Mythic+ All Keys 95th Percentile Data by Warcraft Logs.
      All Percentiles
      As with the top percentiles, the top 3 remains solid, but 4th is immediately changed, thanks to Shadow's massive drop in performance this week. The Priest loses even more ground here, falling 9 spots into 13th, opening 4th up for Arms. Beast Mastery moves even higher here, grabbing 5th and moving in front of Elemental and Frost DK, as Marksmanship brings up the rear and completes the Hunter sandwich in 8th. Affliction breaks into the top 10, just ahead of Unholy which dropped to the final spot.

      Mythic+ All Keys All Percentile Data by Warcraft Logs.
      Raw DPS U.GG DPS Rankings
      U.gg's rankings are based on actual DPS taken from Warcraft Logs data, focusing on the top players and span the past two weeks.
      Frost DK finds itself on top in the raw DPS rankings, as Augmentation isn't calculated properly here. Fury and Arms grab the next two spots, moving ahead of Ret, and the Fyr'alath wins continue in 5th, where Unholy finished the legendary axe streak. Even Survival joins the Hunter good times in 8th, where all three specs gather, just ahead of Balance who closes out the top 10.
      Mythic+ All Keystone DPS rankings by u.gg.
       
       
      For even more in-depth data for each individual key head on over to Warcraft Logs. And if you're interested in more info on the specs themselves you can always check out our class guides (updated for the pre-patch), as well as our Mythic+ guides and Mythic+ tier list.
    • By Stan
      For the next two weeks, the Archaeology quest for Spirit of Eche'ro is available on live servers, so don't forget to get the rare mount before it's gone for 6 months!
      How to Get the Spirit of Eche'ro Mount
      1. Download MapCoords or some other add-os that displays coordinates in the game.
      2. Teleport to Azsuna from the Stormwind/Orgrimmar Portal Room or use your Dalaran Hearthstone to reach Dalaran (Legion) if you have one in your inventory.
      3. Seek out Archaeology Trainer Dariness the Learned in Dalaran at 41,26 and learn Archaeology if you already haven't.
      4. Accept The Right Path quest from the Archaeology Trainer and make your way to Thunder Totem in Highmountain.
      5. Talk to Lessah Moonwater to accept Laying to Rest. For the quest, you must collect 600 Bone Fragments of Eche'ro by rotating between four digsites in Highmountain. The exact locations with coords are outlined below.
      Digsite 1: Darkfeather Valley (50, 44) Digsite 2: Dragon's Falls (58, 72) Digsite 3: Path of Huin (44, 72) Digsite 4: Whitewater Wash (39, 65) it takes roughly around 2 hours to get the mount.
      Spirit of Eche'ro
      "The spirit of Huln Highmountain's pet moose."

      Hurry up! You only have until August 21, 2024, to get the mount!
    • By Stan
      MoP Remix characters that will transfer over to retail will receive a gear boost!
      With Patch 11.0.2 now live on Public Test Realms, you can copy over MoP Remix characters from retail! It appears all MoP Remix characters will receive a character boost so you can dive straight into action when the War Within expansion launches.

      We can't unfortunately log in to the game with the MoP Remix char on the PTR so we can't confirm the Item Level of gear for max level characters. However, keep in mind that the gear boost will scale with your level, so if you're below max cap, you will receive gear appropriate to your current level.
      When Can We Expect MoP Remix Characters to Transfer to Retail?
      MoP Remix ends on August 19, so we assume the characters will need to be transferred to retail by August 22 when Early Access begins.
×
×
  • Create New...