League of Legends team member Joel Anderson has posted the first of a two-part article about the "Art of Fog of War" on the official site. Fog of war deals with the concept that one can only see as far as one can logically see. Check out how this factors into League of Legends below.
Hi, my name is Joel Anderson, a game programmer at Riot Games, and I'll be talking a little bit about myself and what I work on.
Who I am: I first realized my love for video games on the day my dad brought home my first PC (286-12). One day while indiscriminately running programs, as you do when you're 7 years old (much to the annoyance of my dad), I stumbled upon a program known as basic. I soon realized that I could use this to create whatever-game-I-wanted, and I began to tinker with it. From that moment on, I knew I wanted to be a game programmer. I was constantly writing little games, leveling up my programming skills.
I won scholarship to a computing high-school and finished at the top of my programming classes. A great thing about my high school is that a couple of friends and I were given private access to the computing rooms to play and write games. One of the more memorable games we attempted to create was a Real Time Strategy Lego™ game. I worked on many more small game projects at Edith Cowan University where I also taught graphics programming. My thesis was published on Gamasutra (here). It's essentially an improvement to the algorithms used in engines like the Quake series.
In 2004, I started work at Bluetongue, a THQ studio in Melbourne, on some un-released projects and a game called Barnyard. In 2006, I started work at Perpetual on the Star Trek MMO game. The game was looking awesome, and the Star Trek team was performing extremely well. After some time, I found Riot Games. They offered a position for me to work on this DotA style real time strategy game with massively multiplayer online characteristics; how could I possibly refuse? I have now worked here since February, 2008.
What do I do today? Having worked on pretty much every piece that makes a game tick, I'm a pretty versatile programmer. I've worked on collision detection, fog of war, path finding, graphics, user interface, tools, artificial intelligence, spells, game mechanics, guns, physics, etc... In fact, it's easier to mention what I haven't worked on which is platform code (ie the web-interface, forums etc...). I'm also very good with modern language design principles and enjoy following the progress of the D programming language.
We have three main engineering teams:
- The Core team works on the low level fundamental aspects of the game such as sending data over the internet, user interface, transition to other languages, and making stuff secure.
- The Gameplay team works on making the game fun such as programming in buffs, spells, AI etc...
- The Platform team works on creating the interface between the website and the game, game connections and logins, matchmaking, statistic tracking, account management, etc.
Because I switch teams every other week due to my particular skill set, I can't really say that I belong exclusively to the Core or Gameplay team.
What we do: Let me give a brief introduction what we programmers do on a daily basis. Putting it simply, we solve problems. We figure out why the AI suddenly decided to attack its own team, how to get an art asset into the game, or how to implement some feature that the design team has requested. Every day brings new problems and new solutions.
The design team will generally hand us an overview of something they want in the game, and we figure out the details. I guess, in essence, we are micro designers as well as problem solvers. Fog of War is one such system I have worked on.
Fog of War (FOW):
The main focus of Riot games has always been to create an extremely fun game. So what's more fun than pouncing on your best friend from out of nowhere and PWNing him before he even has a chance to respond? Well I'll tell you; it's seeing him fall for it a second time.
Fog of war is a simple concept that shrouds the map in darkness and does not allow the player to be able to see any further than his units' and structures' area of vision. FOW has been implemented in our game in a unique way that prevents hacking and also improves network performance. I'll be talking about that in my next developer's blog. Stay tuned to find out more about how we have implemented Fog of War into our game.
We'll be posting part two of this article tomorrow so stay tuned!