Tuesday, May 31, 2022

Dead By Daylight New Killer: Technical Debt

I've been playing Dead by Daylight off and on for the better part of a year and a half now.  I usually play it with my brothers as a team but I occasionally play solo as a killer.  I've never really done a solo Survivor game because working with other people in the video game is something I hate doing.  Most people are idiots, after all.

In the past year or so, starting with their 5th annivesary of the game going live, there has been a lot of problems with the game.  To say that the past year for DBD players has been a good one is a lie.  Behavior, the company behind the game, has been fumbling along with their patch releases, most of which have required serious hotfix patches once they have been released.

This is not a good sign for the product overall.  Yes, you do expect to have to roll out the occasional hotfix in your software product because we're only human and even the best of development teams will release a defective version from time to time.  It happens to the best of us.

But it happens too often to the worst of us.  If you release a patch for your game and then have to shutdown perks, characters, and whole maps because you royally screwed up on the patch release, then you're not doing a good job.

Or something worse has happened and it's come back to bite you in the ass.  And that thing is the dreaded technical debt.

In the software development world, technical debt is when you've made so many changes to your code base that the whole product begins to malfunction and you find yourself struggling to keep the product working while maintaining all the new features.

Technical debt usually occurs because the original release of your software product was built on unstructured and unreadable code with little to no unit testing set up to verify that the code at least works as expected.  Instead, you just assume that everything is working great because you were able to load it into the test environment and everything worked fine there when the developers ran through their tests.

This is where Behavior is at with Dead by Daylight.  Their codebase lacks any sense of decoupling, so that anytime they release an update, it is more than likely going to break something that should be completely unrelated to said update, and they have no unit tests to verify that the code works as expected, at least in the preliminary sense.

Worse still, because of their technical debt issues, they will be unable to properly address problems like the massive hacking community that currently exists.  All it takes is proper server-side validations and you'll see 90% of the hackers go away very quickly.  But such a solution is impossible if your codebase is a mess.

Look, I know about product-focused development versus code-focuse development (I think those are the right terms).  Yes, you do have a product deadline to meet.  That doesn't mean you use your prototype as the starting point and build from there.  That's incredibly foolish and short-sighted.

If the bones of the product are solid then the rest of the product can be developed where adding new things doesn't necessarily break the old things in a way that requires your dev team to work weekends to fix it.

While I have no insider knowledge of what Behavior's dev team is dealing with, having been a software developer myself for nearly two decades, I can make an educated guess as to what is happening.

If I were the lead developer there, I would draw up a plan to address all the outstanding issues with the code, create a timeline for getting it all done, then ask the upper management to put all new features on hold for a reasonable timeframe in order to address those problems.  Obviously, planning for new features can be done in that timeframe, but no new development should be done.

If Behavior is worried about losing its players, they can simply say that they are working on fixing many of the issues the game currently has and give an ETA on it.  There are plenty of features currently in the game that should make the game worth playing for a time and when the fixes are released, they'll see an uptick in players.

There is some hope that this is what is going to happen moving forward.  Their last major stream announced many improvements to the gameplay, besides upcoming features, which should prove to make the game more viable moving forward.  But if the technical debt issues are not addressed properly, then none of these things will matter in the long term.