4 ms·
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
by danbolt 5y ago
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.
[1] https://technology.riotgames.com/news/taxonomy-tech-debt https://technology.riotgames.com/news/taxonomy-tech-debt
- bskrobisz 5y agoAs a prime example of this, I'd point to the horrifying source for VVVVVV, a darling indie game of its time: https://github.com/TerryCavanagh/vvvvvv https://github.com/TerryCavanagh/vvvvvv (my favorite piece: https://github.com/TerryCavanagh/VVVVVV/blob/master/desktop_version/src/Game.cpp https://github.com/TerryCavanagh/VVVVVV/blob/master/desktop_...) (There was also discussion about it on HN before as well, if one is interested: https://news.ycombinator.com/item?id=22011358 https://news.ycombinator.com/item?id=22011358) 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.
- hn8788 5y agoSome 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.