I created GameSense, the first official statistics system for professional eSports. It's main game was Counter-Strike, but it also supported statistics for Counter-Strike: Source, Day of Defeat, and Halo. This system was launched on GotFrag, the premier website for professional eSports at the time. Through GameSense, player and team statistics were recorded for every major tournament and online league. This allowed us to generate aggregate stats for players and teams, and you could view these for an online season, and individual tournament, or all-time.

GameSense consisted of several components. There was an Eggdrop IRC bot written in Tcl/Tk that broadcasted matches over IRC while also acting as the main stats data parse. There was a match management backend written in PHP/MySQL that allowed you to record match stats live or record matches that already occurred by uploading log files. We had GameSense Live!, which was similar to live gamecasts on ESPN. Instead of having to be on IRC, you could see box scores and player statistics from a website that was dynamically updated on -the-fly with Ajax. We had servers written in C++ to handle receiving log files with speed, and then the main website used PHP and a PostgreSQL backend to display all of the player statistics.

GameSense Live, used for real-time match tracking

The system was a unanimous success. I ended up writing a few articles that performed statistical analysis, and it helped shape how players' skills were viewed and how strategies were formed.

When GotFrag was bought by Major League Gaming in June 2007, GameSense was essentially shut down as the focus became more on console games and only 1 or 2 people were retained at MLG.

It was unfortunate when MLG took over because GameSense 2.0 was nearly ready to launch and was poised to revolutionize eSports once again, consisting of 3 new components:

  • Fantasy Leagues: I had created a system with Jason Coene that would enable us to have fantasy leagues for all of our games, and it was flexible enough to support any game with ease
  • Team Tool: up until that point, GameSense only recorded statistics for official tournaments and leagues; our team tool was going to allow teams to record statistics for their own scrimmages automatically with an AMX Mod X plugin that I wrote
  • Advanced Statistics and Analysis: this was the component I was most excited about; the AMX Mod X plugin allowed us to log additional information that the standard Half-Life logs didn't provide:
    • X/Y/Z coordinates of every player action
    • 2D shot/frag charts (similar to basketball shot charts)
    • what players bought each round
With the advanced statistics and analysis, we were poised to generate all new sets of analysis, from the efficiency of 'buy rounds' to percentages on which bombsites were easiest to attack, analyzing specific areas of the map and which players/teams were most effective at these locations, as well as additional data to be passed to our GameSense Live! system.

This was the most rewarding project I have ever worked on, and I would love to get back into statistical analysis, whether it be for eSports or professional sports.


In 2003, Comb Hua (now at Gearbox Software) and I were involved in a Counter-Strike league that drafted players (CAL Draft). He ran a team, and I played in the league while also doing popular weekly writeups for the matches at Domain of Games. He told me of a grand idea to broadcast matches, complete with video, commentary, and statistics. I told him of my interest in statistics and that I would be interested in helping out. We started planning the system, named Ironcast at the time (the iron portion coming from his team name, the Iron Giants).

The initial website concept for Ironcast

Unfortunately, Comb had several other commitments and could not devote time to the project, so I asked his permission to continue it on my own and he agreed. I developed a statistics system as an Eggdrop IRC bot written in Tcl/Tk that would broadcast server events to IRC channels, as well as record the aggregate statistics for each match. This connected to a MySQL database and stored all of the results.

Once I was comfortable with this, I took the idea to Trevor Schmidt, Lee Chen, and Jason Coene, who ran GotFrag, which was the go-to website for competitive Counter-Strike. They loved the idea and I joined the team. Lee oversaw the project, Trevor and I came up with statistics, I coded the backend, and Coene handled the coding integration with GotFrag. In December 2004, we went live with the system, now called GameSense, at Winter CPL 2004 and it was a resounding success. The system remained until June 2007 when GotFrag was purchased by Major League Gaming.



Project Dates:
June 1, 2003 - June 6, 2007

My Role(s):
Lead Developer, Team Lead

Technologies Used:
AJAX  AMX Mod X  C  C++  Eggdrop  Javascript  jQuery  MySQL  PHP  PostgreSQL  Tcl/Tk  TCP/IP