The Hungering Blade Fiasco is why I hope D2 has new code

Discussion

So, based on the recent surplus at Rahool's Salt Emporium, I think we all agree that the recent balance patch and the mess it created with some health regeneration perks sucks. Like, big time. If this is the first post you've read on the sub in two days and you somehow don't know about this, changes were made to the Hungering Blade perk that changed it from "begin your health regen" to "give a fixed amount of health." The problem emerges when several other perks that weren't supposed to be changed, such as Red Death and Cauterize, got changed in the same manner.

Whether or not you agree with the changes, these unintended changes and how they were implemented are a really bad thing. Not only because it sets a bad precedent regarding rushing patches out before they're done, and because we really want Bungie to know what they're changing when they change it, but also because what it implies about Destiny's source code.

For the uninitiated, the source code is what the game runs off of. It's what's in your disc or downloaded to your console. It tells the game how to react, what enemies to display and where to display them, that sort of thing. The changes to Hungering Blade (and the rest of the health regen perks) are there because Bungie changed the code and then pushed that change to our console.

Now, while I can't access Destiny's source code and look at it, my best guess is one of two things caused this whole thing to happen. Neither of them are good. Either:

A: Bungie didn't properly abstract their methods. A method is a piece of code that can be called later in the source code to save room. Basically, I can create a method in the code that is called, say, fireBullet. This method will contain the code necessary to fire a bullet at another player. Maybe that method is 30 lines long.

Now, I can write "If the player pulls the trigger, run the fireBullet method", which will fire a bullet from the player's shotgun sidearm (new meta, sorry) instead of writing "If the player pulls the trigger" followed by the thirty lines of code in my method. This helps save memory - especially on legacy consoles, which I suspect is where the problem comes from. It also helps clean up your code. Methods are usually good.

Bungo's bungle probably came from having just one startHealthRegen method instead of having a hungeringBlade method and a redDeath method and so on. So now, when someone at Bungie wants to change the code for Hungering Blade, they have to go and edit the startHealthRegen method. But wait, that method is also called (used) in Cauterize, and Red Death, etc. Now, the change goes for everything that starts your health regen.

Or B: This one is less technical, but maybe scarier. If it wasn't a method fuckup, the implication is that Destiny's source code is a spaghettified monster. Everything is intertwined to the point that its impossible to change something in there without inadvertently changing something else. This can easily happen a lot with big games like Destiny that get multiple expansions. This can also be kind of pinned on legacy consoles and their memory limitations.

Now, we have a source code that is so hard to change that Bungie spends a significant amount of their allocated patch time on just making the changes to the code. This cuts into their time to decide what the changes should be, playtest them, bug fix, etc. Another reason, I would wager, as to why this game doesn't get patches at the rate of, say, Overwatch - literally changing the code takes too long and too much effort.

So, to go somewhere with this, I was really excited when those fake leaks said stuff about D2 (Forge of Nope) having a completely new engine. 2.5.0.2 isn't the first problem that seems like it stems from the game's code, but it is one of the largest in magnitude we've seen so far.

I feel like ditching legacy consoles (RIP my 360) will also help with this. One and PS4, based on what I've seen, have a much better ability to handle complex code, in addition to the obvious stuff like more memory and better processors. With the devs having lost the burden of legacy consoles, plus the amount of manpower they've had on D2, plus lessons learned from the past two and a half years, I'm seriously hoping for a new engine that lets Bungie edit their code much easier. If not that, at least something that is seriously overhauled and streamlined.

Thanks for reading. What say ye?

Posted Feb 17, 2017, 2:42 AM UTC · edited

012
Loading comments…