   GD Showcase Statistics
  Wrote a quick HTML-scraper program to run some basic statistics on the GD Showcase entries. Here are the results:Username : Downloads (Games)Battagline : 45276 (12)chapmast : 14148 (1)HopeDagger : 10817 (5)H_o_p_s : 8377 (4)Patbert : 7761 (6)TANSTAAFL : 4319 (9)Sir Sapo : 4127 (1)Laz : 3889 (1)Ravuya : 3732 (11)MDickie : 3551 (3)Evil Steve : 2855 (4)urs : 2539 (1)FenrirWolf : 2354 (2)capn_midnight : 2290 (8)Degra : 2247 (2)EnemyBoss : 2201 (5)Stompy9999 : 2192 (6)Mark Currie : 1998 (1)noaktree : 1928 (2)Prog101 : 1867 (3)vetroXL : 1601 (1)LamerGamer : 1371 (1)Stephen R : 1215 (3)EDI : 1077 (1)Tera_Dragon : 1038 (2)Lab-Rat : 1005 (2)Samith : 994 (2)ildave1 : 952 (2)falkone : 931 (1)Rixter : 928 (2)Downer : 920 (2)Dave : 845 (2)PennstateLion : 831 (3)ManaStone : 811 (2)superlubo : 769 (1)johnhattan : 756 (1)syn9 : 746 (1)EvDaedalus : 734 (2)Rob Loach : 731 (2)SiCrane : 731 (1)Programmer16 : 730 (2)Eddie Hicks : 708 (2)Scet : 699 (2)Jesse_P : 681 (3)markr : 678 (2)HandCraftedRadio : 671 (3)denthorq : 651 (1)Mithrandir : 638 (1)ols : 573 (1)meix : 572 (2)Emmanuel Deloget : 558 (1)Pouya : 544 (1)boto : 525 (1)Jason Z : 518 (2)Extrarius : 483 (1)rpg_code_master : 482 (1)xaver : 458 (2)rick_appleton : 454 (1)Kuro : 451 (1)TyroWorks : 445 (2)jarthur : 413 (1)Herb3 : 393 (1)Eleventy : 382 (1)Asheh : 381 (1)jochenstier : 366 (1)Aardvajk : 365 (1)RingTek : 352 (1)JTippetts : 350 (1)Trapper Zoid : 348 (1)kentcb : 343 (1)Brandon N : 338 (1)Ceoddyn : 331 (1)Colin Jeanne : 329 (1)lethalhamster : 328 (1)coldacid : 327 (2)DavidNeal : 306 (1)chadmeyers : 287 (1)modemancer : 287 (1)deurrific : 285 (1)SDyer : 282 (1)cm2 : 279 (1)a_insomniac : 275 (1)DecipherOne : 275 (1)The Forgotten Mindset : 269 (1)3dmodelerguy : 263 (1)Etherstar : 263 (1)robpers2003 : 262 (1)AntiGuy : 244 (1)SteelGolem : 243 (1)Crypter : 235 (1)kylecrass : 234 (1)deerslyr1 : 234 (1)Xloner12 : 228 (1)Mushu : 213 (1)snard6 : 212 (1)Namatsu : 210 (1)syn_9 : 209 (1)jazzuo : 201 (1)DukeAtreides076 : 190 (1)chronicle17 : 184 (1)Sep : 182 (1)Verg : 173 (1)Stagz : 161 (1)trailervoice : 149 (1)fortia : 146 (1)sprite_hound : 142 (1)jasong : 139 (1)Drilian : 138 (1)jman2050 : 138 (1)superpig : 135 (1)eppo : 132 (1)valles : 132 (1)graveyard filla : 129 (1)PerO : 128 (1)PumpkinPieman : 121 (1)Black Knight : 120 (1)xtBones : 113 (1)diablo_tk : 111 (1)HeftiSchlumpf : 96 (1)DrSizzla : 89 (1)Mak : 81 (1)staaf : 41 (1)dwarfsoft : 31 (1)volking : 22 (1)if you would like to play around with my scraper, here's the C# code. Sorry for the sloppy processing, it's not meant to be a long-term project:using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Net;using System.Text;using System.Text.RegularExpressions;namespace GDS_Showcase_Stats{    class Program    {   static void Main(string[] args)   {  var data = "";  //cache the page locally so that we don't keep pinging the server every time we want to  //run a test on the data  if (!File.Exists("data.txt"))  { var req = HttpWebRequest.Create("http://www.gamedev.net/community/gds/"); var rep = req.GetResponse(); using (var reader = new StreamReader(rep.GetResponseStream())) {data = reader.ReadToEnd();File.WriteAllText("data.txt", data); }  }  else data = File.ReadAllText("data.txt");  var tablePat = new Regex("Newest Updates.*?</table>", RegexOptions.Singleline);  var table = tablePat.Match(data).Value;  var rowPat = new Regex("<tr>.*?</tr>", RegexOptions.Singleline);  var cellPat = new Regex("<td.*?</td>", RegexOptions.Singleline);  var titlePat = new Regex("<b>.*?</b>", RegexOptions.Singleline);  var authorPath = new Regex("by .*?<", RegexOptions.Singleline);  var numPat = new Regex(" \\d+? ");  var skip = true;  var numGames = new Dictionary<string, int[]>();  foreach (var match in rowPat.Matches(table))  { if (skip)skip = false; else {//strip out a bunch of HTML that I didn't want to figure out a more complex regex for.var matches = cellPat.Matches(match.ToString());var title = titlePat.Match(matches[0].Value).Value;title = title.Substring(title.IndexOf('>', 5) + 1);title = title.Substring(0, title.IndexOf('<'));var author = authorPath.Match(matches[0].Value).Value;author = author.Substring(3, author.Length - 4);var dateStr = matches[1].Value;dateStr = dateStr.Substring(dateStr.IndexOf(';') + 1);dateStr = dateStr.Substring(0, dateStr.IndexOf('&'));var date = DateTime.Parse(dateStr);var numStr = numPat.Match(matches[2].Value).Value;numStr = numStr.Substring(numStr.IndexOf(';') + 1);numStr = numStr.Substring(0, numStr.IndexOf('&'));int num = int.Parse(numStr);///Do your calculations per record hereif (!numGames.ContainsKey(author))    numGames.Add(author, new int[2]);numGames[author][0]++;numGames[author][1] += num; }  }  //a little sorting  var orderedPairs = (from x in numGames  select new   { Author = x.Key, Games=x.Value[0], Downloads = x.Value[1] }  ).OrderByDescending(y => y.Downloads);  //and some output  var sb = new StringBuilder();  foreach (var pair in orderedPairs) sb.AppendFormat("{0} : {2} ({1})\r\n", pair.Author, pair.Games, pair.Downloads);  File.WriteAllText("res.txt", sb.ToString());   }    }}
  I'm more popular than MDickie, and I don't get GameTunnel interviews? Lame. [wink]Obviously I need to get around to actually finishing more games soon. For some additional data, the games that I've posted to GDNet Showcase (Glow, CSRPG 2, CSRPG 1, Freezer 2, Muffins and Sloplifter) have been downloaded 5888 times in total from my own website.The Showcase is pretty good by comparison (38% of my total downloads)! I wish it had a rotating "Game of the Day" feature so that older submissions wouldn't drop into obscurity, but there are an immense amount of people on these forums and it's easy for me to forget that.[Edited by - Ravuya on April 28, 2009 3:29:44 PM];  Ha, I've actually wanted to see some statistics on the GD Showcase for a while.  I'm only 6 downloads away from 1000!  I can't believe it's been five years since I first uploaded a game to the showcase.   ;  Some yearly and monthly upload activity stats. 2005 was a good year.2004 : 232005 : 972006 : 502007 : 242008 : 212009 : 3 6/2004 : 5 7/2004 : 1 8/2004 : 6 9/2004 : 510/2004 : 211/2004 : 312/2004 : 1 1/2005 : 6 2/2005 : 6 3/2005 : 12 4/2005 : 7 5/2005 : 5 6/2005 : 12 7/2005 : 3 8/2005 : 6 9/2005 : 1510/2005 : 1011/2005 : 812/2005 : 7 1/2006 : 6 2/2006 : 1 3/2006 : 6 4/2006 : 4 5/2006 : 2 6/2006 : 2 7/2006 : 6 8/2006 : 7 9/2006 : 710/2006 : 111/2006 : 112/2006 : 7 1/2007 : 7 2/2007 : 1 3/2007 : 2 4/2007 : 1 5/2007 : 3 6/2007 : 2 7/2007 : 2 8/2007 : 2 9/2007 : 210/2007 : 2 1/2008 : 1 2/2008 : 6 3/2008 : 2 4/2008 : 3 6/2008 : 2 8/2008 : 310/2008 : 112/2008 : 3 1/2009 : 1 3/2009 : 2;  I can honestly say I don't recognise half of those names.  Are these all-time statistics?   ;  yes, the feature only came out in mid 2004   ;Quote:Original post by capn_midnightyes, the feature only came out in mid 2004Actually it's been here since june of '00, it's just been wiped clean and started fresh since then. (when they upgraded to the new site)http://web.archive.org/web/20000815235931/http://www.gamedev.net/community/gds/I remember because i had a game or two on the old GDS i never bothered to copy over;  Wow, cool stuff Capn'Tip of the hat to you sir!   