Riot should just scrap their current code.

ModCaptainMårvelous·6/21/2016, 2:56:27 AM·5 votes·1,061 views

Before you ask, no, I'm not talking about them just flat-out destroying League. Rather, they need to just stop trying to salvage this code. I understand it's more cost-effective to try and save what they have but, to be completely honest, is the code actually worth saving?

#Uh-oh, Spaghetti code. As a comparison, let's look at missile systems before Riot rewrote them back in 2015: https://engineering.riotgames.com/sites/default/files/missile_flow_before.png

And the missile system now. https://engineering.riotgames.com/sites/default/files/missile_flow_after.png

"Wow omg so much cleaner" you'd say. But then you remember that this is just for the missile system. JUST THE MISSILE SYSTEM. There are so many things that need code updates to unspaghetti the confetti that at this point how long will we wait for a completely clean, completely fresh code? In that time, League is still adding new things, new code, and more.

I'm almost sure that there's some things that Riot wanted to add to the game but couldn't. From a completely illegitimate leak that scummed up around /v/ a bajillion years ago, Ekko's original ult rewound the game 4 seconds prior or so. Now, imagine this scenario: That story is true. Riot wants to do this and even built a kit around it. However, because of the code, there are so many problems with a rewind that it basically makes Ekko completely unviable. So they move on and try to rewind Ekko where he was 4 seconds ago. Yet even this is problematic and the game can't keep track. So they code his "rewind" as a teleport-dash with a heal attached to it.

#Looking to competitors In my opinion, Riot should pull a DoTA2. No, I'm not saying "Let's make League dota!" (Although some new abilities could argue that they have some painful similarities. Hello Bard and Sol). The dirty secret about DoTA2 is that it's really just DoTA1. That said, it's in a brand new engine with new code, new models and is just a flat out upgrade from the previous one. So how would Riot do this? In these steps:

  • Early development begins, coding a new game. No champions, no items, just fleshing out the bare mechanics with minions.
  • Place the simplest champions into the game, starting with 10-20 champions who have little-to-no chance at breaking the new engine.
  • Once everything seems safe, start the alpha and have people testing things.
  • Slowly add more champions to the game. You could even make themed patches for importing factions (The Shadow Isles Patch, Bilgewater, etc)
  • As time goes on, slowly start updating the games concurrently.
  • Finish cleaning up the smallest of bugs and errors.
  • Officially move the game to the new engine and retire the original one.

This would probably take 2-3 years, being generous, but in the long run it'd be much healthier for the game as a whole. League's code right now is a joke. Health packs and walls are coded as minions. Skin releases revert champions to how they were several patches ago. New cosmetics crash the game. At this point, saving the code is likely more expensive and slower than just biting the bullet and working on fresh code.

#Conclusion Riot made the lofty (And somewhat arrogant) claim that they want League to last 50 years. Even shooting for 10 years, this engine needs to be fixed. This engine will only get progressively worse with each year and simple dusting of the original engine won't save it. For the sake of the players, your game, and your company...just bite the bullet and admit defeat on this engine.

With what you have now (and especially compared to the new client) you guys can do so much better.

2 Comments

The Soulforged6/21/2016, 4:15:29 AM1 votes

Yeah, I agree wholeheartedly. So many bugs occur that seem to have nothing to do with the thing being implemented. Remember the tiamat bug? How do you think an item caused the server to crash and forget everything happened?

2nd Chance6/21/2016, 4:38:58 AM1 votes

Make sense