I was writing a new wiki page about unit size the other day. One of the size modifiers that exists is Baron Buff, which only affects minions, but sure enough, this page was about non-champion sizes, too.
So after I set out to determine those modifiers, I also wanted to confirm the attack range increases on the Baron Buff page, which I asked a friend to get me. For the Cannon Minions, he returned '1050/1030 total range'.
I looked at those 2 values the same way you are right now. Nope, this isn't about other minions on any separate map; these are SR cannon minions. The Blue Cannon has 300 attack range; The Red Cannon only has 280 range!
As it turned out, this has been a bug since the earliest builds of the game we have access to; all the way back from Alpha! Minions are coded as separate units for both sides of the map; So are skins, technically, albeit they properly draw from the same data file for the gameplay side (the only differences are tags like 'human' and 'freljord' which VO interactions use). Same types of minions...do not draw from the same file. Not a big problem, though, as they only have to get a few values right? Yes, in theory, that isn't a big problem.
Unfortunately, in the game right now, this is an excerpt the Blue Cannon Minion data file, and this is the same excerpt in the data for the Red Cannon minion. apart from the Name ID's, notice a difference?
And indeed, in the game, these minions adhere to those range values.
[If you make 2 opposing cannons run into each other without interference, they'll not always start attacking each other at the same time like same-ranged units would](see *Edit below for why this link is missing) - instead the Blue Minion goes first a lot of times. The reason it doesn't happen always is that 'is my enemy in attack range yet' is checked only so often, which is also why attacking an enemy moves your champion slightly closer than their attack range would require most of the time. Some would argue that that is to aid in chasing/orb-walking, but I don't think it was set up with that in mind. In any case, attack pathfinding at least doesn't path you into Dragon pit if you want to attack someone on the other side of that wall that is in range of Dragon pit at the time, which would be dumb.
Edit: I got some help in re-doing the proof for this:
Using Syndra W, we can get exact range values and eliminate the 'is my enemy in attack range yet' check by throwing the minion straight from inside its range to slightly further than it was before. If it attacks without walking, it's inside its attack range; If it nudges forward first, it was thrown further than it's attack range.
Test with Blue Cannon | Test with Red Cannon
Here is a comparison for the longest throw at which the minion doesn't nudge forward (= is still in attack range) at. The difference isn't large (it's about 5% of attack range against a normal-sized champion), but you can see it via the cursor location.
Also, there's a Ryze bug that made separating these minions kinda annoying yet kind of fun. This is the reason you canot port a single Rift Herald, or a single minion period, btw (first minion takes last ported champion's position, or won't get a new location at all if no champion was ported).
I tried showing off this difference in the one patch where the new HUD showed unit ranges in the collapsed version (5.14), however minions all show as 0-ranged anyway due to ((bug)). Which is sad, maybe someone would have noticed it then already!
The fact that blue team seems to generally win when the game is left alone by players entirely might be due to this bug. Blue team also has a higher winrate overall in the game, which is often attributed to the assymetry in HUD and the map, which is reasonable, but I wonder what the impact of this bug has been on that winrate, afterall.
*Edit: Turns out the mentioned tickrates make this way too hard, and upon reviewing the best clip I have, it has minion damage increase due to my target dummies leveling up, so I'll remake this for you with a proof that's less up-to chance.
Edit2: Remade proof. Now definitive. See above.
TL:DR: Spot the difference
External link →