Archive for October, 2011

From Struggle To Redemption

edit: Slides Posted!

Powerpoint here. Please install the font included in the zip first or the presentation will look super funky!

PDF here – some of the slides are mangled, and there are no notes, but it works without powerpoint.

 

This post is meant as an accompionment to my GDC Lecture: From Struggle To Redemption: Building the Chat Service for League of Legends. I reference a ton of different things in my lecture that I didn’t have time to dwell on, on, so they are listed in more detail here. Also I will edit this post and add the slides as soon as GDC allows it!

GDC Online Title Page

Chat Service Backend

XMPP – Open Standard Chat Protocol

EjabberD — Open Source Chat Implementation

Erlang – Language EjabberD is implemented in

MySQL — Open Source Database

 

Chat Frontend

Adobe Air –  Standalone flash runtime

Adobe Flex – Open source flash application framework

Adobe LCDS - LiveCycle Data Services – for communicating with the backend.

XIFF - open-source xmpp actionscript implementation

MVC - Model View Controller design pattern used in UI

 

Load Test Harness

Smack – XMPP client library in Java

Ec2 - Amazon’s Elastic Compute Cloud

 

Data Gathering

SNMP - Open Source Data Collection and Visualization

Cacti - Data Visualization tool

 

References

Technical Debt – Martin Fowler discusses the concept of technical debt.

Facebook And Erlang – Lecture about Facebook’s chat service.

Post to Twitter

Speaking at GDC Online!

Headed to GDC Online in Austin, TX next week to give a talk about the chat service for League of Legends! I will be speaking there Thursday afternoon at 2:30 come check it out!

GDC Online Title Page

My talk is a history of the problems we had launching and scaling our chat service and about how we overcame them. Many of the lessons we learned here ended being things that we could apply throughout the development of League of Legends. I also talk about the surprising ways in which UI design made a significant impact on the stability of our service.

A brief description is found on the GDC Online website:

DESCRIPTION:

Communication between players is one of the most important pieces of a social game. Yet, the nuanced relationship between a fully-featured chat service and the rest of a game are often overlooked.

In this lecture you’ll hear the story of how the chat in League of Legends’ PvP.Net was launched and how it evolved over time. We had three expectations for our chat service: that it would be scaleable, not impact stability, and the UI would meet the player’s needs.

We initially failed on all three fronts. But that’s not the end of the story.

We were able to turn around to achieve and surpass all three of our initial expectations. This talk will cover the surprising emergent issues and mistakes that caused these problems, and will detail the specific solutions that were implemented in order to solve them during a live product.
TAKEAWAY: Attendees will come away with an understanding of the pitfalls and challenges of building a scalable, user-friendly chat service. Attendees will gain an understanding of how significantly UX design and user behavior can impact scale issue. They will also gain insight into how to structure their UI code to leverage rapid-iteration on a live product. In addition, attendees will learn from case studies on specific chat UI features that worked well, and those that did not.
INTENDED AUDIENCE: No prerequisite knowledge is needed and there will be takeaways for all disciplines during the lecture. However, the lecture will be especially useful for programmers interested in scalability, UI programmers, and UI/UX Designers.

Also, it seems like Riot is totally taking over this conference! We have a total of 6 different talks we are doing there! Check ‘em out:

“Cloud Gaming: Present and Future” with Brandon “Ryze” Beck

Letting Go: Creating Self-Managed, Self-Directed Teams by Travis “Volibar” George

Designers are Human Too – Causes of Poor Design Decisions by Tom “Zileas” Cadwell

League of Legends: What it Means to Be Player-Focused by Steve “Pendragon” Mescon

and Putting the Plane Together Midair by Andrew Woo

 

This talk is special for me because, as I said in a previous post, I absolutely love GDC, and it has always been a career goal of mine to speak there! I was ecstatic when I found out my talk had been accepted. But, I did not know what I was in for!! Preparing for an hour long technical GDC talk is a ton of work. I really was not prepared for how much time I needed to put into this in order to make sure it was a truly quality presentation. During this time I found my friend Glenn Fielder’s blog post How to Prepare a talk for GDC an awesome read, and extremely helpful. Thank you Glen!

The subject matter is not really exactly what I’ve always envisioned doing at GDC. I’m not giving a highly detailed technical talk about a cool system that I built. Instead, I’m telling a more broad story about a rather large system, outside my specialty, that a whole team built. So I had to do a lot of work researching, and interviewing members of my team in order to get a deep enough understanding to be able to talk at least somewhat intelligently about it.

Furthermore, this was a talk about the problems we had and the mistakes that we made. It’s one thing to be humble and talk about your own mistakes, its a much different thing to have to talk publicly about the mistakes your teammates, whom you have a lot of respect for, might have made. I needed to be truthful, and share enough of our problems so that others could learn from them, but also respectful and fair to those who came before and did the really tough work of getting this system up and running under not the best of circumstances.

Overall, I think that the presentation has come together quite well and I look forward to giving it next week! An internal rehearsal at Riot was thankfully well received, and I was much more nervous about the internal presentation than the actual GDC one. But, I’m not sure I’m gong to jump at the opportunity to do another lecture like this anytime soon! (But, I hear they do get easier to prepare for!)

I will post my slides and notes up here shortly after GDC (as soon as they let me!)

Post to Twitter