When a dev with game dev experience says something should be easy to fix, it’s under the assumption of a reasonable code base. Most games are built off of common engines and you can sometimes infer how things are likely organized if you track how bugs are introduced, how objects interact, how things are loaded, etc…
When something is a 1 day bugfix under ideal conditions, saying it will take 6+ months is admitting one of:
The codebase is fucked
All resources are going to new features
Something external is slowing it down (palworld lawsuit, company sale, C-suite politics, etc…)
Your current dev team is sub par
Not that any of those is completely undefendable or pure malpractice, but saying it “can’t” be done or blaming complexity is often a cop out.
In the real world there is no entirely reasonable code base. There’s always going to be some aspects of it that are kind of shit, because you intended to do X but then had to change to doing Y, and you have not had time or sufficient reason to properly rewrite everything to reflect that.
We tend to underestimate how long things will take, precisely because when we imagine someone doing them we think of the ideal case, where everything is reasonable and goes well. Which is pretty much guaranteed to not be the case whenever you do anything complex.
I agree, real code always has tradeoffs. But there’s a difference between a conceptually simple change taking 3 weeks longer than planned and 6 months. The reality is game code is almost always junk and devs have no incentive to do better.
Getting a feature functional and out for launch day is the priority because you don’t have any cash flow until then. This has been exacerbated with digital distribution encouraging a ship-now-fix-later mentality.
This means game devs don’t generally have experience with large scale, living codebases. Code quality and stability doesn’t bring in any money, customer retention is irrelevant unless you’re making an mmo.
The correlation between code quality and game quality is almost negative. When you’re doing groundbreaking stuff or going for your own artistic vision it’s tough to code well, even more so when you hit a jackpot and have to expand quickly (e.g. League spaghetti, Palworld)
Can’t be done is usually shorthand for the cost massively outweighs the benefits. No different from remodeling a building. Like coding, literally anything is theoretically possible but sometimes you’d have to redo so much existing work it’s never going to be worth it.
Absolutely, it’s impossible to know how much. But it’s a lot easier to grasp that it’s rarely just “changing a few lines” when it comes to these types of situations.
Specially since many programmers have encountered clients, managers, etc. who think it’s that simple as well.
And even then it’s sometimes impossible because how much can you keep in your head at once. Everybody specializes on these large projects. I may have 30000 ft view of how things operate but getting down into specifics can be hard. I have some intimate knowledge of the learning management system we develop for, which is way less complex than most games, and there are always little gotchas when you make code or architecture changes.
Even if you’re an actual software dev, it’s still pretty much impossible to guess how much work something is without knowing the codebase intimately.
I’m a software dev and it should only take 7.
When a dev with game dev experience says something should be easy to fix, it’s under the assumption of a reasonable code base. Most games are built off of common engines and you can sometimes infer how things are likely organized if you track how bugs are introduced, how objects interact, how things are loaded, etc…
When something is a 1 day bugfix under ideal conditions, saying it will take 6+ months is admitting one of:
Not that any of those is completely undefendable or pure malpractice, but saying it “can’t” be done or blaming complexity is often a cop out.
I agree with you, but I’d also like to add the caveat that even with commonly-used engines shit can still be incredibly complex.
In the real world there is no entirely reasonable code base. There’s always going to be some aspects of it that are kind of shit, because you intended to do X but then had to change to doing Y, and you have not had time or sufficient reason to properly rewrite everything to reflect that.
We tend to underestimate how long things will take, precisely because when we imagine someone doing them we think of the ideal case, where everything is reasonable and goes well. Which is pretty much guaranteed to not be the case whenever you do anything complex.
I agree, real code always has tradeoffs. But there’s a difference between a conceptually simple change taking 3 weeks longer than planned and 6 months. The reality is game code is almost always junk and devs have no incentive to do better.
Getting a feature functional and out for launch day is the priority because you don’t have any cash flow until then. This has been exacerbated with digital distribution encouraging a ship-now-fix-later mentality.
This means game devs don’t generally have experience with large scale, living codebases. Code quality and stability doesn’t bring in any money, customer retention is irrelevant unless you’re making an mmo.
And games are usually one and done, so there’s even less motivation to write sustainable code.
The correlation between code quality and game quality is almost negative. When you’re doing groundbreaking stuff or going for your own artistic vision it’s tough to code well, even more so when you hit a jackpot and have to expand quickly (e.g. League spaghetti, Palworld)
Can’t be done is usually shorthand for the cost massively outweighs the benefits. No different from remodeling a building. Like coding, literally anything is theoretically possible but sometimes you’d have to redo so much existing work it’s never going to be worth it.
Absolutely, it’s impossible to know how much. But it’s a lot easier to grasp that it’s rarely just “changing a few lines” when it comes to these types of situations.
Specially since many programmers have encountered clients, managers, etc. who think it’s that simple as well.
Relevant.
My favorite one is “Just add multiplayer”.
Sure. I’ll just go right ahead and toggle it in the engine. Why didn’t I think of that?
lemme just bang out a complete rewrite of the game functionality over lunch
You did it twice, so I’ll be the grammar police:
Especially = particularly
Specially = for a specific purpose
And even then it’s sometimes impossible because how much can you keep in your head at once. Everybody specializes on these large projects. I may have 30000 ft view of how things operate but getting down into specifics can be hard. I have some intimate knowledge of the learning management system we develop for, which is way less complex than most games, and there are always little gotchas when you make code or architecture changes.