Stories
Slash Boxes
Comments

SoylentNews is people

posted by on Wednesday January 25 2017, @12:56PM   Printer-friendly
from the blink-and-you-miss-it dept.

Hi, I'm Tony Albrecht and I'm one of the engineers on the new Render Strike Team under the Sustainability Initiative in League of Legends. The team has been tasked with making improvements to the League rendering engine, and we're excited to get our hands dirty. In this article, I'll provide a run-down on how the engine currently works - hopefully this will be the foundation on top of which I can later discuss the changes we make. It's also a great excuse for me to step through the rendering pipeline myself so that we, as a team, totally grok what's happening in there.

I'll be presenting exactly how League builds and displays a single frame of the game (remember, on high end machines this is happening over 100 times per second). The discussion here will certainly be technical, but I'm hoping it's digestible even if you don't have experience with rendering. I'll skip some of the complexity for the sake of clarity, but if anyone would like more details I certainly hope you ask.

First, a bit of brief context on the graphics libraries available to us. League has to work as efficiently as possible on a wide range of platforms. In fact, Windows XP is currently the fourth most popular OS version running the game (behind Windows 7, 10 and 8). There are over ten million games per month played on Windows XP, so to maintain backwards compatibility we have to support DirectX 9 and can only use the features it provides. We use a comparable featureset from OpenGL 1.5 on OS X machines as well (that should be changing soon).

So let's dive in!

A long article, but fascinating to see how so many steps are done so quickly to keep our gaming habit fed.


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 0) by Anonymous Coward on Wednesday January 25 2017, @02:12PM

    by Anonymous Coward on Wednesday January 25 2017, @02:12PM (#458484)

    This "How it Builds a Frame" article has been written very many times, for various definitions of "it".

  • (Score: 5, Insightful) by martyb on Wednesday January 25 2017, @03:06PM

    by martyb (76) Subscriber Badge on Wednesday January 25 2017, @03:06PM (#458502) Journal

    This "How it Builds a Frame" article has been written very many times, for various definitions of "it".

    And they all do it the exact same way?

    There are tradeoffs. There is only so much computing power, memory bandwidth, and the like available. A choice of a different algorithm can make a huge difference. For the sake of a concrete example, consider drawing a circle. One can use a naïve algorithm to draw a circle over polar coordinates and calculate sines and cosines for each point. Or, one could use, say, Bresenham's line algorithm [wikipedia.org] which "uses only integer addition, subtraction and bit shifting, all of which are very cheap operations in standard computer architectures" and obtain the same result much more efficiently which leaves extra "computes" available for other tasks.

    Would you be as dismissive of a "how to sort a list" story? The end result may be identical, but how you get there, and how long it takes, can vary widely — insertion sort, bubble sort, selection sort, quick sort, merge sort — each has pros and cons as to speed, memory usage, stability, etc.

    Separately, though this may be something you have seen "many times", this may be new to others in our community who would find this fascinating.

    I never tire of seeing a clear writeup of how someone implemented "foo" as I have a chance to learn something new. My day is terribly empty if I haven't learned something.

    --
    Wit is intellect, dancing.
    • (Score: -1, Offtopic) by Anonymous Coward on Wednesday January 25 2017, @06:38PM

      by Anonymous Coward on Wednesday January 25 2017, @06:38PM (#458576)

      My name is not "dancing".

  • (Score: 1) by charon on Wednesday January 25 2017, @06:19PM

    by charon (5660) on Wednesday January 25 2017, @06:19PM (#458566) Journal
    Are you the same guy who complains that everything on imgur is a repost?
  • (Score: 1, Touché) by Anonymous Coward on Wednesday January 25 2017, @06:42PM

    by Anonymous Coward on Wednesday January 25 2017, @06:42PM (#458582)

    We can file it under "Still being relevant", and we'll file you under "Curmudgeons".