<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">John L. Miller&amp;#39;s Blog: Networking and more</title><subtitle type="html">John L. Miller&amp;#39;s weblog covering his work, research, and programming-related interests</subtitle><id>http://blogs.msdn.com/b/johnmil/atom.aspx</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/b/johnmil/atom.aspx" /><generator uri="http://telligent.com" version="5.6.583.21163">Telligent Community 5.6.583.21163 (Build: 5.6.583.21163)</generator><updated>2007-01-06T00:23:00Z</updated><entry><title>Microsoft Touch Mouse: Engadget Readers' Choice Award!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2012/02/24/microsoft-touch-mouse-engadget-readers-choice-award.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2012/02/24/microsoft-touch-mouse-engadget-readers-choice-award.aspx</id><published>2012-02-24T17:30:00Z</published><updated>2012-02-24T17:30:00Z</updated><content type="html">&lt;p&gt;Engadget recently announced that the Microsoft Touch&amp;nbsp;Mouse was given the &lt;a title="2011 readers' choice award" href="http://www.engadget.com/2011readerschoice" target="_blank"&gt;2011 readers' choice award&lt;/a&gt; for best peripheral. Nice!&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here's &lt;a title="a story" href="http://research.microsoft.com/en-us/news/features/touchmouse-072611.aspx" target="_blank"&gt;a story&lt;/a&gt; that was posted on research.microsoft.com about the touch mouse a while back. Ah, the memories. Touch mouse was a fun project, it was great getting to watch it go from research project through prototype to the final product.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10272514" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="Touch Mouse" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Touch+Mouse/" /></entry><entry><title>Microsoft Touch Mouse Sensor API</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2011/10/21/microsoft-touch-mouse-sensor-api.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2011/10/21/microsoft-touch-mouse-sensor-api.aspx</id><published>2011-10-21T14:32:00Z</published><updated>2011-10-21T14:32:00Z</updated><content type="html">&lt;p&gt;&lt;a title="The CID Team" href="http://research.microsoft.com/CID" target="_blank"&gt;The CID Team&lt;/a&gt;&amp;nbsp;worked on the touch tracking and gesture recognizer for the Microsoft Touch Mouse. This was based upon the research done for the Mouse 2.0 project by Microsoft Research and the Microsoft Hardware Team, including the Applied Sciences group.&lt;/p&gt;
&lt;p&gt;The Touch Mouse is a wireless mouse with an integrated multi-touch sensor. The mouse takes a snapshot of the sensor every 8 or so milliseconds, cleans it up, and sends it to the host computer. If installed, IntelliPoint software on Windows 7 processes these bitmaps, tracking fingertips, recognizing gestures, and sending appropriate commands to Windows based on the gestures made.&lt;/p&gt;
&lt;p&gt;The picture below shows an example frame of data from the sensor, with annotations showing where the software believes fingertips are.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-55-97/4062.Sensor2.jpg"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-55-97/4062.Sensor2.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The sensor images usually show up around 100 times a second.&lt;/p&gt;
&lt;p&gt;If you've got a touch mouse and want to take a crack at writing your own applications which process the sensor, now you can! Microsoft recently released the 'Touch Mouse Sensor API,' which includes libraries to read data from the Touch Mouse, and several example projects showing how to process and render the data. Note that the API is intended for research / experimentation purposes only, NOT to release production software. See the EULA for more details.&lt;/p&gt;
&lt;p&gt;The sensor API is available from &lt;a href="http://research.microsoft.com/downloads" target="_blank"&gt;http://research.microsoft.com/downloads&lt;/a&gt;. You can either visit the website and search for 'Touch Sensor API', or click on the following links to get it:&lt;/p&gt;
&lt;p&gt;&lt;a title="32-bit Touch Mouse Sensor API" href="http://research.microsoft.com/en-us/downloads/8ca8f8d1-c0b8-43a3-a519-0276195a6eec" target="_blank"&gt;32-bit Touch Mouse Sensor API&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="64-bit Touch Mouse Sensor API" href="http://research.microsoft.com/en-us/downloads/8e2847f1-0e2d-48d3-b924-71400b358c17" target="_blank"&gt;64-bit Touch Mouse Sensor API&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you have questions, feel free to post them here. No promises, but I'll answer them if I can. Enjoy!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10228661" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="Programming" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Programming/" /><category term="Touch Mouse" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Touch+Mouse/" /></entry><entry><title>Recent research results</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2011/09/08/research-research-results.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2011/09/08/research-research-results.aspx</id><published>2011-09-08T16:55:00Z</published><updated>2011-09-08T16:55:00Z</updated><content type="html">&lt;p&gt;Hard to believe it's been two years since I posted! I expect to be writing more regularly moving forward. Not that the bar is very high at this point :)&lt;/p&gt;
&lt;p&gt;Over the past few years I've helped write a few papers related to distributed virtual environments in various workshops. In case you're interested, here's pointers:&lt;/p&gt;
&lt;p&gt;&lt;a title="The Near-Term Feasibility of P2P MMOG's" href="http://research.microsoft.com/apps/pubs/default.aspx?id=140999" target="_blank"&gt;The Near-Term Feasibility of P2P MMOG's&lt;/a&gt;.&amp;nbsp; There's been a lot of research on creating peer-to-peer distributed virtual environments, e.g. a P2P version of World of Warcraft. Using World of Warcraft traffic patterns and UK consumer broadband capabilities, this paper suggests that it's not possible to operate a pure P2P massively multiplayer game on today's internet.&lt;/p&gt;
&lt;p&gt;&lt;a title="Group Movement in World of Warcraft Battlegrounds" href="http://research.microsoft.com/apps/pubs/default.aspx?id=140998" target="_blank"&gt;Group Movement in World of Warcraft Battlegrounds&lt;/a&gt;&amp;nbsp;and &lt;a title="Avatar Movement in World of Warcraft Battlegrounds" href="http://research.microsoft.com/apps/pubs/default.aspx?id=103338"&gt;Avatar Movement in World of Warcraft Battlegrounds&lt;/a&gt;. These two papers examine movement of actual player avatars in World of Warcraft, specifically in battlegrounds. They suggest that previous models of avatar movement are inconsistent with observed behaviors. This is relevant for tasks such as workload evaluation and simulation of online games.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10207977" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="P2P" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/P2P/" /><category term="Networking" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Networking/" /><category term="Virtual Environments" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Virtual+Environments/" /><category term="Network Simulation" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Network+Simulation/" /><category term="World of Warcraft" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/World+of+Warcraft/" /></entry><entry><title>massively multiplayer online game site</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2009/04/12/massively-multiplayer-online-game-site.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2009/04/12/massively-multiplayer-online-game-site.aspx</id><published>2009-04-12T10:20:00Z</published><updated>2009-04-12T10:20:00Z</updated><content type="html">&lt;P&gt;I tripped across &lt;A href="http://www.nickyee.com/daedalus" mce_href="http://www.nickyee.com/daedalus"&gt;the daedalus project&lt;/A&gt;&amp;nbsp;this morning while I was looking for player statistics for World of Warcraft. What a great site! The author, Nick Yee, has apparently been doing user surveys to MMOG players for years, and compiling various articles and statistics based upon them. The ones I've looked at so far are quite interesting!&lt;/P&gt;
&lt;P&gt;Unfortunately it looks like I discovered his site a little late. There was a &lt;A href="http://www.nickyee.com/daedalus/archives/001647.php" mce_href="http://www.nickyee.com/daedalus/archives/001647.php"&gt;post on March 8th &lt;/A&gt;indicating he's not going to be updating it anymore. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;Nevertheless, a treasure trove of data to comb through. Thank you Nick Yee, for putting this together and leaving it up!&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9546235" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>Interesting Cheating Talk</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2009/03/19/interesting-cheating-talk.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2009/03/19/interesting-cheating-talk.aspx</id><published>2009-03-19T11:48:00Z</published><updated>2009-03-19T11:48:00Z</updated><content type="html">Jon Crowcroft pointed me at an extremely interesting &lt;A class="" href="http://www.ted.com/index.php/talks/dan_ariely_on_our_buggy_moral_code.html" mce_href="http://www.ted.com/index.php/talks/dan_ariely_on_our_buggy_moral_code.html"&gt;talk by Dan Ariely&amp;nbsp;on Cheating&lt;/A&gt;. Take a peek if you're interested in cheating and cheater behavior, especially as influenced by group dynamics, it'll be 15 minutes well spent.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9489472" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="Gaming" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Gaming/" /><category term="Cheating" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Cheating/" /></entry><entry><title>Second Life paper answers many questions</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2008/12/17/second-life-paper-answers-many-questions.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2008/12/17/second-life-paper-answers-many-questions.aspx</id><published>2008-12-17T13:07:00Z</published><updated>2008-12-17T13:07:00Z</updated><content type="html">&lt;p&gt;A recent paper by Matteo Varvello et. al. answers a lot of the questions I've found myself asking about Second Life and its community. The paper &lt;i&gt;&lt;a href="http://www.eurecom.fr/%7Evarvello/pdf/964829156.pdf" title="Is There Life in Second Life?" target="_blank" mce_href="http://www.eurecom.fr/~varvello/pdf/964829156.pdf"&gt;Is There Life In Second Life?&lt;/a&gt;&lt;/i&gt; and if you're interested in Second Life's popularity, community, and performance, it is a must-read! &lt;/p&gt;
&lt;p&gt;A quick inspection of recent web articles about Second Life shows a common sentiment that perhaps popularity its is waning - or was never as great as total user account statistics suggested. When user comments are enabled on these articles, you also see that whatever their numbers, Second Life aficionados are extremely vocal when defending the popularity and functionality of their world. &lt;/p&gt;
&lt;p&gt;It'll be interested to see how the&amp;nbsp;Second Life community&amp;nbsp;reacts to this paper.&lt;/p&gt;
&lt;p&gt;It presents a lot of salient statistics about how many users are online at a time, and what those users are up to - at a macroscopic level. &lt;/p&gt;
&lt;p&gt;So check it out! &lt;a href="http://www.eurecom.fr/%7Evarvello/pdf/964829156.pdf" title="Is There Life in Second Life?" target="_blank" mce_href="http://www.eurecom.fr/~varvello/pdf/964829156.pdf"&gt;&lt;i&gt;Is There Life In Second Life?&lt;/i&gt;&lt;/a&gt;&amp;nbsp;is extremely accessible, so don't worry about needing a PhD to make heads or tails of it :)&lt;/p&gt;
&lt;p mce_keep="true"&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9230590" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="Virtual Environments" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Virtual+Environments/" /><category term="Cyberspace" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Cyberspace/" /><category term="Second Life" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Second+Life/" /></entry><entry><title>Microsoft Research AutoCollage - try it now!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2008/09/04/microsoft-research-autocollage-try-it-now.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2008/09/04/microsoft-research-autocollage-try-it-now.aspx</id><published>2008-09-04T12:39:00Z</published><updated>2008-09-04T12:39:00Z</updated><content type="html">&lt;P&gt;I work on an incubation team at Microsoft Research in Cambridge, UK. Today we released our first public offering, AutoCollage. In a nutshell, AutoCollage lets you select a folder containing images, and creates a collage synthesized from interesting bits of some of the pictures in that folder. You can see examples of collages &lt;A class="" href="http://research.microsoft.com/AutoCollage/press/Gallery.aspx" target=_blank mce_href="http://research.microsoft.com/AutoCollage/press/Gallery.aspx"&gt;here&lt;/A&gt;, they're pretty cool IMO. &lt;/P&gt;
&lt;P&gt;You can &lt;A class="" href="http://research.microsoft.com/AutoCollage/Download.aspx" target=_blank mce_href="http://research.microsoft.com/AutoCollage/Download.aspx"&gt;download AutoCollage&lt;/A&gt; and try it for thirty days free. If you like it, you can buy it.&lt;/P&gt;
&lt;P&gt;AutoCollage works best on Vista, but you can use it on Windows XP SP2 and later, as long as you've got the .NET framework 3.0 or later installed. &lt;/P&gt;
&lt;P&gt;AutoCollage is based on a lot of &lt;A class="" href="http://research.microsoft.com/vision/cambridge/i3l/AutoCollage/default.htm" target=_blank mce_href="http://research.microsoft.com/vision/cambridge/i3l/AutoCollage/default.htm"&gt;cool research technology from Microsoft&lt;/A&gt;. &lt;A class="" href="http://research.microsoft.com/~carrot/" target=_blank mce_href="http://research.microsoft.com/~carrot/"&gt;Carsten Rother&lt;/A&gt; developed the primary AutoCollage algorithm, incorporating research from Microsoft Research Asia, Redmond, and Cambridge. It's truly a global effort :)&lt;/P&gt;
&lt;P&gt;I hope you enjoy it!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8924105" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="Incubation" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Incubation/" /><category term="AutoCollage" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/AutoCollage/" /></entry><entry><title>Crashing WoW servers</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2008/07/30/crashing-wow-servers.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2008/07/30/crashing-wow-servers.aspx</id><published>2008-07-30T11:35:00Z</published><updated>2008-07-30T11:35:00Z</updated><content type="html">&lt;P&gt;Yesterday&amp;nbsp;I was forwarded a link about retirement of a long-time player from World of Warcraft. While that in itself might be interesting, the really juicy bit was the way he went out: with a mighty 'crash' from the server. Scalability issues, or something else?&lt;/P&gt;
&lt;P&gt;Check out &lt;A class="" href="http://www.twentytotems.com/2008/06/boom-is-dead-warrior-who-tanked-server.html" mce_href="http://www.twentytotems.com/2008/06/boom-is-dead-warrior-who-tanked-server.html "&gt;Boom's Goodbye Blog&lt;/A&gt;, where he describes his farewell, including the convergence of more than 1,000 players in a single capital city, and three different 40-party groups (in addition to lots of individuals) engaging in combat.&lt;/P&gt;
&lt;P&gt;It's nice to see that WoW can scale past the 100-200 player limit (within mutual interaction range) I had privately hypothesized. It would be very interesting to find out exactly how many it could support sustained!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8791234" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="Gaming" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Gaming/" /><category term="Virtual Environments" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Virtual+Environments/" /><category term="World of Warcraft" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/World+of+Warcraft/" /></entry><entry><title>DVE Scalability - More to be done?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2008/07/22/dve-scalability-more-to-be-done.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2008/07/22/dve-scalability-more-to-be-done.aspx</id><published>2008-07-22T13:53:00Z</published><updated>2008-07-22T13:53:00Z</updated><content type="html">&lt;P&gt;Much of my last year has been spent reading about distributed virtual environment scalability. As it turns out, perhaps it shouldn't have been.&lt;/P&gt;
&lt;P&gt;A lot of research papers I've read begins like this:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;"DVE's consume loads of bandwidth, and there are&amp;nbsp;lots of opportunities to improve their network usage." &lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Network games researchers have source access to - such as Quake III - have different behavior than the latest generation of multiplayer online games. Being an avid player of World of Warcraft, I finally spent some time analyzing traffic usage for a few basic scenarios:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Sitting in a capital city with a few hundred other players&lt;/LI&gt;
&lt;LI&gt;Playing a battleground with 79 other players&lt;/LI&gt;
&lt;LI&gt;Fighting in close proximity to 30+ players and several computer-controlled avatars. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I was shocked at how LOW the traffic usage was. Even when I was beating on the keyboard and mouse along with 30 other players next to each other in the battleground, my upload bandwidth stayed below 5 kbps, and download below 50 kbps. Better still, when I moved away from other players - out of interaction and viewing range - I stopped getting information about them. &lt;/P&gt;
&lt;P&gt;There could still be issues with massively scaled games where thousands of players will be within interaction range of each other, but it's unclear if other computing resources (such as video cards) can keep up with the demand of displaying those avatars.&lt;/P&gt;
&lt;P&gt;Does this make scalability research in DVE's obsolete? Absolutely not, but it does mean we need to be careful about what we assume is and is not already implemented. &lt;/P&gt;
&lt;P&gt;I wonder if Blizzard talks to researchers about their Networking design...&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8763659" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="Networking" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Networking/" /><category term="Virtual Environments" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Virtual+Environments/" /><category term="World of Warcraft" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/World+of+Warcraft/" /></entry><entry><title>Distributed Virtual Environment Scalability</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2008/01/10/distributed-virtual-environment-scalability.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2008/01/10/distributed-virtual-environment-scalability.aspx</id><published>2008-01-10T11:26:00Z</published><updated>2008-01-10T11:26:00Z</updated><content type="html">&lt;P&gt;In the previous post I parrotted scalability figures for World of Warcraft. While investigating DVE's, I tripped across interesting figures for WoW and several other environments.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Halo-3&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;From &lt;A class="" href="http://www.microsoft.com/presspass/press/2007/oct07/10-04Halo3FirstWeekPR.mspx?rss_fdn=Press%20Releases" mce_href="http://www.microsoft.com/presspass/press/2007/oct07/10-04Halo3FirstWeekPR.mspx?rss_fdn=Press%20Releases"&gt;this press release&lt;/A&gt;, we can see that in the first week of Halo-3's release,&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;2.7 million people played Halo-3 online&lt;/LI&gt;
&lt;LI&gt;They logged 40 million hours of online play that week&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;That's absolutely astonishing for a single game! 40 million hours is 19,230 US person YEARS of work, in a week! &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;World of Warcraft&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;From &lt;A class="" href="http://www.nielsen.com/media/toptens_games.html" mce_href="http://www.nielsen.com/media/toptens_games.html"&gt;Neilsen video game figures&lt;/A&gt;&amp;nbsp;for September 2007, we see that&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;WoW was the most popular PC game by a factor of 3&lt;/LI&gt;
&lt;LI&gt;The average player played 1051 minutes per week - 17.5 hours!&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;If the math holds up, that's 10 million subscribers * 17.5 hours/wk = 175 MILLION hours of WoW play per week, or 84,135 US person years of work equivalent for each week of play. &lt;/P&gt;
&lt;P&gt;As a side note, "&lt;A class="" href="http://publik.tuwien.ac.at/files/pub-et_12119.pdf" mce_href="http://publik.tuwien.ac.at/files/pub-et_12119.pdf"&gt;Traffic Analysis and Modeling for World of Warcraft&lt;/A&gt;" describes WoW traffic overall, and says the median download bandwidth for a player is 6.9 kbps, and the median uplink is 2.1 kbps. If we accept the peak number of simultaneous active users as 900,000, that's a total of 6.2 Gbps peak average upload from WoW datacenters for gameplay. Imagine all the processing that goes into calculating what's being communicated... Zowie!&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Second Life&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;It's difficult to find reliable statistics for Second Life, and I haven't gone far into the research literature. From my own observations and inferences, and a quick search on the internet&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Online user population tends to be between 25,000 and 50,000 at the times I connect.&lt;/LI&gt;
&lt;LI&gt;A given region (a land parcel whose simulation is handled by a single server, and whose inhabitants can interact) looks able to support no more than one or two hundred users. I've seen limits of 63 attendees at invitation-only performance events, for 'technical reasons', which makes me wonder if perhaps the limit isn't 64 users per region? &lt;/LI&gt;
&lt;LI&gt;Checking just now, it says 1,271,025 users have logged in in the last 60 days. Several months ago I saw a figure of&amp;nbsp;25,000 to 50,000 new accounts per day. If those numbers hold true on an average day today, and each new user logs in once, that would be 1.8M to 3M unique user logins. This leaves me uncertain of the active returning population in Second Life. Does anyone have better figures?&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Anyways, enough random numbers for now. If you have anything to add, please leave a comment or send me mail, this sort of stuff is fascinating for me.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7052467" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="Gaming" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Gaming/" /><category term="Virtual Environments" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Virtual+Environments/" /><category term="Cyberspace" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Cyberspace/" /><category term="World of Warcraft" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/World+of+Warcraft/" /><category term="Second Life" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Second+Life/" /><category term="Halo-3" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Halo_2D00_3/" /></entry><entry><title>World of Warcraft hits 9M + active subscribers!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2008/01/02/world-of-warcraft-hits-9m-active-subscribers.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2008/01/02/world-of-warcraft-hits-9m-active-subscribers.aspx</id><published>2008-01-02T13:06:00Z</published><updated>2008-01-02T13:06:00Z</updated><content type="html">&lt;P&gt;The holidays gave me a chance to re-acquaint myself with World of Warcraft (WoW). I have to say, it's still the single most impressive online game I've ever seen. For my money, it does everything right. It literally *is* for my money, since I'm one of those paying 9 million subscribers.&lt;/P&gt;
&lt;P&gt;I'm researching distributed virtual environment (DVE) scalability. As part of that, I was curious about the populations in WoW, both numbers supported per server, and total number of simultaneously active users. "&lt;A class="" href="http://www.cs.du.edu/~chrisg/publications/pittman-netgames07.pdf" target=_blank mce_href="http://www.cs.du.edu/~chrisg/publications/pittman-netgames07.pdf"&gt;A Measurement Study of Virtual Populations in Massively Multiplayer Online Games&lt;/A&gt;" provides a great peek into WoW, based on results from the CensusPlus UI add-in for WoW. Based on that paper, and on CensusPlus results published at &lt;A href="http://www.warcraftrealms.com/"&gt;http://www.warcraftrealms.com/&lt;/A&gt;, it appears:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;There's a peak of almost 900,000 simultaneous users logged in and playing in the US and EU.&lt;/LI&gt;
&lt;LI&gt;Average daily populations on a given server fluctuate by around a factor of 4-5 between minimum and maximum number of players online.&lt;/LI&gt;
&lt;LI&gt;The peak number of simultaneous users on a given server appears to be around 4,000.&lt;/LI&gt;
&lt;LI&gt;Data on maximum users in a zone (able to interact directly) isn't provided, but appears to be on the order of a couple hundred.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I've&amp;nbsp;downloaded and added CensusPlus to my characters addins. It's out of date, but still works fine with 2.3. It's fun to&amp;nbsp;see the numbers for your&amp;nbsp;own server.&lt;/P&gt;
&lt;P&gt;In summary, congratulations Blizzard on the incredibly successful World of Warcraft, and thank you researchers and add-in developers for giving us insight into player populations!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6951792" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="Gaming" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Gaming/" /><category term="Virtual Environments" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Virtual+Environments/" /><category term="World of Warcraft" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/World+of+Warcraft/" /></entry><entry><title>Content versus Form</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2007/11/15/content-versus-form.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2007/11/15/content-versus-form.aspx</id><published>2007-11-15T13:58:00Z</published><updated>2007-11-15T13:58:00Z</updated><content type="html">&lt;P&gt;If I could go back 30 years, I would tell myself to focus on the content and intention of each message, rather than its form. &lt;/P&gt;
&lt;P&gt;I'm struggling through a technical report describing application of Bayesian techniques to a particular problem. Like papers in any new (to me) field, nomenclature and conventions for equations are quite confusing. &lt;/P&gt;
&lt;P&gt;In the past I focused on - obsessed over, really - these nomenclature differences between fields. Why couldn't they be consistent in mathematical formulations, terminology, and symbols? In college inconsistencies between my pure math, physics, and chemistry texts drove me nuts. They frustrated me to the point where I had problems memorizing formulas, but more importantly, understanding the reason for those formulas and their derivation. My grades reflected my frustration and ignorance.&lt;/P&gt;
&lt;P&gt;Today I find myself accepting that I don't necessarily understand nomenclature in the paper I'm reading, and assuming it will differ from what I already know, even if it looks the same. Instead of getting frustrated over three different interpretations for superscripts, I think "what is the author trying to tell me here?" It's a much more rewarding experience, and I'm already reaping dividends.&lt;/P&gt;
&lt;P&gt;If you find yourself faced with inconsistencies in presentation of technical material, or in the formulas that back it up, remember the price I paid for focussing on form rather than content. Hopefully you can have a more productive 30 years to come as a result. :) &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6254286" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>Peer-to-Peer Content Distribution and download speeds</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2007/07/28/peer-to-peer-content-distribution-and-download-speeds.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2007/07/28/peer-to-peer-content-distribution-and-download-speeds.aspx</id><published>2007-07-28T18:30:00Z</published><updated>2007-07-28T18:30:00Z</updated><content type="html">&lt;P&gt;When I talk to people about P2P content distribution, there's a common misperception. They assume that the more people there are downloading that file, the faster download goes. This isn't usually true, as I'll explain below. What &lt;EM&gt;is&lt;/EM&gt; true is that a peer-to-peer system in which servers participate should always be faster than just using the servers alone. &lt;/P&gt;
&lt;P&gt;The following formula - assuming everyone's download capacity exceeds the speed they can actually get the content at - is true for all three systems.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;[per-user average download speed] = [total upload speed] / [number of downloaders]&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Let's call the system with no peer contribution - such as traditional web downloads - 'client-server.' P2P systems where peers serve files even when they're not actively downloading them we'll call 'always on.' Finally, if peers only serve files for as long as they're actively downloading that specific file, we'll call them 'greedy.' &lt;/P&gt;
&lt;P&gt;All three systems will usually have servers (called 'seeds' in the peer-to-peer world), so there's always someone with a full copy of the file that can make sure people can download.&lt;/P&gt;
&lt;P&gt;We need a few other numbers to illustrate the speed for these systems. Let's say&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;An average user has 4 Mbps download and 250 Kbps upload. &lt;/LI&gt;
&lt;LI&gt;The seed has 10 Mbps upload, 40x as fast as an average user's upload.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;The always-on system has 2x as many&amp;nbsp;users uploading as it has doing both upload &amp;amp; download, for a total of 3x as many uploading nodes as the greedy system.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Here's a table that shows&amp;nbsp;average user download speed for 10, 100, 1000, and 10,000 users for each of the three systems&lt;/P&gt;
&lt;TABLE class=""&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=""&gt;# Clients &amp;nbsp;&amp;nbsp; &lt;/TD&gt;
&lt;TD class=""&gt;Server&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;
&lt;TD class=""&gt;always on&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;
&lt;TD class=""&gt;greedy&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;10&lt;/TD&gt;
&lt;TD class=""&gt;1.000 Mbps&lt;/TD&gt;
&lt;TD class=""&gt;1.750 Mbps&lt;/TD&gt;
&lt;TD class=""&gt;1.250 Mbps&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;100&lt;/TD&gt;
&lt;TD class=""&gt;100 Kbps&lt;/TD&gt;
&lt;TD class=""&gt;850 Kbps&lt;/TD&gt;
&lt;TD class=""&gt;350 Kbps&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;1,000&lt;/TD&gt;
&lt;TD class=""&gt;10 Kbps&lt;/TD&gt;
&lt;TD class=""&gt;760 Kbps&lt;/TD&gt;
&lt;TD class=""&gt;260 Kbps&lt;/TD&gt;
&lt;TR&gt;
&lt;TD class=""&gt;10,000&lt;/TD&gt;
&lt;TD class=""&gt;1 Kbps&lt;/TD&gt;
&lt;TD class=""&gt;751 Kbps&lt;/TD&gt;
&lt;TD class=""&gt;251 Kbps&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P mce_keep="true"&gt;From the table above, you can see that the P2P download *should* always be faster than the seed server on its own. However, the average download speed keeps dropping as the number of clients grows.&lt;/P&gt;
&lt;P mce_keep="true"&gt;The always-on system has significantly faster download speed than the greedy system. This looks great on the surface, but it comes at a price. Users in always-on systems are donating their system's bandwidth even when they're not immediately benefiting. As long as they're OK with this, the system can usually offer improved download speed when the user does want content. But, it means a longer imposition to the user: the upload bandwidth being consumed can impact their other activites, such as web browsing, playing network games, etc. It's also more likely that the upload for a file retrieved earlier in an always-on system will interfer with the system's ability to provide a file the user wants to download NOW, at least in a system where users tend to want newer files rather than older ones.&lt;/P&gt;
&lt;P mce_keep="true"&gt;The framework we use in MSCD leaves the choice of whether to behave as an always-on or a greedy system in the hands of the programmer. For the &lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9a927cf6-16e4-4e21-9608-77f06d2156bb&amp;amp;DisplayLang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9a927cf6-16e4-4e21-9608-77f06d2156bb&amp;amp;DisplayLang=en"&gt;MSCD CTP&lt;/A&gt; which allows users to download &lt;A class="" href="http://msdn2.microsoft.com/en-us/vstudio/aa700830.aspx" mce_href="http://msdn2.microsoft.com/en-us/vstudio/aa700830.aspx"&gt;Visual Studio 2008 Beta-2 &lt;/A&gt;images, we've configured the client to behave as a greedy client. In other words, you only share with other peers until you finish your download, and then you disconnect from the cloud.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Please post a comment if you have any questions in this area, I'm always on the look-out for new reasons to blog :)&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4102848" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="P2P" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/P2P/" /><category term="Networking" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Networking/" /><category term="Content Distribution" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Content+Distribution/" /><category term="MSCD" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/MSCD/" /></entry><entry><title>'Managed Prototypes'</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2007/07/27/managed-prototypes.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2007/07/27/managed-prototypes.aspx</id><published>2007-07-27T19:02:00Z</published><updated>2007-07-27T19:02:00Z</updated><content type="html">&lt;P&gt;&lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9a927cf6-16e4-4e21-9608-77f06d2156bb&amp;amp;DisplayLang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9a927cf6-16e4-4e21-9608-77f06d2156bb&amp;amp;DisplayLang=en"&gt;MSCD&lt;/A&gt; has a &lt;A class="" href="http://research.microsoft.com/news/featurestories/publish/MSCD.docx.aspx?0hp=n1" mce_href="http://research.microsoft.com/news/featurestories/publish/MSCD.docx.aspx?0hp=n1"&gt;front-page story&lt;/A&gt; on &lt;A class="" href="http://research.microsoft.com/" mce_href="http://research.microsoft.com"&gt;research.microsoft.com&lt;/A&gt;. A friend of mine asked me about a quote in the article which could perhaps be misunderstood:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;“It is as much as eight times faster than our original managed prototype, and it’s great that customers will have a chance to experience the benefits for themselves.”&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The fact that our prototype was managed is orthogonal to the performance gains we've seen in our MSCD CTP. The speed-up is instead the result of algorithmic and architectural improvements that came out of our lengthy design and optimization efforts. &lt;/P&gt;
&lt;P&gt;For the record, managed code is awesome. It does run a little slower (5% - 20%) for some things - especially if you're new to it and write your code in a way that makes the system do unneccesary work - for example appending to a string 50 times rather than using StringBuilder. Managed code also runs some things a little faster than C++, which surprised me at first. One thing that I think is incontrovertable: developing in C# and managed code is much, MUCH quicker than doing the same job in C or C++. My experience has been a factor of two or factor of three speed-up in development for the same quality results.&lt;/P&gt;
&lt;P&gt;So, please don't misinterpret the quote in the MSCD story: we're patting ourselves on the back for our algorithmic improvement ingenuity, not dissing managed code.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4082652" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="P2P" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/P2P/" /><category term="Networking" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Networking/" /><category term="Programming" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Programming/" /></entry><entry><title>MSCD links to download Visual Studio 2008 Beta 2</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2007/07/26/mscd-links-to-download-visual-studio-2008-beta-2.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2007/07/26/mscd-links-to-download-visual-studio-2008-beta-2.aspx</id><published>2007-07-27T00:45:00Z</published><updated>2007-07-27T00:45:00Z</updated><content type="html">&lt;P&gt;If you're interested in using Microsoft Secure Content Distribution to download Visual Studio 2008 Beta 2, just &lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=9A927CF6-16E4-4E21-9608-77F06D2156BB&amp;amp;displaylang=en" target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=9A927CF6-16E4-4E21-9608-77F06D2156BB&amp;amp;displaylang=en"&gt;click here&lt;/A&gt;, install and run the downloader, and you'll be off and running! This version of MSCD will be available for four weeks, so you have until 22-August to give it a try!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4070915" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="P2P" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/P2P/" /><category term="Networking" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Networking/" /><category term="Content Distribution" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Content+Distribution/" /><category term="MSCD" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/MSCD/" /></entry><entry><title>Microsoft Secure Content Distribution</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2007/07/26/microsoft-secure-content-distribution.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2007/07/26/microsoft-secure-content-distribution.aspx</id><published>2007-07-26T19:06:00Z</published><updated>2007-07-26T19:06:00Z</updated><content type="html">&lt;P&gt;A few years ago, Pablo Rodriguez and Christos Gkantsidis applied Network Coding to Peer-to-Peer file swarming, calling their system &lt;A class="" href="http://research.microsoft.com/camsys/avalanche" target=_blank mce_href="http://research.microsoft.com/camsys/avalanche"&gt;'Avalanche'&lt;/A&gt;. I was lucky enough to be involved in their project. Over time, Cambridge Incubation&amp;nbsp;at Microsoft Research Cambridge built a content distribution system around the Avalanche research results. Today that work culminates in a public customer technology preview (CTP) of the resulting system, Microsoft Secure Content Distribution (MSCD).&lt;/P&gt;
&lt;P&gt;Before I go any further, let me stress: this is&amp;nbsp;a&amp;nbsp;four-week CTP. Microsoft has no announced plans to incorporate MSCD into any of its products, or to offer it as a separate product.&lt;/P&gt;
&lt;P&gt;MSCD allows authorized content publishers to distribute their content to a large audience via file swarming. The publisher can choose to use MSCD to augment their existing server bandwidth, or use it to enable them to reach a much larger audience than they could have otherwise with a relatively small server investment. MSCD is NOT a file searching or file sharing technology: it's intended for a small number of publishers to distribute content to a large number of customers.&lt;/P&gt;
&lt;P&gt;Security, preservation of publisher rights, and providing a good customer experience are core goals of MSCD. &lt;/P&gt;
&lt;P&gt;The goal of the CTP is to gain real-world experience with MSCD. You can test and simulate to your heart's content, but with internet protocols, you never realy know how well it works until you deploy it. &lt;/P&gt;
&lt;P&gt;As you may have heard, Visual Studio 2008 Beta-2 is expected out soon. In addition to the existing distribution mechanisms for VS Beta-2, the Visual Studio team is allowing Cambridge Incubation to make it available via MSCD for the next four weeks. Visual Studio 2008 has a lot of great new features which should make it extremely popular. My personal hope is that some of the more adventurous customers will choose to download it via MSCD. &lt;/P&gt;
&lt;P&gt;We've been developing and testing MSCD for quite a while, but this is our first public CTP, and so our first opportunity to see how it works 'in the wild.' There may be hiccups in the experience of downloading the VS Beta via MSCD. If so, please remember these are issues with MSCD, NOT with Visual Studio. Anyone who chooses to try downloading via MSCD can also use the server-based download mechanism at any time.&lt;/P&gt;
&lt;P&gt;If you're interested in more information about MSCD, you can read &lt;A class="" href="http://research.microsoft.com/displayArticle.aspx?id=1772" mce_href="http://research.microsoft.com/displayArticle.aspx?id=1772"&gt;this article&lt;/A&gt;&amp;nbsp;to start. If you'd like to read more about some of Visual Studio 2008's great features, you can check out &lt;A class="" href="http://blogs.msdn.com/somasegar/" mce_href="http://blogs.msdn.com/somasegar/"&gt;Soma's blog&lt;/A&gt; or &lt;A class="" href="http://weblogs.asp.net/scottgu/" mce_href="http://weblogs.asp.net/scottgu/"&gt;ScottGu's blog&lt;/A&gt;. &lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4068143" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="P2P" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/P2P/" /><category term="Networking" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Networking/" /><category term="Content Distribution" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Content+Distribution/" /><category term="MSCD" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/MSCD/" /></entry><entry><title>Second Life - Reality sets in? </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2007/07/15/second-life-reality-sets-in.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2007/07/15/second-life-reality-sets-in.aspx</id><published>2007-07-15T10:46:00Z</published><updated>2007-07-15T10:46:00Z</updated><content type="html">&lt;P&gt;Earlier I commented about the disparity in numbers quoted for Second Life's population. It's not that any of the numbers are wrong - for what's being expressed, they're no doubt correct. Rather, it's a question of what's being measured. For my money, steady-state population, and those willing to pay for the experience are both fine metrics.&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://www.latimes.com/business/la-fi-secondlife14jul14,1,3135510.story?track=crosspromo&amp;amp;coll=la-headlines-business&amp;amp;ctrack=1&amp;amp;cset=true" target=_blank mce_href="http://www.latimes.com/business/la-fi-secondlife14jul14,1,3135510.story?track=crosspromo&amp;amp;coll=la-headlines-business&amp;amp;ctrack=1&amp;amp;cset=true"&gt;&amp;nbsp;A recent LA Times article&lt;/A&gt; talks about a trend of some large businesses either reducing or eliminating their presence in Second Life. The article is short, insightful, and worth reading IMO. Some key quotes from that article:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;"Even at peak times, only about 30,000 to 40,000 users are logged on, said Brian Haven, an analyst with Forrester Research."&lt;/LI&gt;
&lt;LI&gt;"[Philosophy professor Peter Ludlow] said most firms were more interested in the publicity they received from their ties with Second Life than in the digital world itself."&lt;/LI&gt;
&lt;LI&gt;"Between May and June, the population of active avatars declined 2.5%, and the volume of U.S. money exchanged within the world fell from a high of $7.3 million in March to $6.8 million in June."&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;My two specific longest-term motivations for being a computer scientist are making games and to enable some sort of global cyber space, not that I've done much for either of these in the last decade. &lt;/P&gt;
&lt;P&gt;Where's the future of virtual communities and communications, and for that matter, is there one? I still think lack of a payoff for time invested in Second Life is its biggest conceptual challenge. World of Warcraft (WoW) has an incentive and reward structure built in, with social interaction as a side-benefit. WoW continues to do well, with &lt;A class="" href="http://www.macworld.com/news/2007/03/07/warcraft/index.php" mce_href="http://www.macworld.com/news/2007/03/07/warcraft/index.php"&gt;more than 8.5 million subscribers&lt;/A&gt;, each paying more than $10 a month for the privilege.&lt;/P&gt;
&lt;P&gt;World of Warcraft taps a large existing community - computer gamers - and offers an experience attractive to that community with significant value-adds.&amp;nbsp;Perhaps the biggest challenge in Second Life is that the only existing community it really taps into are those who frequent online social mechanisms such as ICQ, MUD/MOO, and others, and&amp;nbsp;press and the curious inspired by the press, who are no doubt a highly transient population.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I definitely want to see Second Life (or similar environments) succeed. It seems like they need to offer something else, though, in order to be anything more than a niche application. &lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3874837" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="Gaming" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Gaming/" /><category term="Virtual Environments" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Virtual+Environments/" /><category term="Cyberspace" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Cyberspace/" /><category term="Second Life" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Second+Life/" /></entry><entry><title>Data persistence in a digital world</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2007/06/29/data-persistence-in-a-digital-world.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2007/06/29/data-persistence-in-a-digital-world.aspx</id><published>2007-06-29T09:27:00Z</published><updated>2007-06-29T09:27:00Z</updated><content type="html">&lt;P&gt;A while back I read a news article pointing out an issue largely overlooked, namely the transience of digital data. &lt;/P&gt;
&lt;P&gt;For thousands of years, institutional and personal memory were stored solely in physical written form, on paper, papyrus, wax, stone, you name it. The systems for writing these memories are well known and easily accessible: anyone who can read the language can read virtually anything. The down side is that accessing a piece of data in its native form requires a physical token, such as the book containing that data. How many of you remember taking a trip to the library when you needed to know something 30 years ago? And waiting for a book from inter-library loan if the local library didn't have it, sometimes being shipped from hundreds of miles away...&lt;/P&gt;
&lt;P&gt;We've switched ease of access and permanence. Thanks to computers and networking, virtually any information you're interested in is no further away than your desktop, or perhaps your pocket if you're especially well connected. This comes at a price, though: most institutional and personal memory will be lost in just a few years, thanks to rapidly evolving digital storage formats and the lack of a long-lived, easily accessible physical store.&lt;/P&gt;
&lt;P&gt;It's not uncommon to find written diaries from both common folks and historical figures going back hundreds of years. However, I challenge you to find an electronic diary of someone from the 80's that can still be read today. For example, I did a lot of writing on my Atari 520ST, and stored it on 3.5" floppies. Assuming the floppies are even working today, I don't have any machines with a floppy drive. I certainly don't have any that can read the data files created by whatever word processor I used, and it didn't save in plain text.&lt;/P&gt;
&lt;P&gt;Is the web a temporally localized phenomenon, or will it last for centuries? It's too early to tell. But if it *doesn't* last, how much information will be lost when it fades into obscurity? Will digital archaeologists be able to make heads or tails of what came even a few decades before?&lt;/P&gt;
&lt;P&gt;With luck, we'll never know. But our grandchildren will.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3598412" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="The Web" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/The+Web/" /><category term="Data Storage" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Data+Storage/" /></entry><entry><title>Writing a Packet-level Simulator</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2007/05/22/writing-a-packet-level-simulator.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2007/05/22/writing-a-packet-level-simulator.aspx</id><published>2007-05-22T20:56:00Z</published><updated>2007-05-22T20:56:00Z</updated><content type="html">&lt;P&gt;Over the years I've gained a healthy respect for the value of simulation. Abstract algorithm simulation can help you fine-tune your core concepts and transaction structure. Low-level network simulation can give you a controlled environment in which to evaluate and debug your protocol and implementation. Each has a unique value proposition for development.&lt;/P&gt;
&lt;P&gt;For high-level simulators, I'm used to seeing either mathematical simulations, or transaction-level simulations, where a transaction exchange is modeled in its impact on node state. Network packets aren't modeled, just the updates you hope network exchanges will make to node state.&amp;nbsp;These I'm used to seeing as one-off implementations, because the algorithm being simulated&amp;nbsp;varies from protocol to protocol.&lt;/P&gt;
&lt;P&gt;Low-level simulaltors tend to have a more focussed mission, such as acting as a transport replacement. The first one that springs to mind is &lt;A class="" href="http://research.microsoft.com/research/pubs/view.aspx?pubid=1398" mce_href="http://research.microsoft.com/research/pubs/view.aspx?pubid=1398"&gt;WiDS&lt;/A&gt;. These are a great way to validate protocols which ship a low-to-moderate amounts of data, and for which you already have a full implementation.&lt;/P&gt;
&lt;P&gt;I have a need somewhere between these two. My protocol is already designed, and I want to model artifacts which won't show up in a mathematical/numerical simulation. The protocol's focus is shipping large amounts of data around, which makes it inappropriate for a full transport-level simulator: I wouldn't be able to simulate a cloud of any reasonable size.&lt;/P&gt;
&lt;P&gt;So, I find myself making my own simulator I'm tentatively calling a packet-level simulator. It stops just short of constructing actual packets, but it tracks the size of packets exchanged for each transaction, and per-node limits on processing speed, bandwidth, and accessibility. The simulation's primary goal is modeling the impact on nodes of the actual protocol and node speed effects. As long as I can model the interaction of data transmissions and connect attempts, then I'm not so concerned about validating the transcoding of packets.&lt;/P&gt;
&lt;P&gt;My simulator is working fairly well. I'm on my third iteration of optimizations. &lt;/P&gt;
&lt;P&gt;The first iteration was a relatively naive approach, where I recalculate the speed of data flow across all connections each time a message started or finished transmission anywhere in the simulation. Although accurate, I could only run at about 20x realtime. &lt;/P&gt;
&lt;P&gt;The second iteration involved adding a targeted optimization for the simplest case of a message transition where the impact on transmission speeds was restricted to the node sending that message. In the sorts of networks I'm modeling, this hits about 80%-90% of the cases, which results in an effective 5x-10x speedup. &lt;/P&gt;
&lt;P&gt;Still, the simulator isn't quite where I want it to be. More than 96% of all CPU time is consumed in the graph speed updates for the cases that miss the optimization above. Simulating 200 nodes for 18 hours took several hours, and I want to simulate clouds of at LEAST 500 nodes for 24-hour stretches.&lt;/P&gt;
&lt;P&gt;I'm working on what I hope will be the final optimization, optimizing changes to packet transfer which affect up to two hops away from the sender / receiver of the message. This is proving to be quite difficult. I'm not aware of anything I can grab from graph theory, because I'm not optimizing flow: each node can be thought of as a source of data, with the goal of sending that data to all of its neighbors as quickly as possible. There's no multi-hop data flow to speak of, though: A sends one set of data to B, B sends a different set of data to C. The graph is directed with degree up to 8. There can be multiple edges going the same direction between any pair of nodes, with different messages flowing over them.&lt;/P&gt;
&lt;P&gt;I've been trying to wrap my head around this third stage for two weeks now. Each time I get close I find an exception to my logic that makes me question all of the progress I've made on it. Hopefully I'll get it sorted by the end of this week.In the meantime, it helps to blurt out the scope of the problem. :)&lt;/P&gt;
&lt;P&gt;If you ever find yourself working on a similar set of problems, I'll be happy to detail a little deeper what I'm doing and how it's useful. I'm considering making the packet-level simulator publicly available once I get it working well enough, and release at least one paper based on its results. If this would be useful to you, please let me know.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2797564" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="P2P" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/P2P/" /><category term="Networking" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Networking/" /><category term="Network Simulation" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Network+Simulation/" /></entry><entry><title>SChannel - careful how you use it...</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2007/05/21/schannel-careful-how-you-use-it.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2007/05/21/schannel-careful-how-you-use-it.aspx</id><published>2007-05-21T20:30:00Z</published><updated>2007-05-21T20:30:00Z</updated><content type="html">&lt;P&gt;I recently had a very interesting experience with &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/aa374782.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/aa374782.aspx"&gt;SCHANNEL&lt;/A&gt;, in particular with &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/aa380516.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/aa380516.aspx"&gt;TLS&lt;/A&gt; authentication.&lt;/P&gt;
&lt;P&gt;If you're not familiar with it, SCHANNEL is an example of something called an &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/aa380493.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/aa380493.aspx"&gt;SSP&lt;/A&gt;. It's a Windows&amp;nbsp;implementation of standard authentication protocols, and is included as part of the Windows operating system. If you can figure your way around SSPI (cryptic but relatively small) then you can&amp;nbsp;perform authentication&amp;nbsp;for any network connection with confidence that the security implementation has withstood the test of time. &lt;/P&gt;
&lt;P&gt;One of my projects has a network service component which deals with a large number of transactions per unit time. Each transaction involves a new mutually authenticated TLS connection, and the work in setting up those connections was my primary scale-limiting point.&lt;/P&gt;
&lt;P&gt;TLS authentication uses asymmetric key cryptography for authentication and validation of credentials. These operations are computationally expensive. As expensive operations, they are the primary limiting factor in my service scalability. Up until recently, I thought a modern machine could only do 10-15 mutual authentications per second. As it turns out, it all depends upon how you set up your connections.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;I was doing the following each time a new client connected:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Bind to the SSP and get function pointers&lt;/LI&gt;
&lt;LI&gt;Create local credentials and prepare to authenticate&lt;/LI&gt;
&lt;LI&gt;Perform authentication activities&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;I'd thought that the SSP would be cached in memory, so the binding would be cheap. As it turns out, there's a better way to do this: Do (1) and (2) once, and then do (3) as many times as needed for your operations. It's obvious now, but it wasn't with the code base I was working on. As soon as I made this switch, my authentication speeds went up by a factor of 15! &lt;/P&gt;
&lt;P&gt;If you need to use SCHANNEL on a server or server-like component, make sure you're not doing extra work for each connection.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2771373" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>Second Life Slashdot stream</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2007/04/20/second-life-slashdot-stream.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2007/04/20/second-life-slashdot-stream.aspx</id><published>2007-04-20T12:00:00Z</published><updated>2007-04-20T12:00:00Z</updated><content type="html">&lt;P&gt;I stumbled across a recent &lt;A class="" href="http://developers.slashdot.org/developers/07/04/19/1611252.shtml" mce_href="http://developers.slashdot.org/developers/07/04/19/1611252.shtml"&gt;Slashdot posting about Second Life&lt;/A&gt;. There are&amp;nbsp;some interesting comments amidst the dross, worth a read if you're interested in virtual worlds or Second Life in particular. &lt;/P&gt;
&lt;P&gt;The gist is, Second Life has &lt;A class="" href="http://lindenlab.com/press/releases/01_08_07" mce_href="http://lindenlab.com/press/releases/01_08_07"&gt;made its client side open-source&lt;/A&gt;, and the article claims it'll be doing the same for the server side. Very interesting for someone who wants to research distributed systems and distributed system&amp;nbsp;security. Getting the servers correctly federated and working well together is an interesting enough problem. &lt;/P&gt;
&lt;P&gt;If the client code and the server code are both really open sourced, it may be worth a peek to see what would be required to make a P2P implementation. No doubt there are a plethora of legal and logistical requirements for servers to support monetization and integrity of the world, but heck, that just makes the problem that much more interesting!&lt;/P&gt;
&lt;P&gt;While looking up pointers, I stumbled across a&lt;A class="" href="http://www.businessweek.com/technology/special_reports/20070416virtuallife.htm?campaign_id=rss_daily" mce_href="http://www.businessweek.com/technology/special_reports/20070416virtuallife.htm?campaign_id=rss_daily"&gt; tech special report&lt;/A&gt; from business week online which is centered around 'Virtual Life,' with lots of Second Life articles. Looks like time for more reading...&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2204690" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="P2P" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/P2P/" /><category term="Security" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Security/" /><category term="Virtual Environments" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Virtual+Environments/" /><category term="Cyberspace" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Cyberspace/" /><category term="Second Life" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Second+Life/" /></entry><entry><title>Windows Software RAID5, we hardly knew ye</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2007/04/07/windows-software-raid5-we-hardly-knew-ye.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2007/04/07/windows-software-raid5-we-hardly-knew-ye.aspx</id><published>2007-04-07T19:47:00Z</published><updated>2007-04-07T19:47:00Z</updated><content type="html">&lt;P&gt;Ever since I installed Vista Ultimate on my home machine, I've had grand visions of setting up Windows Media Center with my lifetime collection of media on a terabyte RAID5 array. Windows NT used to include a software RAID5, so if you weren't too concerned about performance, you could run a RAID array without having to buy any extra equipment.&lt;/P&gt;
&lt;P&gt;Of course, my hardware purchases of late have been predicated around this. I bought three Samsung HD501LJ 500 GB SATA drives. Cheap, well reviewed, I knew I'd be in for a treat. They arrived a few days ago, and I got my first ugly surprise: not enough SATA power leads on my power supply to power them all. A quick trip to the local computer shop got me a standard-to-SATA power connecter adaptor, and I was back in business. I installed and powered up the new drives, and went to the disk manager to set up the RAID array.&lt;/P&gt;
&lt;P&gt;Hmmm, that's odd - no option for 'stripe with parity.' I did a web search and got some instructions for using the command line to set up the RAID array. My sole reward was a pithy message informing me RAID5 was no longer supported by the utility.&lt;/P&gt;
&lt;P&gt;Very... Disappointed!&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://www.movieactors.com/freeseframes-1026/FifthElement149.jpeg"&gt;&lt;/P&gt;
&lt;P&gt;Ah well. So much for doing it on the cheap. I'll order an SATA-based&amp;nbsp;hardware RAID5 controller and set up my dream system.&lt;/P&gt;
&lt;P&gt;In the mean time, though, doff your caps and join me in a moment of silence for Windows Software RAID5 support. It will be missed.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2046185" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="Hardware" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Hardware/" /><category term="Vista" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Vista/" /></entry><entry><title>May the best bot win...</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2007/03/27/may-the-best-bot-win.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2007/03/27/may-the-best-bot-win.aspx</id><published>2007-03-27T22:16:00Z</published><updated>2007-03-27T22:16:00Z</updated><content type="html">&lt;P&gt;There are&amp;nbsp;two broad areas in gaming I want to take a closer look at. The first is distributed games, and models for ensuring fairness and cheat-proofing. The second is issues which affect game play quality, such as latency and jitter in network connections. As part of this research, I need a way of reproducibly simulating the impact of game system changes - including resulting jitter and latency - on playability.&lt;/P&gt;
&lt;P&gt;One way to do this is to create a simulated player which reacts to perceived inputs, monkey with those inputs, and then see how the simulated player does. In other words, editing bots.&lt;/P&gt;
&lt;P&gt;But which game to use? I'm looking seriously at two choices right now, and hoping for a few others to consider.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Quake supports bots, though I'm not sure if they're scriptable. Since &lt;A class="" href="http://www.idsoftware.com/business/techdownloads/" mce_href="http://www.idsoftware.com/business/techdownloads/"&gt;Quake III source is available under GPL&lt;/A&gt;, though, it hardly matters except as a question of difficulty.&lt;/LI&gt;
&lt;LI&gt;Unreal's got a very detailed scripting language. I'm going to load up UT2004 tomorrow for the first time in years, and check out exactly what's available.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I'm investigating a few other games as well, such as Half-Life 2 and Battlefield 2142, but I'm not too optimistic. &lt;/P&gt;
&lt;P&gt;Ease of scripting the bots and affecting their inputs / storing state is a requirement. Equally important is whether the game is recent, and if there's a large enough online community for results for that game to be interesting. This is a harder question. I've mostly been playing Xbox-360 games for the last year, and am somewhat out of touch with the most popular FPS /&amp;nbsp;latency sensitive PC games out there.&lt;/P&gt;
&lt;P&gt;So, my questions for you, gentle reader:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Do you have a recommendation for a latency-sensitive game with scriptable bots I should investigate? &lt;/LI&gt;
&lt;LI&gt;What are the most popular online PC games which are latency sensitive? Note that games like Warcraft and World of Warcraft aren't sensitive enough to qualify for this work.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Do tell :)&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1967050" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="Networking" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Networking/" /><category term="Gaming" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Gaming/" /></entry><entry><title>Vista Installation? Easiest EVER</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2007/03/25/vista-installation-easiest-ever.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2007/03/25/vista-installation-easiest-ever.aspx</id><published>2007-03-25T11:11:00Z</published><updated>2007-03-25T11:11:00Z</updated><content type="html">&lt;P&gt;We've been encouraged to install Vista at work for quite some time, but I measure how difficult it'll be for most people to use based on what happens at home.&lt;/P&gt;
&lt;P&gt;I bought my personal copy of Vista Ultimate about a week ago, and just got around to installing it yesterday. I have to say, kudo's to the Windows team for the easiest installation I've EVER had, and my fastest installation since I was putting DOS on PC's 15 years ago. &lt;/P&gt;
&lt;P&gt;I had been running a hardware RAID mirror, so I removed one of the drives and then booted from the Vista Ultimate DVD. Within five minutes I was able to delete my remaining drive's partitions and create a new single partition. Vista wouldn't let me install on this drive, citing 'potential incompatibilities.' I booted into the Fatal1ty A8N-SLI's BIOS and disabled the hardware RAID, then booted from CD again. This time setup was happy.&lt;/P&gt;
&lt;P&gt;The setup experience from here on in was amazing. To go from a blank partition to booting into Vista took less than half an hour, and perhaps two or three minutes of my time, all at the beginning. After booting into Vista and starting to play, it found drivers enabling ALL of my hardware to work. This impressed me because I've got, among other things, a USB microphone, USB smartcard reader, third party PCI USB card, 7800 GT display with multimon, Hauppauge PVR-150 TV adapter, USB remote control, gigabit network, and lots of other goodies. It found drivers for *everything*, even a legacy driver for my built-in Realtek audio, and it did it without me having to lift a single finger.&lt;/P&gt;
&lt;P&gt;Will I like Vista? That remains to be seen. But I can't say a single bad thing about installation. In a word, AWESOME.&lt;/P&gt;
&lt;P&gt;Now it's time to buy three 500 GB SATA drives and set up a software RAID5 :)&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1945813" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="Hardware" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Hardware/" /><category term="Vista" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Vista/" /></entry><entry><title>Welcome to the terabyte!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/johnmil/archive/2007/01/06/welcome-to-the-terabyte.aspx" /><id>http://blogs.msdn.com/b/johnmil/archive/2007/01/06/welcome-to-the-terabyte.aspx</id><published>2007-01-06T03:23:00Z</published><updated>2007-01-06T03:23:00Z</updated><content type="html">&lt;P&gt;I saw a press release today for a new &lt;A class="" href="http://www.pcmag.com/article2/0,1895,2079431,00.asp" mce_href="http://www.pcmag.com/article2/0,1895,2079431,00.asp"&gt;Hitachi 1 Terabyte drive&lt;/A&gt;, supposed to be available for $400. Oddly, this is something I've wanted for a long time, and was planning on buying an external RAID array to achieve. It's not that I need the space, or that I'll do anything productive with it. It just sounds nice to say.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;"Ooo, I wonder how much disk space I have left on my &lt;STRONG&gt;terabyte drive&lt;/STRONG&gt;?" &lt;/P&gt;
&lt;P&gt;I'm sure eventually I'll come up with a way to fill it. Maybe I'll make a new copy of every picture I take every time I look at it? Write an editor that saves a new full copy of the file for each keystroke?&amp;nbsp; Or perhaps use it in my mediacenter PC to give me 500 hours of video storage. Now THAT sounds worthwhile.&lt;/P&gt;
&lt;P&gt;Whatever the case, I'll buy one when it becomes available on the street, and revel in the memory of my first 10 MB hard drive in 1985, 100,000 times less storage than this much smaller, much quieter drive I will be able to hold in the palm of my hand. &lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1418684" width="1" height="1"&gt;</content><author><name>John L. Miller</name><uri>http://blogs.msdn.com/johnmil_5F00_msft_4000_hotmail.com/ProfileUrlRedirect.ashx</uri></author><category term="Hardware" scheme="http://blogs.msdn.com/b/johnmil/archive/tags/Hardware/" /></entry></feed>