
A trip down the League of Legends graphics pipeline - adamnemecek
https://engineering.riotgames.com/news/trip-down-lol-graphics-pipeline
======
ggregoire
Several years ago, if I had to choose a video game company where I would loved
to work as a software developer, it would have been Blizzard Entertainment.

Now, it would definitely be Riot Games.

As player, spectator and developper, I'm so impressed by their work, the
evolution of their game since the release in 2009, how they listen their
community [1], try new things and, most of the time, admit their mistakes
(e.g. removing the ranked solo queue in 2016) and rollback [2] or improve
their changes when it's needed.

Their game is the most played game ever. ~100 millions active players every
month [3].

Their game is also the most watched game ever. ~40 millions unique viewers for
the finals of the last World Cup in September [4]. Hundreds of thousands of
viewers on Twitch every day (without even counting the Asian region). They
have revolutionized the "e-sport" in Occident. I don't play anymore (for now)
but I'm still watching most of the professional games because they created an
accessible, passionate and entertaining game to watch (for those interested,
the new season just started in Korea, China and Europe, and tomorrow in North
America [5]).

Really inspiring. Congratz Riot Games.

[1]
[https://www.reddit.com/r/leagueoflegends](https://www.reddit.com/r/leagueoflegends)

[2] [http://na.leagueoflegends.com/en/news/game-
updates/competiti...](http://na.leagueoflegends.com/en/news/game-
updates/competitive/riot-pls-ranked-pls-2017-season-ranked-changes)

[3] [http://www.riftherald.com/2016/9/13/12865314/monthly-lol-
pla...](http://www.riftherald.com/2016/9/13/12865314/monthly-lol-
players-2016-active-worldwide)

[4]
[http://www.espn.com/esports/story/_/id/18221739/2016-league-...](http://www.espn.com/esports/story/_/id/18221739/2016-league-
legends-world-championship-numbers)

[5] [http://www.lolesports.com/en_US](http://www.lolesports.com/en_US)

~~~
frik
This Moba and TowerDefence genres that started as maps and mods of RTS games
(Age of Empire 1/2 and WarCraft3).

I personally find this grinding gameplay style boring. Like Farmville or
playing at a casino or lottery. Pointless and boring repetitive. I prefer real
games.

Sadly, triple-A RTS games are no more, no new release for 10 years (beside
SC2, which I dislike). Halo Wars 1 and C&C4 marked the end, and the low point
of RTS by causualisation to fit the consoles. Whereas modern games like Watch
Dogs 2 on consoles have a more complex control schema and RTS elements with
it's drone and hacking.

One day I want a new AoE and C&C with modern graphics as PC first triple-A
game.

~~~
ArchReaper
Dawn of War: Warhammer, Age of Wonders 3, Paradox games, Civilization...

It may not be quite like it used to, but strategy as a broader genre is still
going strong.

~~~
rhcom2
Homeworld: Deserts of Kharak also came out in 2016 and was a great RTS.

------
adamnemecek
Few things consistently blow my mind as insane graphics demos

[https://www.shadertoy.com/view/4dfGzS](https://www.shadertoy.com/view/4dfGzS)
(or basically anything on that site)

How is that 400 lines of code.

Or this one which even generates the sound on the GPU

[https://www.shadertoy.com/view/4ts3z2](https://www.shadertoy.com/view/4ts3z2)

With the wide adoption of WebGL, it's a good time to get involved in graphics.
Furthermore, GPUs are taking over esp. with the advent of machine learning
(nvidia stock grew ~3x, amd ~5x last year). The stuff nvidia has been recently
doing is kinda crazy. I wouldn't be surprised if in 15 years, instead of AWS,
we are using geforce cloud or smth, just because nvidia will have an easier
time building a cloud offering than amazon will have building a gpu.

These are some good resources to get started with graphics/games

# WebGL Programming Guide: Interactive 3D Graphics Programming with WebGL

[https://www.amazon.com/WebGL-Programming-Guide-
Interactive-G...](https://www.amazon.com/WebGL-Programming-Guide-Interactive-
Graphics/dp/0321902920/ref=as_li_ss_tl?ie=UTF8&linkCode=ll1&tag=akhn-20&linkId=6a3c5120f9335a1038329ba5136d0ca9)

Historically, C++ has definitely been THE language for doing graphics but if
you are starting these these, you would have to have really compelling reasons
to start with C++ and not JavaScript and WebGL. And that's coming from someone
who actually likes C++ and used to write it professionally.

# Book of Shaders

[https://thebookofshaders.com/](https://thebookofshaders.com/)

# Game Programming Patterns

[http://gameprogrammingpatterns.com/contents.html](http://gameprogrammingpatterns.com/contents.html)

[https://www.amazon.com/Game-Programming-Patterns-Robert-
Nyst...](https://www.amazon.com/Game-Programming-Patterns-Robert-
Nystrom/dp/0990582906/ref=as_li_ss_tl?sa-no-
redirect=1&linkCode=ll1&tag=akhn-20&linkId=abb3d10b5110e80969bf860188704f7c)

HN's own @munificent wrote a book discussing the most important design
patterns in game design. Good book applicable beyond games.

# Game engine architecture

[https://www.amazon.com/Engine-Architecture-Second-Jason-
Greg...](https://www.amazon.com/Engine-Architecture-Second-Jason-
Gregory/dp/1466560010/ref=as_li_ss_tl?_encoding=UTF8&psc=1&refRID=CYQ60B781NB1PD69E20Y&linkCode=ll1&tag=akhn-20&linkId=d234fcc54fc7579edd423dccfe0d47a4)

# Computer graphics: Principles and Practice

[https://www.amazon.com/Computer-Graphics-Principles-
Practice...](https://www.amazon.com/Computer-Graphics-Principles-
Practice-3rd/dp/0321399528/ref=as_li_ss_tl?s=books&ie=UTF8&qid=1484843854&sr=1-1&keywords=computer+graphics&linkCode=ll1&tag=akhn-20&linkId=ce5d19658fd2884b7b6bf7ceb09686dc)

This is more of college textbook if you'd prefer that but the WebGL one is
more accessible and less dry.

# Physically Based Rendering & Real-Time Rendering

These discuss some state of the art techniques in computer graphics. I'm not
going to claim to have really read them but from what I've seen they are very
solid.

[https://www.amazon.com/Computer-Graphics-Principles-
Practice...](https://www.amazon.com/Computer-Graphics-Principles-
Practice-3rd/dp/0321399528/ref=as_li_ss_tl?s=books&ie=UTF8&qid=1484843854&sr=1-1&keywords=computer+graphics&linkCode=ll1&tag=akhn-20&linkId=ce5d19658fd2884b7b6bf7ceb09686dc)

[https://www.amazon.com/Physically-Based-Rendering-Third-
Impl...](https://www.amazon.com/Physically-Based-Rendering-Third-
Implementation/dp/0128006455/ref=as_li_ss_tl?s=books&ie=UTF8&qid=1484843804&sr=1-1&keywords=physically+based&linkCode=ll1&tag=akhn-20&linkId=1c04902237f3600b48d26a8d3e9f507b)

~~~
treehau5
Pardon me asking, Is there a way to save comments for later? This is gold, and
thank you for the resources. I have been very interested in graphics since I
took Computer Graphics in College (It felt like an applied linear algebra
course, but I loved it. It was subsequently the only course I felt like I was
challenged beyond my abilities -- I had to take the course twice to get the
credit, but I loved that class)

Also just kind of asking for curiosity, do you think a language like go or
rust will become popular for developing game engines? I realize game
programmers are anti-GC but what if GC technology advances that the
performance drop is negligible I wonder.

~~~
kartD
Tap the time (x mins/hours ago) of the comment you want to favourite. That
should take you to a page where you can favourite it

------
che_shirecat
I'm always impressed by how well hugely popular games like League and CSGO run
on bottom-tier machines. Maybe it really isn't all that impressive and its
just the number of poorly optimized bloatfests out there that skews my
perception

~~~
noio
Nope, as a gamedev I can say that it definitely _is_ impressive.

As with all optimization it is hard: as you try to squeeze more out of the
machine your code gets less and less elegant.

~~~
optionalparens
I agree as well. Most of my fastest, "best" code is awful to look at because
it has to be. It's full of crazy comments and hacks that were necessary for
the hardware, language, and time usually. I think as processing power has
increased, the low-level code is actually much less ugly. This is in no small
part due to astronomical leaps in game design, engine design, and development
time and other resources.

Still, in my experience any codebase that pushes a large amount of technical
boundaries tends to be full of huge "WTF is this" moments that require
explanation. It is an achievement if you can create a decently powerful
codebase that can survive rapid changes and additions. It's much more common,
but I've seen and worked on AAA codebases that would break if you blew on
them.

------
seanalltogether
It's interesting to me how a few of the effects are still baked into the
textures, which means they still can't let the user rotate their camera. Most
people feel there is an advantage to playing on the bottom side due to camera
perspectives, and allowing users to rotate their cameras could nullify this
disadvantage.

~~~
Asooka
They could just bake two versions for the two possible views and let you
select between them. Or even just always put the enemy team on top.

------
ryandrake
Title is a nice nod to the classic _A Trip Down the Graphics Pipeline_ by the
great Jim Blinn.

------
OnACoffeeBreak
The author answered a few question in this /r/gamedev thread:
[https://www.reddit.com/r/gamedev/comments/5otq0r/a_trip_down...](https://www.reddit.com/r/gamedev/comments/5otq0r/a_trip_down_the_lol_graphics_pipeline/)

------
sputknick
Along the lines of this, can anyone recommend a blog post, or an article that
demonstrates the mathematics that goes into game design? I want to show my 8
year old who wants to build games one day why math is important. Maybe
something that shows how matrices are used to show placement, or vectors to
drive movement?

~~~
teej
This may help [https://nrich.maths.org/1374](https://nrich.maths.org/1374)

------
mastax
See also the fantastic graphics studies produced by Adrian Courreges.

[http://www.adriancourreges.com/blog/2016/09/09/doom-2016-gra...](http://www.adriancourreges.com/blog/2016/09/09/doom-2016-graphics-
study/)

