Even without considering the "boy's club" stuff, LoL never seemed to be very competently programmed back when I played it (admittedly I've hardly touched it since ~2012). I wouldn't really trust them for engineering and programming expertise either, except maybe from whoever manages their servers/online infra.
I don’t know much about League of Legends or its architecture, but I could imagine they were making tradeoffs at times for the product’s sake. I think they hint at this with `std::string` usage in their tech debt article. [1]
It’s been said to death at this point, but technical shortcomings can be orthogonal to a video game’s success on the market.
That said, refactoring for later gains might be wasted time if you have only a certain amount of scope planned for the rest of time, counter to the typical heuristic.
Some of their decisions didn't make any sense, even at the time. For example, each champion is coded separately for each team, there isn't just a single champion where they toggle a flag or something. That's led to bugs where champions are stronger depending on what team they're on. Skins work the same way; instead of just changing the appearance, every skin is a seperate hero in the code.
You're not wrong. Their engineering seems incredibly incompetent. I've often postulated that they have like 500 junior developers and like 12 people with more than 5 years programming experience.
There is probably like 2 people who keep the game engine running and when they quit the game will fall apart.
You should look at some of their dev blogs. Their engineering team has done some pretty remarkable things, like re-writing the game server to be deterministic so they could better deal with problems that occur in pro play[1]. They've also talked a bit about the past and future of the game engine specifically [2]. They also have blogs talking about operations- taking the game from something written by 2 dudes in a dorm room to being one of the most played games in the world- how their stack has changed, how they're set up to do patches and rollbacks, how they do their internal testing and playtesting, etc.
No, I down-voted each of you because your comments are anecdotal at best and don’t add to the discussion at all.
Saying the game doesn’t appear to be “competently programmed” is analogous to the “coded badly” that gets thrown around, not taking into account that all successful consumer software has tech debt and inefficiencies.
(I don’t work for Riot and have no affiliation with them)
Yeah, I've gotten into it recently. Ignoring the nearly impossible problem of game balance, the actual software is not well engineered. The non-game client is chock full of bugs. They do have quite a legacy problem: 11 years is forever in computer game time, but still, with their resources you'd expect the big bugs to be fixed by now.