Random Acts of Optimization. Game developers working on a continuously evolving product like League of Legends are constantly battling against the forces of entropy as they add more and more content into unfortunately finite machines.
New content carries implicit cost—not just implementation cost but also memory and performance cost created by more textures, simulation, and processing. If we ignore (or miscalculate) that cost then performance degrades and League becomes less enjoyable. Hitches suck. Lag is infuriating. Frame rate drop is frustrating. I'm part of a team dedicated to improving the performance of League of Legends. This is the first in a series about how as a team we optimize League of Legends while new content and fixes get continuously added. An example of high particle density in a LoL game. Optimization isn't simply rewriting a chunk of code in assembly—although sometimes it is that. We take three basic steps when optimizing an existing codebase: identification, comprehension, and iteration. Waffles. Riot Games Engineering. My name’s Cam Dunn, and I’m the Tech Director for League.
I’ve always found it interesting how much we don’t know about human history simply because no one made a record at the time. Who first invented the hammer? Hammers with handles have been around for tens of thousands of years, but nobody knows who made the first one for sure. Sometimes, history feels like we’re collectively waking up after a drunken night out and asking, “My god, what did we do last night?”
Riot came after the invention of language, but still we suffer from some of the same problems—during those first formative years, everything happened so quickly that sometimes we forgot to write it down or capture it clearly. We did eventually identify those machines so we could shut them down, but the experience left me thinking: we need a way of querying services, even if we don’t know what they are. Here at Riot, we highly value autonomy; in fact, we describe our teams as “highly aligned, highly autonomous.”
Riot RFC Library. Simon schreibt. Added a whole new book covering the pipeline in detailAdded 2 new videos and 32 new links to great articles, whitepapers, …Extended the section copying data from HDD to graphic card.Updated some terms in the pipeline animation and made clear that this is only the logical pipeline.Updated some smaller text passages in the book about the problems.Added some new problems.Added a new solutions and some general words.
See Render Hell 1.1 Change Log Added new possible problem-source about batching here.Added a note about the pipeline simplification here. Madsy9 pointed it out here.This article was honored with two reddit threads. Here and here.Added better FIFO explanation here. Thx sccrstud92, tmachineorg and koyimaCort mentioned this these slides about “How Shader Cores Work”.NVidia specifications with actual core counts. A lack of knowledge sometimes can be a strength, because you naively say to yourself “Pfff..how complicated can it be?”
… and just started. Open this Book Open this Book. Game Engine Architecture. Adam Weissmuller's Blog - Five Considerations for Creating an Optimal Online Gaming Infrastructure. The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company. The online, cloud-based gaming market has seen massive growth over the last five years, with the proliferation of social sites, gaming genres, mobile devices and high-speed broadband connections fueling the prediction that the market will reach $25.3 billion dollars this year, a compound annual growth rate of 13.9% since 2009. While game publishers tend to focus on the entertainment value and “stickiness” of a game, even the most popular and addictive titles can suffer significant player loss if the backend infrastructure can’t deliver the performance needed to provide an optimal online gaming experience.
Making matters even more complex, game publishers must implement a high-performing backend infrastructure at a price that makes business sense. Diversify Infrastructure to Minimize Downtime.