User blog:Alartan/League of Legends as software, according to CapoFerro

Introduction
Personally, as an inexperienced software developer myself, I was interested how is League of Legends maintained. When browsing Reddit I found an oppurtunity to ask some question to Riot employee CapoFerro. He is a senior software developer (Ruby language).

Let's just skip to the point.

Questions and answers


'''1. What do you think about recent flood of bugs (I mean many severe bugs after every patch)?'''

Part of my job as a Software Engineer is to make sure we get better here. One personal passion of mine is automation and testing, and how to deal with the unique problems in testing video games. The more we automate, the fewer chances there are for a human to make mistakes when writing or deploying features. The more we write automated tests, the more confident we can be that older features are not broken when we write new features as the tests will automatically flag these problems every time we deploy the game. The problem is that we have a long history of "omg build it really fast" tech debt that we are paying back over time. Riot has invested many many resources into this effort, but we still have a long way to go.



'''2. How happens, that some champions are very buggy like Azir and Quin? Maybe their kit is not suitable for technology? Do you know about glitches involving vision of Nidalee in bushes (I don't even have Nidalee, just asking)?'''

Pragmatically speaking, anything new is likely to have bugs, but we know we shipped Azir too quickly. Azir was a new type of champion, and needed a longer test cycle to uncover all the problems. We should have kept him on the PBE for longer than we did.

Long story short: it's something we've talked about a lot in retrospect (inside Riot, not conversation with me - Alart). and it led to process improvements that’ll help us make better-informed decisions around these situations in the future.

As for Quinn, do you mean before her recent changes or is she still buggy for you? I’d be interested to know what problems you’ve been having.

For Nidalee, I don’t have any status updates, sorry. :(



'''3. Wouldn't be better for patches to be released less frequently and be more polished?'''

Releasing fewer patches with more testing could lead to features being more polished, but also to fewer features and a higher risk of wasted time/effort. Some types of features need to always work 100% before they are released: for example, if the login system breaks, the game is literally impossible to play. For other things, we prefer to release earlier so we can get data and feedback on how fun or effective they are. We always strive to make well-informed choices, but ultimately, the longer we wait to release something the higher the cost when we make changes based on feedback… changes which introduce more bugs that have to be fixed. The only difference is now we’ve wasted a lot of time “perfecting” a flawed concept.

TL;DR: We try to make things as bug free as we can, but getting feedback from players is extremely important too. Balancing these needs is a moving target, but we still think it’s the best path to creating the best possible game overall. (The PBE is invaluable for this as a means for us to solve bugs and gather feedback simultaneously - more on the PBE later.)

''' 4. Shouldn't Riot consider change of engine like developing new from a scratch or buying another?'''

In software development in general, rewriting software to make it better is almost always the wrong choice. We have thought about it many times and have so far decided not to do so. the vast majority of "wholesale rewrite" projects end in failure. The reason for this is because we won't stop development on the current engine which serves many millions of players. If we hire a team to write a new engine, the chances that they are successful in both rewriting every current feature AND catching up to everything new that came out while they were working is very low.

Instead, the more successful path to repay tech debt - the path that Riot is following today - is to break down our ancient monolithic software into modules that can be independently revised and rewritten over time. It's far more likely that we can rewrite say... the items shop as an independent module without running into the catch-up issue described above because the scope of that problem is much smaller.

TL;DR We have rewritten many many pieces of League of Legends, but we will likely never rewrite the whole thing in one shot.



5. What do you think about beta server and feedback from there?

Absolutely essential. Having real players trying things out before they go live makes the game so much better both in terms of objective value like catching bugs and subjective value like making sure Jinx's skin tone feels right for the character.We could be doing a better job on our end of providing feedback on when and how that information is put to use, though.

''' 6. What about cheaters? Is their activity decreasing, increasing? Are accounts hijacked?'''

Unfortunately we can’t talk about the things we’re doing specifically to stop cheaters (that would only give tools to the cheaters to try new things), but having talked to the guys working on that problem, we’re doing a wide variety of things to combat cheaters. We’ve also made improvements to the account recovery process to reduce the damage done when accounts are hijacked.

 7. Are all developers English-speakers or do you use outsource from countries like India or China?

Riot hires developers around the world to work in the various regions that the game is deployed to. For example, we have a number of developers in Korea and in China. Naturally, most of them speak Korean and/or Mandarin as their first language. They work out of our Korea and China offices and are Rioters just like me.

 ''' 8. How is Garena influencing your job? Feel free to skip that question if it's stupid.'''

I've worked with the engineers at Garena to help get the game deployed, but they are fairly self sufficient.

''For those uninformed: Riot is a subsidiary company of Tencent Holdings Limited. Garena is directly owned this holding. I was curios if they keep any control over Riot's policy. I suppose answer is no. - Alart''

 '''9. Do you have any opinion about IP pricing (I mean now player must have 700 000 ip to buy champs and runes, it's 5 years of playing, more than LoL itself has)? Will there be more events like 300% IP for 5men premade?'''

Unfortunately I don't have any insight into these areas, but I know it's something we think about a lot.

  10. Do you have any opinion about champions' bans system (like increase number of bans, I mean on champions, not for rude players)?

Personally, I think bans are fine as they are, but it's something the gameplay team would be far better equipped to discuss. I know they look at this system now and again, especially at the beginning of seasons.



11. What do you think about Witcher 3?

Haven't played it, but it looks pretty.



12. Can I public your answers?

Sure, I don't mind. Can you message me a link to wherever you end up posting them in case other players have followup questions?

Some final words
I really like those answers. Especially answer about engine change gave me a lot of insight about LoL development. Despite I'm not a big fan of frequent patches (due to meta evolving) I get why Riot chose this strategy.

I hope any person interested in software development can find interest in those anwers.

Source - reddit.