I would like to lead with a disclaimer: *THIS IS NOT IN ANY WAY SHAPE OR FORM AN ATTACK ON RIOT* I actually thought someone would have asked this in a reddit forum or something and haven't found any leads other than some article about why it's important to balance games... *duh*
I work in software development. I understand that it is not the same thing as video game development by any means, but I would think there should be quite a bit of similarities. Foremost, math. While some balancing makes sense that it isn't something that can be updated weekly (If you change the range on something you have to take into account the graphics need to be updated, their interactions need to be checked insert 400 other things here etc etc). However for just general balancing, I don't understand why it often takes so long. Maybe this is just my curiosity getting the better of me. While I welcome all responses / opinions / thoughts / theories, I'd highly appreciate anyone with actual video game experience that can elaborate. I also understand why a Rioter probably can't respond, but if they could without disclosing code or anything like that it'd be fantastic.
I'm sure there are more than 10 million layers to league (its why this game is awesome), however there comes a point where you actually get to just numbers for common balances. Some of the lower layers I would think would be champion damage. Q1 Q2 Q3 Q4 Q5 represents the levels of your Q for example. I would think it would be written in a way that you can more or less copy and paste into every champion. While you may need to rename things, the formula shouldn't *need* to change.
Q1 damage calculation = (Base Damage) + (AD Scaling * AD) + (AP Scaling * AP) + (Health Scaling * Health) + (Mana Scaling * Mana) + (Armor Scaling * Armor) + (MR Scaling * MR). (This of course is probably an over simplified version of how their formulas actually look but for demonstration purposes) Anything that doesn't scale with a given stat will automatically zero out. While I wouldn't think a couple integers on each skill would cause much additional stress on anyone's computer playing the game, I guess there's really no harm in pulling the zero factors out. This also gives the ability to "scale the scale" that is Maybe rank 1 Q scales by 10% of your AD and at rank 5 its 50%. Now imagine this same thing for W E and R. Same thing with stats. Base Health X + (Scaling amount * level) Mana armor ad attack speed.......
Theoretically you could put anything in here. Spell vamp / life steal / slow / stun etc that is reflective of itself. (That is, you don't account for spell vamp here unless it's part of the skill itself (Vlad Q), I wouldn't think you'd account for here but maybe I'm wrong, maybe my whole logic is... *starts overthinking posting*)
Then something another section that calculates the actual damage dealt (Insert formula with a lot more interactions Ad damage percent * (some number less than one based on armor) etc etc) special interactions like % health (BOtRK / Vayne passive...)
So, given my thoughts I would think when champions are unbalanced, a small nerf 3% off your Q AP scaling becomes changing literally 1 number in 1 file that is always referenced and never directly re-written anywhere but those ONE files per champion, or champion skill depending on how it actually ends up, or changing base damage is changing 5 numbers. I would think with even a semi-organized file system this is a 2 minute project between finding the file making the change and committing the changes for an intern (don't let your interns decide the scaling, their favorite champs will get OP quick :p) With it only taking a couple minutes to balance each champion, I would think small nerfs / buffs could hit EVERY champion if needed with a weekly balance even if that was an intern's only job.
*Again I state that these are for SIMPLE balancing and again is not me calling Riot out*
While I'm not trying to say how it *should* be done, I'm just curious where the flaws in my logic are. Or, if this was developed like so many commercial projects that started one way that worked but now really should be overhauled entirely but that costs too much time / resources and so it goes on as is.
Anyway, thanks for reading my really long question!