<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>object01.Blog</title>
	<atom:link href="http://object01.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://object01.com</link>
	<description>Thoughts on games, work, and... well, mostly games</description>
	<lastBuildDate>Sat, 28 Apr 2012 19:30:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='object01.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>object01.Blog</title>
		<link>http://object01.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://object01.com/osd.xml" title="object01.Blog" />
	<atom:link rel='hub' href='http://object01.com/?pushpress=hub'/>
		<item>
		<title>Torchlight: Never the Same Easy Twice</title>
		<link>http://object01.com/2011/03/13/torchlight-never-the-same-easy-twice/</link>
		<comments>http://object01.com/2011/03/13/torchlight-never-the-same-easy-twice/#comments</comments>
		<pubDate>Mon, 14 Mar 2011 05:22:57 +0000</pubDate>
		<dc:creator>object01</dc:creator>
				<category><![CDATA[Video games]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[difficulty]]></category>
		<category><![CDATA[procedural algorithms]]></category>
		<category><![CDATA[RPGs]]></category>

		<guid isPermaLink="false">http://object01.com/?p=243</guid>
		<description><![CDATA[I played through Torchlight the first time on "Easy" difficulty.  I've gotten into the habit recently of playing games on the easiest available difficulty level. Why? Because I despise failing and having to restart, replay, or rewatch some part of a game<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=object01.com&amp;blog=97830&amp;post=243&amp;subd=object01&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I consumed Torchlight on XBLA this weekend.  I had forgotten it was being released and was quick to buy it; I used to play Mythos with my wife and remembered that it had reincarnated as Torchlight on the PC.  But having satisfied myself with Mythos I never tried Torchlight.  Before that we played Dungeon Runners.  I suppose I had had my fill of randomly-generated dungeon crawlers.</p>
<p>Torchlight on XBLA is beautifully executed, though not very &#8220;deep&#8221;.  Aside from the story quests, which are all glorified beat-a-harder-boss quests, there are only repetitive fetch quests in which you find and deliver a single item from the dungeon.  When you complete that quest, the quest giver essentially repeats his original request with only the item name and dungeon level changed.</p>
<p>That surprised me.  You&#8217;d think a single player, randomly-generated dungeon crawling game would have, well, better randomly-generated quests.</p>
<p>When I finished Torchlight, I considered whether the game was worth playing anymore.  Completing the story unlocks an &#8220;infinite dungeon&#8221; accompanied by two of the aforementioned quest givers.  The dungeon simply generates random map after random map, presumably scaling the difficulty of the monsters to your level.  You can get progressively better loot, improve your character, and that seems to be about it.  I still have an itch to play it, but I&#8217;m not sure why.  It&#8217;s not very difficult and there isn&#8217;t really anything to accomplish except getting myself on the leaderboards, which strike me as a curiosity to anyone with a day job.</p>
<p>I&#8217;ve been reading Jane McGonigal&#8217;s <em><a title="Reality Is Broken" href="http://www.amazon.com/Reality-Broken-Games-Better-Change/dp/1594202850" target="_blank">Reality Is Broken</a></em>, in which she proposes that video games have an untapped potential to improve our lives, as evidence by their apparently making us happier than reality does.  (See her <a title="TED Talks: Jane McGonigal's &quot;Gaming can make a better world&quot;" href="http://www.ted.com/talks/jane_mcgonigal_gaming_can_make_a_better_world.html" target="_blank">TED Talk</a> and her interviews on <a title="Jane McGonigal on G4" href="http://www.g4tv.com/thefeed/blog/post/710980/Jane-McGonigal-On-How-Games-Can-Save-The-World.html" target="_blank">G4</a>.  She was also recently interviewed on Xbox Live&#8217;s &#8220;Tech With Tina&#8221; segment.)  I&#8217;ve just started Chapter 3, where McGonigal discusses some of the research surrounding failure in games.  Failure, she says, keeps games&#8217; fun going.  She cites another author, Raph Koster:</p>
<blockquote><p>&#8220;Games don&#8217;t last forever,&#8221; says Raph Koster, a leading creative director of online games and virtual worlds. &#8220;I play something I&#8217;m good at, I get really far and do really well, then I get bored.&#8221; And that&#8217;s when he stops playing and moves on to the next game. Why? Because being really good at something is less fun than being <em>not quite good enough&#8211;yet</em>.</p>
<p>Koster has written a book much beloved in the game industry, <em>A Theory of Fun for Game Design</em>, in which he argues that games are &#8220;fun&#8221; only as long as we haven&#8217;t mastered them. He writes, &#8220;Fun from games arises out of mastery. It arises out of comprehension&#8230; With games, <em>learning</em> is the drug.&#8221; And that&#8217;s why fun in games lasts only as long as we&#8217;re not consistently successful.</p></blockquote>
<p>This passage made me grin first, because Koster&#8217;s <em><a title="A Theory of Fun for Game Design" href="http://www.amazon.com/Theory-Fun-Game-Design/dp/1932111972" target="_blank">A Theory of Fun for Game Design</a></em> has been on my <a href="http://www.amazon.com/gp/wishlist/1TJNX75PP4Q43/ref=reg_hu-rd_add_wl_T2" target="_blank">Amazon wishlist</a> for some time.  Then it made me think about Torchlight.</p>
<p>I played through Torchlight the first time on &#8220;Easy&#8221; difficulty.  I&#8217;ve gotten into the habit recently of playing games on the easiest available difficulty level. Why? Because I <em>despise</em> failing and having to restart, replay, or rewatch some part of a game. But I only recently started this bias toward ease when I reasoned that I simply don&#8217;t have enough time to play games, and therefore it makes very little sense to subject myself to having to repeat parts of them.</p>
<p>But playing through Torchlight on &#8220;Easy&#8221; was <em>so</em> easy that I sometimes found myself yawning.  So after I retired my first character and began another, I bumped it up a notch to see the difference. There isn&#8217;t much, so far. Now I find myself wanting to try the harder difficulties, and I have no idea why.</p>
<p>It&#8217;s strange to me because 1) I&#8217;ve arguably seen everything the game has to offer, and increasing the difficulty does <em>nothing</em> for me except increase the chance that I&#8217;ll die, which I don&#8217;t enjoy, and 2) despite the ease, and despite having finished the game, I still find myself wanting to play the game more.</p>
<p>This makes me wonder if what I&#8217;m <em>really</em> interested in are not Torchlight&#8217;s RPG mechanics, which are basic at best, but its underlying technology instead.  Its random level generator is the best I&#8217;ve played.  It features verticality (!), randomized switch puzzles, set pieces placed for purely decorative effect, well-placed traps, and even hidden rooms.  Killing monsters isn&#8217;t what kept me playing Torchlight.  That was easy.  I kept playing&#8211;keep playing&#8211;to see the procedural map system at work.  I wanted to see what it was capable of.  Looking at it, I find its fun to apply my own intermediate understanding of procedural level generators and imagine the code underneath&#8211;how it&#8217;s architected and executes.  This exercise causes me to consider things I hadn&#8217;t before.  <em>Learning</em>, like Koster says, is the drug.</p>
<p>This is important to me because it resonates with a desire I&#8217;ve had for a while: to build a game engine, or at least part of one.  My day job has me building complex systems and the tools you use to operate them, except that it&#8217;s set in the much less glamorous world of enterprise web applications.  But whatever the backdrop, it&#8217;s true that I like building codified clockwork.  And I wonder if I play games more in the spirit of research than for the fun that McGonigal and Koster describe.</p>
<p>All this reminds me that I&#8217;ve still got some code to write in my series of posts on <a title="How to Randomly Generate Loot: Part 1" href="http://object01.com/2011/01/30/how-to-randomly-generate-loot-part-1/" target="_blank">procedurally-generated loot</a>.  Does anyone out there have any question they&#8217;d like me to take a stab at answering?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/object01.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/object01.wordpress.com/243/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/object01.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/object01.wordpress.com/243/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/object01.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/object01.wordpress.com/243/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/object01.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/object01.wordpress.com/243/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/object01.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/object01.wordpress.com/243/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/object01.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/object01.wordpress.com/243/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/object01.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/object01.wordpress.com/243/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=object01.com&amp;blog=97830&amp;post=243&amp;subd=object01&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://object01.com/2011/03/13/torchlight-never-the-same-easy-twice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ebf349aee95d2b5f94697074275da03c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">object01</media:title>
		</media:content>
	</item>
		<item>
		<title>The Makers of Just Cause 2 Are Hiring!</title>
		<link>http://object01.com/2011/03/07/the-makers-of-just-cause-2-are-hiring/</link>
		<comments>http://object01.com/2011/03/07/the-makers-of-just-cause-2-are-hiring/#comments</comments>
		<pubDate>Mon, 07 Mar 2011 21:29:40 +0000</pubDate>
		<dc:creator>object01</dc:creator>
				<category><![CDATA[Video games]]></category>
		<category><![CDATA[jobs]]></category>

		<guid isPermaLink="false">https://object01.wordpress.com/?p=239</guid>
		<description><![CDATA[I couldn&#8217;t take myself seriously as a Just Cause 2 fanboy without sharing this. Spotted on the Just Cause 2 Facebook page, Avalanche Studios, the shop that brought us Just Cause 2, is hiring for multiple positions. You need to be willing to move to Stockholm, Sweden, I suppose. Could Just Cause 3 be on <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=object01.com&amp;blog=97830&amp;post=239&amp;subd=object01&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I couldn&#8217;t take myself seriously as a <a title="Why Just Cause 2 is So Much Damn Fun" href="http://object01.com/2011/01/08/whyjustcause2issomuchdamnfu/" target="_blank">Just Cause 2 fanboy</a> without sharing this.</p>
<p>Spotted on the <a title="Facebook: Just Cause 2" href="http://www.facebook.com/JustCause2" target="_blank">Just Cause 2 Facebook page</a>, Avalanche Studios, the shop that brought us Just Cause 2, is <a title="Avalanche Studios: Jobs" href="http://www.avalanchestudios.se/Jobs.aspx" target="_blank">hiring for multiple positions</a>. You need to be willing to move to Stockholm, Sweden, I suppose.</p>
<p>Could Just Cause 3 be on the way? If we all wish hard enough, we can will it into being.  So get to it; feel that vein in your forehead throb&#8211;that&#8217;s how you know you&#8217;re doing it right.</p>
<p>Good luck to Avalanche, whether they&#8217;re making JC3 or not.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/object01.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/object01.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/object01.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/object01.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/object01.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/object01.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/object01.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/object01.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/object01.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/object01.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/object01.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/object01.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/object01.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/object01.wordpress.com/239/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=object01.com&amp;blog=97830&amp;post=239&amp;subd=object01&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://object01.com/2011/03/07/the-makers-of-just-cause-2-are-hiring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ebf349aee95d2b5f94697074275da03c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">object01</media:title>
		</media:content>
	</item>
		<item>
		<title>Possibilities: what keeps a game from being boring?</title>
		<link>http://object01.com/2011/02/18/possibilities-what-keeps-a-game-from-being-boring/</link>
		<comments>http://object01.com/2011/02/18/possibilities-what-keeps-a-game-from-being-boring/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 19:37:08 +0000</pubDate>
		<dc:creator>object01</dc:creator>
				<category><![CDATA[Video games]]></category>
		<category><![CDATA[boredom]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[game design]]></category>
		<category><![CDATA[game psychology]]></category>

		<guid isPermaLink="false">http://object01.com/?p=198</guid>
		<description><![CDATA[Wait... did I just sin?  Did I just call out Angry Birds as one of the most boring games I've ever played<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=object01.com&amp;blog=97830&amp;post=198&amp;subd=object01&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I discovered Burnout Paradise a week or two ago.  Can&#8217;t believe I missed that one.  Open world racing at 60fps?  Sign me up.</p>
<p>Ask my wife: I played it a lot.  But now I feel like it&#8217;s &#8220;out of my system&#8221;, having only completed maybe a third of what it has to offer.  That got me wondering about when and why games become boring.</p>
<p>First, I tried to imagine the game I found least boring.  Easy: Just Cause 2.</p>
<p>Then, naturally, I tried to imagine the most boring game I ever played.  That&#8217;s more difficult.  Ostensibly you&#8217;d think that something like <a title="Wikipedia: Desert Bus" href="http://en.wikipedia.org/wiki/Penn_%26_Teller's_Smoke_and_Mirrors#Desert_Bus" target="_blank">Desert Bus</a> is easily the most boring game ever; it was designed to be.  But that answer isn&#8217;t very satisfying.  So I had to rephrase the question to quickly disqualify the heaps of badly done, overrated, hyped-up, and poorly executed games that have ever existed.  And I don&#8217;t want to include games that don&#8217;t interest me despite their being artfully done, like Call of Duty: Black Ops.  Like some beers, I can appreciate why others would like them, but they&#8217;re just not for me.</p>
<p>I began to wonder instead <em>why</em> games become boring, and rethought the question in terms of time: of the games I played that weren&#8217;t disqualified above, which one became most boring in the least amount of time?  Angry Birds rose to the top.  Floating around it are games like FarmVille and fitness games.</p>
<p>Wait&#8230; did I just sin?  Did I just call out Angry Birds as one of the most boring games I&#8217;ve ever played?  It&#8217;s one of the best selling games in history!  It can&#8217;t be boring!</p>
<p>Sure it can.  Lots of profitable things are boring, like mattress sales or football.</p>
<p>To be fair, lots of people cite Just Cause 2 as boring.  They reason that it&#8217;s really a single simple experience repackaged in different ways.  In the abstract, they&#8217;re absolutely right, and when looked at in that way Just Cause 2 and Angry Birds are very, very similar rinse-and-repeat games that differ only in the amount of spectacle layered on top.  So why do they represent such polar opposites in my mind?</p>
<p>I think it boils down to <em>possibilities</em>.  They&#8217;re what stave off boredom.  Angry Birds offers few.  Just Cause 2 offers many.</p>
<p>I&#8217;ve spent many, many hours playing Just Cause 2 and feel like I haven&#8217;t seen all it has to offer.  I know there are interesting locations I haven&#8217;t yet explored and a few easter eggs I haven&#8217;t found.  With very little effort I can get on YouTube and find videos that show players pulling off stunts I never thought to do.  Though I know every subtlety of the game&#8217;s core mechanics, I know there are ways to play the game that I&#8217;ve not yet tried.  When I ask myself whether something might be possible in Just Cause 2, the answer tends to be yes, or at least &#8220;probably&#8221;.</p>
<p>By contrast, in Angry Birds, I feel like I&#8217;ve seen all it has to offer after only a few levels.  Once you&#8217;ve seen one level, you&#8217;ve seen &#8216;em all.  When I wonder whether something might be possible in Angry Birds, the answer almost always is no.  I tried to capture here what I thought when I was introduced to Angry Birds:</p>
<blockquote><p>Okay, different birds have different flight patterns.  How many ways can that possibly go?  Ten?  Twenty?  Probably not; that&#8217;d be too difficult for most gamers to remember.  Even if there were many different kinds of birds, how different can they possibly be considering that any given flight pattern needs to eventually make contact with the pigs&#8217; castle?  Not very; any variety to be had will be in the number of contact points or impact velocity.  Are there any more variables to tease out that might make for some clever assaults?  Not really.  Gosh, I sure do spend a lot of time waiting for objects to come to rest instead of actually interacting with the game.  Meh.</p></blockquote>
<p>(I&#8217;m harsh on Angry Birds mostly because I feel a lonely disconnect from those that love it so much.  Despite it being a very well-produced game, I don&#8217;t think it&#8217;s innovative in the slightest, and I am flummoxed by its cultural penetration.  However, it&#8217;s a <em>damn </em>sight more likable and less evil than FarmVille.  But I digress&#8230;)</p>
<p>The idea that a game&#8217;s boredom quotient was inversely proportional to the number of possibilities it offered intrigued me.  I began to think about other games I found to be engaging and tried to relate them to this idea.  In particular, I wanted to zero-in on what these &#8220;possibilities&#8221; were and weren&#8217;t:</p>
<ul>
<li>Grand Theft Auto, Fallout 3 and other open world games: You&#8217;re challenged to find the edges of the world.  Possibilities are manifested as destinations that offer things to do and you haven&#8217;t done or seen before.  Appeals to the primal explorer in all of us.</li>
<li>Diablo, Borderlands, and other games with <a title="How to Randomly Generate Loot: Part 1" href="http://object01.com/2011/01/30/how-to-randomly-generate-loot-part-1/">randomly generated loot</a>: Numbers incarnate.  Possibilities lie in items having inherent uniqueness that affect the way you play the game.  The better the randomization behind the loot, the more possibilities you have.  Built on top of numerical engines, the possibilities tend to be vast, though it&#8217;s a challenge to combat players&#8217; natural tendency to &#8220;chunk&#8221; the range of items into sets that they reason are basically the same.</li>
<li>Deus Ex, Thief, and other &#8220;linear&#8221; games that emphasize non-linear completion paths: I tend to distinguish these games from Fallout 3 and its ilk mostly for lack of any open-world aspect.  These games offer problem solving possibilities.  Each completed mission leaves you wondering other ways you might have approached it.  (<a title="Stacking's Facebook Page" href="http://www.facebook.com/stackingvideogame" target="_blank">Stacking </a>is also interesting in this regard; it encourages you to replay missions with different strategies and rewards you for doing so.)</li>
<li>Just Cause 2, Bulletstorm, Minecraft, and other &#8220;show off&#8221; games: To whatever degree these games rank or reward you, they have &#8220;stunts&#8221; (<a title="Just Cause 2: Casino Fly-through" href="http://www.youtube.com/watch?v=3Ji2e-hA510" target="_blank">physical</a> or <a title="Minecraft: 16-bit ALU" href="http://www.youtube.com/watch?v=LGkkyKZVzug" target="_blank">structural</a>) as their underlying mechanic.  Possibilities lie in what you&#8217;re able to accomplish using the rules of the world, the more grandiose the better.</li>
<li>Minecraft, Little BigPlanet 1 &amp; 2: Need I say more?  Their possibilities are manifested in the levels made by its enormous playerbase, and those possibilities are seemingly infinite.</li>
</ul>
<p>There&#8217;s merit to the idea that possibilities are a fundamental ingredient of good games.  But there&#8217;s more to it: a weak signal under all this thinking is the idea that games give you a <em>sense</em> of possibility without revealing the possibilities all at once.  And there must be a way to codify possibilities in a meaningful way that distinguishes Angry Birds unlimited number of physics-driven slingshot outcomes from the unlimited number of worlds we see created in Little BigPlanet.  Furthermore, why do I seem to like Just Cause 2 more than Little BigPlanet when <em>clearly</em> the latter offers more to do?</p>
<p>Need to think more on that&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/object01.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/object01.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/object01.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/object01.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/object01.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/object01.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/object01.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/object01.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/object01.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/object01.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/object01.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/object01.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/object01.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/object01.wordpress.com/198/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=object01.com&amp;blog=97830&amp;post=198&amp;subd=object01&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://object01.com/2011/02/18/possibilities-what-keeps-a-game-from-being-boring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ebf349aee95d2b5f94697074275da03c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">object01</media:title>
		</media:content>
	</item>
		<item>
		<title>A Regular Expression for Parsing Comma-Separated Values</title>
		<link>http://object01.com/2011/02/18/a-regular-expression-for-parsing-comma-separated-values/</link>
		<comments>http://object01.com/2011/02/18/a-regular-expression-for-parsing-comma-separated-values/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 18:25:47 +0000</pubDate>
		<dc:creator>object01</dc:creator>
				<category><![CDATA[Not video games]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[regular expressions]]></category>
		<category><![CDATA[source code]]></category>

		<guid isPermaLink="false">http://object01.com/?p=225</guid>
		<description><![CDATA[I recently solved a CSV-parsing problem and was so proud of myself that I wanted to blog about it. The challenge: use regular expression to parse 9000+ calendar records expressed as comma-separated values. The catch: not all values are quoted, some values may be missing, quoted values may contain double-double-quotes (&#8220;&#8221;) as &#8220;escaped&#8221; quotation marks, <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=object01.com&amp;blog=97830&amp;post=225&amp;subd=object01&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently solved a CSV-parsing problem and was so proud of myself that I wanted to blog about it.</p>
<p>The challenge: use regular expression to parse 9000+ calendar records expressed as comma-separated values.</p>
<p>The catch: not all values are quoted, some values may be missing, quoted values may contain double-double-quotes (&#8220;&#8221;) as &#8220;escaped&#8221; quotation marks, and some quoted values may span multiple lines.  For example, here are some choice records from the file:</p>
<pre>"April 26, 2007",7:00p,1:00,Disaster Response,0,,1 to 1  presentation - delivered by John Doe
"April 27, 2007",6:00a,1:00,Men's breakfast,0,,"Contact: John Doe - ""monthly""
1/5 begins 3 flavors of Code
4/27 chapters 4-7"
"April 27, 2007",9:30a,1:00,Mother's Day Out,0,,
"April 27, 2007",7:00p,1:00,Anon,0,,</pre>
<p>The second record, with the last value spanning multiple lines, was the real tricky bit.  My strategy went something like this:</p>
<ul>
<li>Treat the entire file as a single string representing many records.</li>
<li>Assume that every record begins with a quoted date and ends with CRLF (\r\n).</li>
<li>Assume that every record has one or more comma-separated values.</li>
</ul>
<p>Here&#8217;s what I came up with, using <a title="Expresso" href="http://www.ultrapico.com/Expresso.htm" target="_blank">Expresso</a> (a .NET regex visualizer and editor) to guide me:</p>
<pre># Every record starts with a quoted date.
(?"(?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d+,\s\d+")

# And is followed by
# EITHER a comma and a term, zero or more times
(?:
  ,
  (?
    # EITHER a non-quoted, non-comma'd, single-line term...  
    (?:
      (?!") # mustn't start with a quote
      [^,\r\n]+
    )

    | # OR a quoted, possibly multiline term with commas and escaped ""s
    (?:
      " # must start with a quote
      (?:""|[^"])+ # any combination of EITHER characters that aren't single quotes OR double quotes
      " #must end with a single quote
    )

    | # OR nothing
  )
)*

# OR by a CRLF, guaranteed at the end of every record.
\r\n</pre>
<p>Or, with all the learning stripped out,</p>
<pre>(?"(?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d+,\s\d+")(?:,(?(?:(?!")[^,\r\n]+)|(?:"(?:""|[^"])+")|))*\r\n</pre>
<p>Works like a charm.</p>
<p>Some of the key options that make this regex work (in .NET at least):</p>
<ol>
<li>I&#8217;m ignoring whitespace within the regex (to make it <em>way</em> easier to read; I love comments)</li>
<li>The &#8216;.&#8217; character represents any character, including newlines.</li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/object01.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/object01.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/object01.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/object01.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/object01.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/object01.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/object01.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/object01.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/object01.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/object01.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/object01.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/object01.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/object01.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/object01.wordpress.com/225/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=object01.com&amp;blog=97830&amp;post=225&amp;subd=object01&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://object01.com/2011/02/18/a-regular-expression-for-parsing-comma-separated-values/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ebf349aee95d2b5f94697074275da03c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">object01</media:title>
		</media:content>
	</item>
		<item>
		<title>How to Randomly Generate Loot: Part 2</title>
		<link>http://object01.com/2011/02/01/how-to-randomly-generate-loot-part-2/</link>
		<comments>http://object01.com/2011/02/01/how-to-randomly-generate-loot-part-2/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 02:29:20 +0000</pubDate>
		<dc:creator>object01</dc:creator>
				<category><![CDATA[Video games]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[loot]]></category>
		<category><![CDATA[procedural algorithms]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://object01.com/?p=204</guid>
		<description><![CDATA[UPDATE: I accidentally published a draft.  Here&#8217;s the complete post. Part 1: What Makes a Gun? Part 2: Money &#38; Pie Proportions are what random generation is all about.  Whether you&#8217;re generating a gun, a sword, or a hero costume, everything you put into it is just one part of a bigger whole.  So when <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=object01.com&amp;blog=97830&amp;post=204&amp;subd=object01&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em><strong>UPDATE</strong>: I accidentally published a draft.  Here&#8217;s the complete post.</em></p>
<p><strong><a title="How to Randomly Generate Loot: Part 1" href="http://object01.com/2011/01/30/how-to-randomly-generate-loot-part-1/">Part 1: What Makes a Gun?</a></strong></p>
<p><strong>Part 2: Money &amp; Pie</strong></p>
<p><img class="aligncenter" src="http://chart.apis.google.com/chart?chs=350x300&amp;cht=p3&amp;chco=224499&amp;chd=s:oJDD&amp;chdl=Damage|Fire+rate|Clip+size|Reload+speed&amp;chdlp=b&amp;chp=15&amp;chma=0,0,0,5&amp;chtt=Gun+Pie" alt="Gun Pie" width="350" height="300" /></p>
<p>Proportions are what random generation is all about.  Whether you&#8217;re generating a gun, a sword, or a hero costume, everything you put into it is just one part of a bigger whole.  So when you add more of one ingredient, you have to take away from somewhere else.  This fundamental limitation is what keeps any one item from being ridiculously, stupidly awesome and overpowered.</p>
<h1>Money &amp; Pie</h1>
<p>A pie chart is an easy way to visualize proportions.  Consider the chart above.  It represents a simple gun that does a <em>lot</em> of damage, but isn&#8217;t such a great choice if fire rate, clip size, or reload speed is what you&#8217;re after.</p>
<p>You can vary the characteristics of the gun a lot by changing the proportions.  Not so good at aiming?  Try this:</p>
<p><img class="aligncenter" src="http://chart.apis.google.com/chart?chs=275x200&amp;cht=p3&amp;chco=224499&amp;chd=s:hdxs&amp;chdl=Damage|Fire+rate|Clip+size|Reload+speed&amp;chdlp=b&amp;chp=15&amp;chma=0,0,0,5&amp;chtt=Reload+speed+%2B+fire+rate+%3D+%22Ammo+pump%22" alt="Reload speed + fire rate = " width="275" height="200" /></p>
<p>Don&#8217;t care so much about tactics and just want to asplode things?</p>
<p><img class="aligncenter" src="http://chart.apis.google.com/chart?chs=275x200&amp;cht=p3&amp;chco=224499&amp;chd=s:smLQ&amp;chdl=Damage|Fire+rate|Clip+size|Reload+speed&amp;chdlp=b&amp;chp=15&amp;chma=0,0,0,5&amp;chtt=Damage+%2B+fire+rate+%3D+%22Bleedinator%22" alt="Damage + fire rate = " width="275" height="200" /></p>
<p>If this seems a bit abstract, then think of it like a budget.  Imagine <a href="http://borderlands.wikia.com/wiki/Jakobs" target="_blank">Jakobs</a> was designing the Bleedinator and had a fixed budget of $2,000,000.  They&#8217;d have to decide how much of that money goes to improving the gun&#8217;s damage, and how much of it goes to building a heat sink that supports that massive fire rate.  Take the same chart as above, but this time with dollar figures representing the salaries paid to the people in charge of those departments:</p>
<p><img class="aligncenter" src="http://chart.apis.google.com/chart?chs=500x250&amp;cht=p3&amp;chco=224499&amp;chd=s:smLQ&amp;chdl=Damage|Fire+rate|Clip+size|Reload+speed&amp;chdlp=b&amp;chp=15&amp;chl=%24807%2C335|%24697%2C244|%24201%2C836|%24293%2C582&amp;chma=0,0,0,5&amp;chtt=Bleedinator's+budget.+Employees+were+all+Claptraps." alt="Bleedinator's budget. Employees were all Claptraps." width="500" height="250" /></p>
<p>In <a title="How to Randomly Generate Loot: Part 1" href="http://object01.com/2011/01/30/how-to-randomly-generate-loot-part-1/" target="_blank">Part 1</a>, I said that an item&#8217;s worth is far from unimportant: thinking of a randomly generated loot in terms of total worth can be handy when you want to develop a random generation algorithm that scales items&#8217; power along with the player.  A gun&#8217;s pricetag can act as a multiplier for its many characteristics.</p>
<p>For a simple example, let&#8217;s imagine making random guns for a new player starting at level 1.  We make a rule: level 1 players get guns worth $100,000, level 2 players get guns worth $200,000, and so on.  Just like in real life, you get what you pay for, and in a given level, the attributes the player sees on his guns will float in a range appropriate for level 1 players.  Then, as the player levels up, he&#8217;ll see those attributes improve as more &#8220;money&#8221; is spent on them.</p>
<p>But this makes for a pretty boring economy, right?  Any player will quickly realize that all their guns sell for the same amount.  We need to randomize not just the guns&#8217; attributes, but their worth, too.  Refining our rule for budgets, let&#8217;s say that level 1 players get guns worth anywhere between $100,000 and $200,000, level 2 players get guns worth $150,000-$250,000, etc.</p>
<p>If you wanted to get even more elaborate, you can randomize a gun&#8217;s worths based on a curve.  This adds a simple &#8220;rarity&#8221; mechanic, whereby every now and then the player will get an exceptionally good gun.  Start by rolling a random number between 0.0 and 1.0.  Then find the worth corresponding to that number on a &#8220;rarity curve&#8221;:</p>
<p><img class="aligncenter" src="http://chart.googleapis.com/chart?chxr=0,0,1|1,150000,250000&amp;chxs=1N*cUSD,676767,11.5,0,lt,676767&amp;chxt=x,y&amp;chs=300x200&amp;cht=lxy&amp;chco=3072F3&amp;chds=0,100,0,1&amp;chd=t:-1|0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.001,0.001,0.001,0.001,0.002,0.002,0.002,0.003,0.003,0.004,0.005,0.005,0.006,0.007,0.008,0.009,0.01,0.012,0.013,0.015,0.017,0.019,0.021,0.023,0.026,0.028,0.031,0.034,0.037,0.041,0.045,0.049,0.053,0.058,0.063,0.068,0.073,0.079,0.085,0.092,0.098,0.106,0.113,0.121,0.13,0.138,0.148,0.158,0.168,0.179,0.19,0.202,0.214,0.227,0.24,0.254,0.269,0.284,0.3,0.316,0.334,0.352,0.37,0.39,0.41,0.43,0.452,0.475,0.498,0.522,0.547,0.573,0.6,0.627,0.656,0.686,0.716,0.748,0.781,0.815,0.849,0.885,0.922,0.961&amp;chdlp=b&amp;chg=10,10&amp;chls=2&amp;chma=5,5,5,25&amp;chtt=Rarity+Curve+(x%5E4)" alt="Rarity Curve (x^4)" width="300" height="200" /></p>
<p>With this (simple and exaggerated) curve, about 10% of your guns&#8211;those created when you rolled between 0.9 and 1.0&#8211;are likely to yield worths between about $215,000 and $200,000.  A majority of your guns, though, will end up on the $150,000 side of the scale.</p>
<p>This is just one approach to randomly generating loot.  It&#8217;s a model that&#8217;s based on carving pieces of quality out of a chunk of predetermined worth.  Another model might use rarity as a starting point.  It&#8217;s nowhere near as sophisticated as what you&#8217;d find in Borderlands or Diablo, but it illustrates some of the important relationships and constraints among all the factors in play.  As we move closer to writing code around this idea, there remain lots of gotchas to consider, like making sure that none of your slices are so small as to be worthless.  I&#8217;ll explore some ways to work in some of the more abstract characteristics, like ammo type and elemental (optional) attributes.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/object01.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/object01.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/object01.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/object01.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/object01.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/object01.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/object01.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/object01.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/object01.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/object01.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/object01.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/object01.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/object01.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/object01.wordpress.com/204/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=object01.com&amp;blog=97830&amp;post=204&amp;subd=object01&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://object01.com/2011/02/01/how-to-randomly-generate-loot-part-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ebf349aee95d2b5f94697074275da03c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">object01</media:title>
		</media:content>

		<media:content url="http://chart.apis.google.com/chart?chs=350x300&#38;cht=p3&#38;chco=224499&#38;chd=s:oJDD&#38;chdl=Damage&#124;Fire+rate&#124;Clip+size&#124;Reload+speed&#38;chdlp=b&#38;chp=15&#38;chma=0,0,0,5&#38;chtt=Gun+Pie" medium="image">
			<media:title type="html">Gun Pie</media:title>
		</media:content>

		<media:content url="http://chart.apis.google.com/chart?chs=275x200&#38;cht=p3&#38;chco=224499&#38;chd=s:hdxs&#38;chdl=Damage&#124;Fire+rate&#124;Clip+size&#124;Reload+speed&#38;chdlp=b&#38;chp=15&#38;chma=0,0,0,5&#38;chtt=Reload+speed+%2B+fire+rate+%3D+%22Ammo+pump%22" medium="image">
			<media:title type="html">Reload speed + fire rate = </media:title>
		</media:content>

		<media:content url="http://chart.apis.google.com/chart?chs=275x200&#38;cht=p3&#38;chco=224499&#38;chd=s:smLQ&#38;chdl=Damage&#124;Fire+rate&#124;Clip+size&#124;Reload+speed&#38;chdlp=b&#38;chp=15&#38;chma=0,0,0,5&#38;chtt=Damage+%2B+fire+rate+%3D+%22Bleedinator%22" medium="image">
			<media:title type="html">Damage + fire rate = </media:title>
		</media:content>

		<media:content url="http://chart.apis.google.com/chart?chs=500x250&#38;cht=p3&#38;chco=224499&#38;chd=s:smLQ&#38;chdl=Damage&#124;Fire+rate&#124;Clip+size&#124;Reload+speed&#38;chdlp=b&#38;chp=15&#38;chl=%24807%2C335&#124;%24697%2C244&#124;%24201%2C836&#124;%24293%2C582&#38;chma=0,0,0,5&#38;chtt=Bleedinator&#039;s+budget.+Employees+were+all+Claptraps." medium="image">
			<media:title type="html">Bleedinator&#039;s budget. Employees were all Claptraps.</media:title>
		</media:content>

		<media:content url="http://chart.googleapis.com/chart?chxr=0,0,1&#124;1,150000,250000&#38;chxs=1N*cUSD,676767,11.5,0,lt,676767&#38;chxt=x,y&#38;chs=300x200&#38;cht=lxy&#38;chco=3072F3&#38;chds=0,100,0,1&#38;chd=t:-1&#124;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.001,0.001,0.001,0.001,0.002,0.002,0.002,0.003,0.003,0.004,0.005,0.005,0.006,0.007,0.008,0.009,0.01,0.012,0.013,0.015,0.017,0.019,0.021,0.023,0.026,0.028,0.031,0.034,0.037,0.041,0.045,0.049,0.053,0.058,0.063,0.068,0.073,0.079,0.085,0.092,0.098,0.106,0.113,0.121,0.13,0.138,0.148,0.158,0.168,0.179,0.19,0.202,0.214,0.227,0.24,0.254,0.269,0.284,0.3,0.316,0.334,0.352,0.37,0.39,0.41,0.43,0.452,0.475,0.498,0.522,0.547,0.573,0.6,0.627,0.656,0.686,0.716,0.748,0.781,0.815,0.849,0.885,0.922,0.961&#38;chdlp=b&#38;chg=10,10&#38;chls=2&#38;chma=5,5,5,25&#38;chtt=Rarity+Curve+(x%5E4)" medium="image">
			<media:title type="html">Rarity Curve (x^4)</media:title>
		</media:content>
	</item>
		<item>
		<title>How to Randomly Generate Loot: Part 1</title>
		<link>http://object01.com/2011/01/30/how-to-randomly-generate-loot-part-1/</link>
		<comments>http://object01.com/2011/01/30/how-to-randomly-generate-loot-part-1/#comments</comments>
		<pubDate>Mon, 31 Jan 2011 03:19:56 +0000</pubDate>
		<dc:creator>object01</dc:creator>
				<category><![CDATA[Video games]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[loot]]></category>
		<category><![CDATA[procedural algorithms]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">https://object01.wordpress.com/?p=200</guid>
		<description><![CDATA[This is the first in a series of posts where I'll walk through one imagining of how such a system might work.  Because I think guns are more fun than swords, I'm going to use the Borderlands weapon system as a reference.  But the same technique could be applied to swords so long as they shoot bullets.  Normal swords won't work<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=object01.com&amp;blog=97830&amp;post=200&amp;subd=object01&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Part 1: What Makes a Gun?</strong></p>
<p><strong><a title="How to Randomly Generate Loot: Part 2" href="http://object01.com/2011/02/01/how-to-randomly-generate-loot-part-2/">Part 2: Money &amp; Pie</a></strong></p>
<p>Ever wonder how <a title="Borderlands" href="http://borderlandsthegame.com" target="_blank">Borderlands</a> randomly generates its guns?</p>
<p>You might think it&#8217;s just a matter of rolling the dice for each of a gun&#8217;s many attributes. Damage? Roll the dice, 10-300.  Clip size?  Roll the dice again, 16-92.  But it&#8217;s not quite that simple; such an approach doesn&#8217;t say anything about the gun&#8217;s rareness, or suitableness for the player&#8217;s current level. Without algorithms that establish relationships between things like fire rate, damage, and clip size, there&#8217;s nothing to stop the game from eventually producing a single stupid-powerful gun with all its attributes pinned as high as the dice will allow.  That would be a fun gun for about 10 minutes, but then it would just be overcompensating.</p>
<p>This is the first in a series of posts where I&#8217;ll walk through one imagining of how such a system might work.  Because I think guns are more fun than swords, I&#8217;m going to use the Borderlands weapon system as a reference.  But the same technique could be applied to swords so long as they shoot bullets.  Normal swords won&#8217;t work.</p>
<p>I want to make it clear that I don&#8217;t work for Gearbox Software and don&#8217;t claim to know the &#8220;secret sauce&#8221; behind their gun tech. I&#8217;m just a programmer that&#8217;s fascinated by procedurally-generated content and can offer a simple blueprint to others who might want to build their own.</p>
<h1>What Makes a Gun?</h1>
<p>Let&#8217;s start by identifying a gun&#8217;s intrinsic characteristics.  These are the properties we&#8217;ll eventually have to randomize.  At their simplest, guns might be defined by:</p>
<ol>
<li>Damage</li>
<li>Fire rate</li>
<li>Clip size</li>
<li>Reload speed</li>
</ol>
<p>But if you&#8217;re building a big game in which the players will spend 99% of their time playing with guns, there are other attributes that those gun aficionados are likely to be interested in in the heat of combat:</p>
<ol>
<li>Accuracy: the likelihood that a bullet will hit the exact pixel under reticle.</li>
<li>Recoil: related to accuracy; this is the degree to which pulling the trigger will throw off your aim.</li>
<li>Weight: this could affect the player&#8217;s movement speed or factor into inventory management.</li>
<li>Elemental damage: e.g. fire, lightning, etc.</li>
<li>Full-auto or semi-auto?</li>
</ol>
<p>There&#8217;s, more, though.  Pay close attention to games like Borderlands and you&#8217;ll realize that there are other things the game engine must conjure whenever it&#8217;s asked to produce a gun:</p>
<ol>
<li>Class of gun: is it a rifle? a rocket launcher? a rare alien weapon?</li>
<li>Class of projectile: does that shotgun fire buckshot or rockets?  (Bravo by the way, Gearbox.  What were you smoking?)</li>
<li>Player class restrictions: Borderlands only applies these to mods, but other games are big on restricting weapons to specific classes.</li>
<li>Multipliers: most frequently added to damage, they can be added to other things, too, like the number of bullets fired per shot (still a damage multiplier, but cleverly realized in Borderlands)</li>
<li>Worth: how much can you sell it for?  &#8221;Bah!&#8221; I hear you say.  Who cares?  Not important, right?  After all, most players find an RPG&#8217;s currency unimportant after a certain level.  They&#8217;ll sell it just to get it out of their inventory.  But not so fast! As it turns out, in the approach I&#8217;ll show you, it actually provides a neat jumping-off point for a mental model about randomization.</li>
<li>Rarity: very important! This can have a fundamental impact on how the randomizer calculates all other attributes.  Interestingly, rarity can be an input to the overall randomizer or an output of it.  That is, you can either pick a certain rarity first and randomize the gun accordingly, or you can randomize all the attributes first and then label the gun with a rarity according to the probability that such a randomization could occur.  I&#8217;ll be taking the former approach; it&#8217;s way easier.</li>
</ol>
<p>Fortunately, regardless of how many characteristics you can think of that make up a gun, having more of them doesn&#8217;t make it harder to randomize them.  So go nuts.</p>
<p>In the next post, I&#8217;ll talk about pie.  Procedurally-generated loot is always better with pie.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/object01.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/object01.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/object01.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/object01.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/object01.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/object01.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/object01.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/object01.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/object01.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/object01.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/object01.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/object01.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/object01.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/object01.wordpress.com/200/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=object01.com&amp;blog=97830&amp;post=200&amp;subd=object01&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://object01.com/2011/01/30/how-to-randomly-generate-loot-part-1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ebf349aee95d2b5f94697074275da03c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">object01</media:title>
		</media:content>
	</item>
		<item>
		<title>OnLive Review</title>
		<link>http://object01.com/2011/01/23/onlive-review/</link>
		<comments>http://object01.com/2011/01/23/onlive-review/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 04:26:54 +0000</pubDate>
		<dc:creator>object01</dc:creator>
				<category><![CDATA[Video games]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[game industry]]></category>
		<category><![CDATA[OnLive]]></category>
		<category><![CDATA[reviews]]></category>

		<guid isPermaLink="false">http://object01.com/?p=194</guid>
		<description><![CDATA[I went into my first OnLive experience with a lot of technical skepticism.  I had unshakable preconceptions about what a "streamed" game would look and feel like.  Those preconceptions were annihilated.  Technically, OnLive is astonishing.  I feel embarrassed for people who panned it before it even launched<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=object01.com&amp;blog=97830&amp;post=194&amp;subd=object01&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I upgraded my connectivity from 1.5Mbps (AT&amp;T DSL) to 16Mbps (Charter cable) this week, just days after my <a title="OnLive MicroConsole" href="http://www.onlive.com/game-system" target="_blank">OnLive MicroConsole</a> arrived.  Having finally joined that enviable class of of U.S. citizens that have respectable broadband, I was eager to try it.</p>
<p>I couldn&#8217;t, because it doesn&#8217;t support WiFi.  So I tried it on my MacBook Pro (running Windows 7) instead.</p>
<p>I went into my first OnLive experience with a lot of technical skepticism.  I had unshakable preconceptions about what a &#8220;streamed&#8221; game would look and feel like.  Those preconceptions were annihilated.  Technically, OnLive is astonishing.  I feel embarrassed for people who panned it before it even launched.</p>
<p>The games run with minimal&#8211;if any&#8211;compression artifacting, they run at high resolution, and at what I perceive to be 60 frames per second.  What impressed me most was that I could play Dark Void at a higher framerate via OnLive than I could on my XBox or PS3.</p>
<p>I measured its network usage and found that a gameplay session consumes a steady 6Mbps; about half of my total bandwidth on an average day in cable land.  With a wired connection, games played great.  Over WiFi (802.11g), they also played great, but with occasional video glitches similar to what you see occasionally in HD TV.</p>
<p>OnLive&#8217;s biggest technical drawback is the input lag, which <em>is</em> noticeable when fine-grained movements are involved.  Think aiming in first-person shooters or steering in driving games&#8211;these gameplay stables require some finesse to counteract the delay between action and result.  (In Dark Void, the mouse&#8217;s &#8220;sensitivity&#8221; setting seemed to have no effect.)  But despite the lag&#8211;maybe 1/5th of a second?&#8211;I found myself thinking that it was not much worse than I might experience trying to run a high-performance game on a low-performance PC, or when playing a multiplayer game over a lousy connection.  I&#8217;m not totally used to it yet, but I&#8217;m getting there.</p>
<p>I&#8217;m not a sound enthusiast, but I wasn&#8217;t struck by any of the games&#8217; audio being strange in any way.</p>
<p>OnLive&#8217;s UI is particularly interesting.  The OnLive &#8220;Launcher&#8221; you install on your PC is apparently a very thin client that streams not only the games, but the menus you use to browse and play them.  Running the UI in the OnLive infrastructure makes for some cool possibilities, like presenting a screen full of video thumbnails (the &#8220;Arena&#8221;) each showing a live feed of a game being played by another person.  Clicking a thumbnail zooms that video to full-screen seamlessly, and pressing ESC backs you out just as seamlessly.  The fluidity of OnLive&#8217;s UI feels like a very polished <a title="Wikipedia: attract mode" href="http://en.wikipedia.org/wiki/Attract_mode" target="_blank">attract mode</a>.  This design choice works to especially great effect on OnLive&#8217;s iPad Viewer, which I found was a really fun way to browse the Arena, others members&#8217; Brag Clips, and game trailers.</p>
<p>Being able to spectate other players&#8217; games in the Arena  is more fun than I thought it would be.  It&#8217;s a strategically shrewd feature for OnLive to offer; it keeps people on the service instead of logging off during breaks.  And it dares to show players (read: potential buyers) footage from the game that review shows and podcasts won&#8217;t&#8211;from boring lulls to surprise spoilers.  It&#8217;s risky, carrying the potential to both increase and decrease purchases, but it&#8217;s fun (and <em>easy</em>) to play with and is <em>very</em> compelling for new users trying to decide whether a $9.99/month fee or a rental/purchase price is worthwhile.  What better way to decide whether you like a game enough to purchase it than to watch it played by others?  Even if it doesn&#8217;t result in short term purchases, it improves long term fun; after all, I&#8217;ve always said that watching other people play games is almost as fun, and sometimes more fun, than playing it yourself.  Fun sells.</p>
<p>Brag Clips are a neat feature, too, serving as OnLive&#8217;s clever answer to the need-it-to-compete social pressures in today&#8217;s game industry.  They could make Microsoft and Sony take notice.  (Nintendo, sadly, will continue to ignore it.)  During play, you use a shortcut key to capture the last 10 seconds of your game to a video clip that&#8217;s saved on the service.  Once captured, the Brag Clip appears on the game&#8217;s profile page as well as the player&#8217;s.  You can find some great Brag Clips from Just Cause 2 that just go to show why the game is <a title="Why Just Cause 2 is So Much Damn Fun" href="http://object01.com/2011/01/08/whyjustcause2issomuchdamnfu/" target="_blank">so much damn fun</a>.</p>
<p>What about the game library?  A+ for effort.  If nothing else, it shows that the staff in charge of filling it have decent taste in games.  There&#8217;s an eclectic mix of solo and multiplayer games, casual and hardcore games, and genres ranging from point-and-click adventures to first-person shooters to simulations.  With a  &#8221;Coming Soon&#8221; lineup that includes Deux Ex: Human Revolution and Assassin&#8217;s Creed: Brotherhood, it&#8217;s obvious that OnLive is in tune with the gaming population.  Combined with a brilliantly-executed preview-to-rental-to-purchase pricing model, and <a title="OnLive Blog: OnLive Everywhere: HDTVs, Blu-ray Players, Tablets and Phones—and a Sale to Celebrate" href="http://blog.onlive.com/2011/01/04/onlive-everywhere-hdtvs-blu-ray-players-tablets-and-phones%e2%80%94and-a-sale-to-celebrate/" target="_blank">forthcoming embedding in Vizio devices</a>, OnLive stands to deftly sidetrack some market share that might otherwise have gone to Valve&#8217;s Steam service.  Some journalists would have us believe that Steam would dominate the digital distribution market; game over.  But if OnLive keeps their current pace, that&#8217;s definitely not a foregone conclusion.  OnLive&#8217;s momentum has an almost Netflixian quality.  It&#8217;s exciting, even though it suffers from the same content problems.</p>
<p>What a risk.  God, what a risky service.  I felt the pangs of the experimental business model as I played.  I don&#8217;t like the idea of not having physical&#8211;hm&#8230; well, let&#8217;s say <em>local</em>&#8211;copies of the games I play.  A lot of that angst stems from knowing that I&#8217;ll arguably get a better experience from a local copy.  Some comes from the idea that I&#8217;ll lose access to purchased games if OnLive ever goes under.  (It&#8217;s not like they can just keep some DRM servers running to facilitate my playing.)  But let&#8217;s face it; most of the gamers out there probably don&#8217;t look at their games in the under-the-hood techie way I do.  They just want to play, without giving much care to what it is that gets them there.</p>
<p>Despite all my hangups about the execution of these games, and mixed anxiety and enthusiasm about the future of cloud gaming in general, I found that it all subsided (as it should when enjoying any good escapism) when I let myself marinate in the game I was playing.  When I&#8217;m honest with myself about the degree to which I was engaged in the game on OnLive vs. on my home console, I can say the two experiences aren&#8217;t substantially different.  And that&#8217;s telling.  OnLive is technical lightning in a bottle, and clearly has designs on other aspects of the gaming lifestyle (e.g. social), too.  OnLive has the makings of a formidable competitor in the gaming industry.  Anyone who was wondering what a challenger to traditional consoles might look like can find out by taking OnLive for a spin.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/object01.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/object01.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/object01.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/object01.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/object01.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/object01.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/object01.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/object01.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/object01.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/object01.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/object01.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/object01.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/object01.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/object01.wordpress.com/194/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=object01.com&amp;blog=97830&amp;post=194&amp;subd=object01&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://object01.com/2011/01/23/onlive-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ebf349aee95d2b5f94697074275da03c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">object01</media:title>
		</media:content>
	</item>
		<item>
		<title>I&#8217;ve got an idea for a game&#8230;</title>
		<link>http://object01.com/2011/01/10/ive-got-an-idea-for-a-game/</link>
		<comments>http://object01.com/2011/01/10/ive-got-an-idea-for-a-game/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 03:56:19 +0000</pubDate>
		<dc:creator>object01</dc:creator>
				<category><![CDATA[Video games]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[Resolution 2011]]></category>

		<guid isPermaLink="false">http://object01.com/?p=181</guid>
		<description><![CDATA[I thought I&#8217;d post the idea for the game I&#8217;ll be working on this year as part of my 2011 New Year&#8217;s Resolution. I wonder if posting the idea for my game will motivate me to realize it. That is, after all, this year&#8217;s big suspense: can I stay motivated and/or carve out enough time <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=object01.com&amp;blog=97830&amp;post=181&amp;subd=object01&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I thought I&#8217;d post the idea for the game I&#8217;ll be working on this year as part of my <a title="New Year's Resolution 2011" href="http://object01.com/2010/12/31/new-years-resolution-2011/" target="_blank">2011 New Year&#8217;s Resolution</a>.</p>
<p>I wonder if posting the idea for my game will motivate me to realize it. That is, after all, this year&#8217;s big suspense: can I stay motivated and/or carve out enough time to finish the job?</p>
<p><strong>Here&#8217;s the pitch:</strong> it&#8217;s a casual game that has you pick things up and drop them in the right place to achieve a high score before time runs out.</p>
<p>In the only prototype I&#8217;ve made (for Windows / Xbox 360; I may make it available for download), the things you&#8217;re picking up are green dots. Each one has a number associated with it, but you don&#8217;t see that number until you pick up the dot. Elsewhere in the playspace are red squares, each labeled with a number. When you pick up a dot, you must drop it on the red square having the same number.</p>
<p>The dots and squares are laid out randomly on screen. The playspace extends up, down, left, and right, and is not limited in size. You use the controller (or keyboard) to move the camera over the playspace. In the center of the screen is a reticle, about the same size and shape as one of the dots. To pick up a dot, you move the reticle over it and pull the trigger. To drop it, you pull the trigger again. If you drop a dot on top of the correct red square, both are removed from the playspace.</p>
<p>Scoring is multiplier-based. When you match a dot to a square, you&#8217;re awarded points according to the current multiplier, and the multiplier increases by one. At the same time, a timer is reset and begins counting down. You can keep increasing your multiplier indefinitely as long as that timer isn&#8217;t allowed to expire; if it does, the multiplier resets to x1.</p>
<p>The multiplier also affects movement speed. A x1 multiplier has you moving at a reasonable speed, but higher multipliers mean you move gradually faster. Though the multiplier can increase indefinitely, your speed is capped to keep the game playable.</p>
<p>The game ends when time runs out. When you start a new game, so many seconds are put on the clock. The clock runs down as you play, and this is represented on screen as a dark shadow closing in on the center of the screen, like a spotlight gradually dimming, making it harder to see the available dots and squares. The screen gets darker as the clock approaches zero, and the game ends when time runs out. You can put some seconds back on the clock by matching dots to squares, but time awards aren&#8217;t multiplier based.</p>
<p>A working title is &#8220;Entanglement&#8221;, after the idea of quantum entanglement, whereby two particles are intrinsically paired with each other.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/object01.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/object01.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/object01.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/object01.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/object01.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/object01.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/object01.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/object01.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/object01.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/object01.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/object01.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/object01.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/object01.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/object01.wordpress.com/181/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=object01.com&amp;blog=97830&amp;post=181&amp;subd=object01&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://object01.com/2011/01/10/ive-got-an-idea-for-a-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ebf349aee95d2b5f94697074275da03c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">object01</media:title>
		</media:content>
	</item>
		<item>
		<title>Why Just Cause 2 is So Much Damn Fun</title>
		<link>http://object01.com/2011/01/08/whyjustcause2issomuchdamnfu/</link>
		<comments>http://object01.com/2011/01/08/whyjustcause2issomuchdamnfu/#comments</comments>
		<pubDate>Sat, 08 Jan 2011 20:33:37 +0000</pubDate>
		<dc:creator>object01</dc:creator>
				<category><![CDATA[Video games]]></category>
		<category><![CDATA[Analysis]]></category>

		<guid isPermaLink="false">http://object01.com/?p=172</guid>
		<description><![CDATA[Yahtzee Croshaw posted his Top 5 of 2010 list recently. SPOILER ALERT! Yahtzee picked Just Cause 2 as his #1 game for 2010.  I don&#8217;t know if I&#8217;ve ever felt more validated. I liked Just Cause 2 as much as (I dare say more than) he did for what seem like all the same reasons.  Like <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=object01.com&amp;blog=97830&amp;post=172&amp;subd=object01&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yahtzee Croshaw posted his <a title="Zero Punctuation: Top 5 of 2010" href="http://www.escapistmagazine.com/videos/view/zero-punctuation/2607-Top-5-of-2010" target="_blank">Top 5 of 2010</a> list recently.</p>
<p><strong><span style="color:#ff0000;"><em>SPOILER ALERT!</em></span></strong></p>
<p>Yahtzee picked Just Cause 2 as his #1 game for 2010.  I don&#8217;t know if I&#8217;ve ever felt more validated.</p>
<p>I liked Just Cause 2 as much as (I dare say more than) <a title="Zero Punctuation: Just Cause 2" href="http://www.escapistmagazine.com/videos/view/zero-punctuation/1632-Just-Cause-2" target="_blank">he did</a> for what seem like all the same reasons.  Like him, it&#8217;s the only game I want to keep playing even though I finished it long ago.</p>
<p>I love this game so much that I feel guilty for having not played the first one.  I&#8217;ve honestly considered letting it bump Super Metroid as my favorite-game-of-all-time.</p>
<p>It&#8217;s not perfect.  But I don&#8217;t care.  It&#8217;s too much fun.</p>
<p>I posted some of <a title="Just Cause 2 and My Study of Measurable Funness" href="http://object01.com/2010/05/02/just-cause-2-and-my-study-of-measurable-funness/" target="_blank">my thoughts on Just Cause 2</a> last year, but didn&#8217;t go into detail about why I love this game so much.  Instead, I heaped adoring praise upon the game and asked a bunch of rhetorical questions like a giddy kid.</p>
<p>I don&#8217;t wear giddy well.  So I wanted to explore more about why this game is so much damn fun.</p>
<h1>Why Just Cause 2 Is So Much Damn Fun</h1>
<p>Why is Just Cause 2 so much damn fun?</p>
<h2>1. It&#8217;s Hard to Die.</h2>
<p>I don&#8217;t have time to die.  I have a day job.  You say Just Cause 2 is too easy?  Phht.  Yeah, easy to have fun with.  No one has ever explained to my satisfaction how dying and having to repeat something in a game is fun.</p>
<p>At its simplest, Just Cause 2 is about fun, not challenge.  That ain&#8217;t bad.</p>
<h2>2. It&#8217;s big.</h2>
<p>Among modern games, I think Panau is second in size only to the landscape in Fuel, which currently holds the <a href="http://kotaku.com/5265942/fuel-is-the-biggest-console-game-ever" target="_blank">Guiness World Record</a>.</p>
<p>More world means more to explore.  Exploration is fun.  Therefore, Just Cause 2 is fun.</p>
<p>Specious?  Yes.  But Just Cause 2 wouldn&#8217;t be as fun as it is if Panau were much smaller.  This has to do with the gameplay it offers; more on that below.</p>
<p>Fallout 3 was fun, too.  (Right?)  And Fallout 3 is big, right?  I never came close to discovering all the locations it had to offer.  But I didn&#8217;t feel compelled to, either.  In Panau, I wanted to explore all day long.  I attribute this difference in attitude to #3 below.</p>
<p><span style="font-size:20px;font-weight:bold;">3.  It&#8217;s easy to explore.</span></p>
<p>To explore everything Fallout 3 had to offer, you had to walk.    Walking isn&#8217;t much fun.  It&#8217;s too slow, and I don&#8217;t have time for it.  Plus, in Fallout 3, you often walk right into a big bad something that wants to kill you and stands a good chance of succeeding if you aren&#8217;t on your toes.</p>
<p>That works for Fallout 3.  I get it; it&#8217;s simulates surviving in a postapocalyptic wasteland.  Well done.  But to say Fallout 3 is fun for that reason is like saying <a title="The Road on Amazon" href="http://www.amazon.com/Road-Cormac-McCarthy/dp/0307265439" target="_blank">The Road</a> is fun to read.  Maybe this deserves a separate post, but sometimes I wonder whether Fallout 3 is actually fun.  It&#8217;s compelling and thought-provoking and engaging and immersive, but fun?  Hm.</p>
<p>I digress.  Just Cause 2 is easy to explore.  Because exploration is fun, making exporation easy makes the rate of fun-having go up.</p>
<p>Just Cause 2 doesn&#8217;t let you fast-travel to any location on the map from the outset, but it comes close.  You can move quite fast with the parachute and grappling hook working together.  You can summon a helicopter with a bit of misbehavior and fly it for as long as you like, anywhere you like.  The entire world is available to you from the start, unlike the GTAs of the world.  With the game&#8217;s fastest jet, you could probably fly by the game&#8217;s 400+ locations in an hour or two.</p>
<p>There&#8217;s an interesting subtlety here; a bit of design wisdom.  Just Cause 2&#8242;s size is so important <em>because</em> it&#8217;s so easy to explore.  Think about it: Rico can cover a lot of ground <em>really</em> fast.  That ability is one of Just Cause 2&#8242;s draws, and so the world has to support it by being so big that you aren&#8217;t running into its edges very often.  Because discovering the edge of your universe is no fun at all.  In fact, it&#8217;s disillusioning.</p>
<p>I reel when I think of the design forces that must have led to <a title="Avalance Studios" href="http://www.avalanchestudios.se/" target="_blank">Avalanche</a> making the world so big.  Panau is like a perversely-awesome 3D manifestation of scope creep.  Unless one of the devs tells me otherwise, I&#8217;m forced to think that the size of Panau was a side effect of other design decisions.  That is, they made the world so big only because other decisions demanded it.  The world&#8217;s characteristics rarely contribute as much to a game&#8217;s fun as its gameplay, and I wager that Avalanche settled on gameplay first and let the world grow to support it.</p>
<h2>4. &#8220;Open&#8221; means <em>open.</em></h2>
<p>I love open-world games.  But I&#8217;m irritated at how closed some of them are, at least when the game starts.</p>
<p>Because Panau is open for business from the moment I start the game (or at least pass the tutorial mission), I have complete freedom to play in the sandbox however I want.  That&#8217;s more fun than it would be if I knew I&#8217;d be coming up on artificial barriers I had to surmount.</p>
<p>Contrast this with a game like Grand Theft Auto.  Ever since its open-world foray, the Grand Theft Auto series has restricted new players in the places they could go in the world.  Only once they achieve milestones in the game do those areas open up.  Rockstar did the same thing with Red Dead Redemption.  Pandemic did it with The Saboteur.  Even Fallout 3 does it, though to a smaller degree, by cordoning off some areas with &#8220;gates&#8221; that could be surmounted early with sufficient effort but were really meant to be opened gradually via milestone achievement or character leveling.</p>
<p>Don&#8217;t get me wrong; I loved all those games.  But I had the most fun with Just Cause 2.</p>
<p>While I&#8217;m on it, Fallout 3 does employs another trick that I find less irritating than GTA&#8217;s but still contrary to the spirit of open world games.  It had &#8220;pockets&#8221; of world with a limited number of entry points, like the supermutant-controlled Washington Monument area.  Within these pockets, the spaces&#8217; designs reminded me of a theme park (as well as many deathmatch maps).  It <em>seems</em> big, but it&#8217;s really much smaller than it looks.  The illusion comes from the motion you must perform to navigating winding paths that have been crammed into a small area.  The paths are decidedly linear, and pollute the openness of the world.  Fable II and III do this too, but pull off the illusion better than Fallout 3 did.</p>
<h2>5. It improved on the traditional scavenger hunt.</h2>
<p>I&#8217;ve always been a fan of scavenger hunts in games.  I like having the distraction when I&#8217;m not following a more mainstream objective.  But Just Cause 2 made a big leap forward and did their scavenger hunt right, with the simple addition of a hot-or-cold meter.</p>
<p>I never found all the hidden packages in Grand Theft Auto 3, and lost any enthusiasm to find them after finding the first 10 or so <em>by accident</em>.  Never tried to find all the bobbleheads in Fallout 3.  Both tasks were too difficult without help from the internet.  These were tacked-on scavenger hunts that didn&#8217;t contribute a lot of fun because their novelty wore off as soon as I realized how unreasonable they were.</p>
<p>Just Cause 2 does it better.  Rico&#8217;s signal finder is a facepalmingly-simple mechanism that changes its scavenger hunt from cruel to fun.  (I wonder if there&#8217;s a hot-or-cold game I could get for Izzy that uses simple transmitters and a receiver to give her something to do around the house when she&#8217;s older?)</p>
<p>(I hasten to say that Fable II&#8217;s trashtalking gnomes were another great advance in the scavenger hunt motif.  Still never found all of them, though.  Takes too long to cover ground in that game.)</p>
<p>Then, Avalanche threw us a bone and added completion meters to most of the areas in which scavengable items can be found.  Doing so effectively shrinks the area I know I have to search.  That eliminates repeated searches, and so gets rid of a fun sink that turned me off to searching GTA&#8217;s world.</p>
<p>But it doesn&#8217;t eliminate all of it.  What will keep me from attaining 100% completion in Just Cause 2 is the fact that many of the scavengable items are located outside of any completion-metered zone.  That&#8217;s frustrating.  Avalanche might have dramatically increased the range of the signal finder, or provided some kind of hint on the map.</p>
<p>That notwithstanding, the items that <em>are</em> in metered zones are fun to find, and there are a lot of them.  Maybe half of the item classes offer immediate rewards when you collect them.</p>
<p>But I have to say it: I spent a frustratingly long time trying to complete Panau&#8217;s capital city.  At about 95% completion, I had to develop a systematic search pattern to find the one water tower that had eluded me for hours.  Ugh.  I would have appreciated the ability to call Sheldon and purchase some kind of satellite support that painted my targets, making them substantially easier to see from the air.</p>
<h2>6. For the most part, missions were fun to play.</h2>
<p>Some of Just Cause 2&#8242;s missions made an impression on me.  Most of them were simply-designed, amounting to chase this, asplode that.  Others were a little more epic.  My favorite was probably the mission that had you jet out of a hangar toward a missle that looked like a fat grain silo slowly lifting into space.  It was fun to play because it was so silly, so over the top, that I wanted to do it again just because it made me laugh.</p>
<p>Just Cause 2&#8242;s mission design may have benefit most from the Avalanche engine that powered the game.  The designers seemed to have unprecedented freedom in constructing missions from set pieces of epic size, but they used that freedom wisely, revealing the most impressive set pieces at just the right moment.</p>
<p>I don&#8217;t recall being really frustrated by any of the missions.  (GTA&#8217;s infamous <a title="Google results for &quot;Supply Lines&quot;" href="http://www.google.com/search?q=gta+supply+lines">&#8220;Supply Lines&#8221;</a> mission is my basis for comparison.)</p>
<p>But I don&#8217;t recall being bored with them, or feeling like I was repeating a formula too often.</p>
<p>I completed all the faction missions before I tackled any of the agency missions.  So I backloaded a lot of the &#8220;big reveals&#8221; to the tail end of my experience.</p>
<h2>7. Rico is overpowered.</h2>
<p>Nothing stands a chance against him.  Just Cause 2 does what other games only let you do with cheat codes.</p>
<p>And yet, when you think about it, there are actually no powerups to speak of in the game.  This relates back to the open-being-open idea: when the game starts, you&#8217;re fully equipped. Go nuts.  The only thing that might overcome you is the sheer size of the world.</p>
<p>A lot of the fun I had with Just Cause 2 came from therapeutic rhythm of the chaos I could inflict on the world.  The game bleeds fluid motion that doesn&#8217;t constrain me to asploding something in a particular way.  I get to play mobile explosion generator.</p>
<p>The combat is satisfying because it has weight; it&#8217;s responsive and my actions have instant visible and aural impact.  And when I&#8217;m not shooting, grenading, or jumping out of cars right before they hit something, I&#8217;m flying around to my next target.  The magic juice seems to be the <em>speed</em> with which I can wreak havoc.  A village can go from peaceful to <em>WTF!?</em> in 5 seconds flat, and I can be whisk myself away just as fast and go do something else.</p>
<p>Rico&#8217;s aresenal is fun to use, and his tools give him superpowers.  And nothing&#8211;not even gravity or momentum&#8211;holds him back.  He can effectively cancel any opposing force at will.  That&#8217;s fun.</p>
<h2>8. Outstanding presentation, eclectic design.</h2>
<p>I belong to a peculiar church of thought that puts me at odds with a lot of indie game developers.  A better-looking, better-sounding game is more fun than a comparable title with less.  Or, more specifically, fun is diminished by distractingly-poor presentation.</p>
<p>Visuals and sound effects, or higher production values overall, make something more fun than it would otherwise be.  Think about it.  Watching fireworks on the Fourth of July is fun to whatever measure.  Watching them on TV is less so.  Walking through your neighborhood on a nice day can be fun.  Using a Wiimote or a Kinect to run through a fantastical mountain landscape with landbridges that beckon you to explore them is moreso.</p>
<p>Well-executed presentation can make a game more immersive by giving your brain less work to do.  You have to imagine less, so you can spend more time focusing on <em>playing</em> the game.  This deserves its own post, too, but I&#8217;m not a believer in the &#8220;text adventures are better because you get to imagine the world!&#8221; argument.</p>
<p>Just Cause 2&#8242;s fun was in no way harmed by lack of presentation.  The Avalanche Engine makes draw distance virtually irrelevant, and that&#8217;s <em>really</em> important when your world is a autocratic multi-climate archipelago.  The world teases you with its expanse, and you&#8217;re rewarded with immersive visuals up close and far away.</p>
<p>But Panau is also a lesson in design.  Its size and <em>bona fide</em> openness demands extra attention to detail on the small scale to keep things interesting when the game&#8217;s pace ebbs.  It doesn&#8217;t disappoint; Just Cause 2&#8242;s&#8212;area?&#8211;design is great.  It&#8217;s proof positive that you can create compelling set pieces with few polygons.  Structures beg to be grappled, cover is plentiful in big gunfights, and there&#8217;s impressive attention paid to zones&#8217; verticality that other studios would phone in with big terrain.</p>
<p>Then there&#8217;s the <em>variety </em>that defines the world.  Eclectic?  I was struggling for an adjective, and my English-degreed wife thought this was best.  The world wasn&#8217;t made with a rubber stamp.  For every class of thing there is in the world, Avalanche made sure there were several representative pieces.  The world has a variety of biomes that keep the terrain interesting.  The terrain is peppered with small locales to explore, and tucked away in some of Just Cause 2&#8242;s nooks and valleys are some unique structures serve as mission backdrops or as just fun things to look at.  The game uses color effectively, avoiding any sense of blandness.  At worst, textures in the settled areas feel a bit flat.</p>
<h2>9. Boom.</h2>
<p>Just Cause 2&#8242;s explosions are visceral.  The demolition industry has one of the highest job satisfaction rates in the world, and this game plays to that.</p>
<p>I don&#8217;t think games appreciate explosions enough.  What Burnout &#8220;gets&#8221; with car crash appeal, Just Cause 2 and The Saboteur &#8220;get&#8221; with explosions.</p>
<p><em>In a video game</em> (lest <a href="http://en.wikipedia.org/wiki/Jack_Thompson_(activist)" target="_blank">someone</a> miscontrue), preparing to blow shit up, watching shit blow up, and knowing that <em>I</em> was the direct cause of blowing that shit up (as opposed to, say, watching something blow up in a triggered cutscene) is fun as hell.</p>
<h2>10. It&#8217;s whimsical.</h2>
<p>The bad guy falls to the ground as Tom Sheldon and Rico share a martini on the room of a building that was hit with orbital lasers.  Rico jumps between intercontinental ballistic missiles in mid flight.  A brothel is suspended from blimps.</p>
<p>Just Cause 2 shows a degree of whimsy that rivals Loony Tunes.</p>
<p>Just Cause 2 doesn&#8217;t pretend to be something it isn&#8217;t.  It is in touch with its inner craziness, and embraces the absurd to comic effect.  Just like it&#8217;s more fun to dance when you&#8217;re doing it with someone else, Just Cause 2 is fun because it&#8217;s having fun right along with you.  To have made this game must have been fun, because I get to feel it vicariously every time I play the game.</p>
<p>Contrast this with another open world favorite.  Grand Theft Auto: San Andreas was whimsical, too.  Jetpacks.  I mean, c&#8217;mon, right?  But then Grand Theft Auto IV got rid of all that.  In what was perhaps the start of a trend continued by Red Dead Redemption and soon L.A. Noire, Rockstar decided somewhere along the way to &#8220;grow up&#8221;.  That&#8217;s no fun.</p>
<p>I really, <em>really </em>hope Just Cause 3 doesn&#8217;t do that.  In fact, when I think of things that could make Just Cause 3 better than its predecessor, the first thing that comes to mind is being able to surf a space shuttle into an oxygenless outer space, crash it into the aforementioned orbital weapons platform, and then skydive back to earth, with Rico bursting into flames as he reenters the atmosphere.  Of course, you could still survive by simply grappling the ground moments before impact.  And of course, he&#8217;d begin to sing &#8220;Rocketman&#8221; on the way down.</p>
<p>Avalanche, you can take that idea if you like.  It&#8217;s free.  I have others.  Hint: grenade fountains.</p>
<p>Because seriously&#8230; why not?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/object01.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/object01.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/object01.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/object01.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/object01.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/object01.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/object01.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/object01.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/object01.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/object01.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/object01.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/object01.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/object01.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/object01.wordpress.com/172/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=object01.com&amp;blog=97830&amp;post=172&amp;subd=object01&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://object01.com/2011/01/08/whyjustcause2issomuchdamnfu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ebf349aee95d2b5f94697074275da03c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">object01</media:title>
		</media:content>
	</item>
		<item>
		<title>My list of BSODs and freezes on my 15&#8243; Unibody MacBook Pro</title>
		<link>http://object01.com/2010/05/29/my-list-of-bsods-and-freezes-on-my-15-unibody-macbook-pro/</link>
		<comments>http://object01.com/2010/05/29/my-list-of-bsods-and-freezes-on-my-15-unibody-macbook-pro/#comments</comments>
		<pubDate>Sat, 29 May 2010 15:04:26 +0000</pubDate>
		<dc:creator>object01</dc:creator>
				<category><![CDATA[Not video games]]></category>
		<category><![CDATA[BSOD]]></category>
		<category><![CDATA[crashes]]></category>
		<category><![CDATA[MacBook Pro]]></category>
		<category><![CDATA[Unibody]]></category>

		<guid isPermaLink="false">http://object01.com/?p=156</guid>
		<description><![CDATA[I&#8217;m running Windows 7 x64 on a 15&#8243; 2010 Unibody MacBook Pro. I&#8217;ve started keeping a list of all the PAGE_FAULT_IN_NONPAGED_AREA blue screens of death (BSOD) that I&#8217;ve been seeing lately, along with thoughts on what the culprit might be. So far I&#8217;m not close to finding a solution. Unless otherwise noted, all BSODs are <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=object01.com&amp;blog=97830&amp;post=156&amp;subd=object01&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m running Windows 7 x64 on a 15&#8243; 2010 Unibody MacBook Pro.  I&#8217;ve started keeping a list of all the <span style="font-family:monospace;">PAGE_FAULT_IN_NONPAGED_AREA</span> blue screens of death (BSOD) that I&#8217;ve been seeing lately, along with thoughts on what the culprit might be.  So far I&#8217;m not close to finding a solution.</p>
<p>Unless otherwise noted, all BSODs are of the type <span style="font-family:monospace;">PAGE_FAULT_IN_NONPAGED_AREA</span>.</p>
<div style="border:solid 1px black;background-color:yellow;padding:1em;">
<p><strong>UPDATE 6/1/2010</strong></p>
<p>Even after the last entry listed here, I continued to see BSODs on a semi-regular basis.  I discovered <a title="WhoCrashed" href="http://www.resplendence.com/whocrashed" target="_blank">WhoCrashed</a>, which conveniently analyzed all of the minidumps that these errors were causing, and almost every single crash was attributed to <tt>C:\Windows\System32\Drivers\applehfs.sys</tt>.</p>
<p>A <a href="http://www.google.com/search?hl=en&amp;q=applehfs.sys+BSOD&amp;aq=f&amp;aqi=&amp;aql=&amp;oq=&amp;gs_rfai=" target="_blank">search</a> revealed that <tt>applehfs.sys</tt> and BSODs are as related as conjoined twins.  I&#8217;ve taken everyone&#8217;s advice and renamed <tt>applehfs.sys</tt> and <tt>applemnt.sys</tt> to avoid them being loaded.  I lose access to my HFS volume, but I don&#8217;t particularly care.</p>
<p>Interestingly, I used <a title="Process Explorer" href="http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx" target="_blank">Process Explorer</a> to try to determine which service was using <tt>applehfs.sys</tt>, and found that <em>no</em> processes were using it.  In fact, I was able to rename the files without rebooting into safe mode or otherwise coaxing Windows to &#8220;release&#8221; the file.  This strikes me as particularly strange, and indicates that whatever was causing these problems—if indeed they were rooted in <tt>applehfs.sys—</tt>was being loaded periodically or on-demand. Odd, because no services configured for &#8220;Manual&#8221; startup seem related to Apple.</p>
</div>
<p><strong>BSOD: 5/25/2010 4:19:58 PM</strong></p>
<p>Started Remote Desktop for just a moment before the BSOD, was almost about to enter my username.  Networking driver issue?</p>
<p><strong>BSOD: 5/25/2010 9:09:21 PM</strong><br />
Wasn&#8217;t here when it happened.</p>
<p><strong>BSOD: 5/26/2010 11:12:21 AM</strong><br />
Had just started RealVNC Server and was reading its bound IP address to someone over the phone.  Noticed later that RealVNC server bound to the Wi-Fi IP first, then the ethernet IP.</p>
<p><strong>BSOD: 5/26/2010 1:42:15 PM</strong><br />
Was talking to someone, had left the PC alone for minutes.  Spontaneously BSODd.</p>
<p>So far, all these BSODs occurred while both wired and wireless networking were enabled.  I&#8217;m going to disable Wi-Fi and see if the problem occurs the rest of today.</p>
<p><strong>BSOD: 5/26/2010 4:37:00 PM</strong><br />
Wasn&#8217;t here, but clearly turning off Wi-Fi doesn&#8217;t solve the problem.</p>
<p><strong>BSOD: 5/26/2010 11:18:47 PM</strong></p>
<p>That&#8217;s four today.  Was in a web browser trying to view the <a href="http://code.google.com/p/elmah/" target="_blank">ELMAH</a> log for a web site.  This time Wi-Fi was enabled and ethernet was disabled.  So it doesn&#8217;t seem to be a networking driver problem.</p>
<p>Maybe it really is a memory problem?  Will try <a href="http://oca.microsoft.com/en/windiag.asp" target="_blank">WinDiag</a> in the morning.</p>
<p>This Microsoft page says that anti-virus software is a common cause of PAGE_FAULT_IN_NONPAGED_AREA BSODs.  Failing a WinDiag result, I&#8217;ll see if I can find an alternative to Sunbelt&#8217;s Vipre Antivirus.</p>
<p><strong>BSOD: 5/27/2010 9:33:04 AM</strong></p>
<p>Was typing an email to someone and was moving To: and CC: names around.</p>
<p><strong>Note: 5/27/2010 10:36:00 AM</strong></p>
<p>Running WinDiag suggested that there were failing memory cells in the 8e000000-90000000 range.  But I also learned that WinDiag is not the optimum choice; Windows 7 has a built-in memory diagnostic tool.  When I ran it in &#8220;Extended&#8221; test mode, it got suspiciously hung up around <strong>21%</strong>.</p>
<p>0x8e000000 = 2,382,364,672</p>
<p>2,382,364,672 / 8,589,934,592 = <strong>27%</strong>.</p>
<p>Suspicious.</p>
<p><strong>BSOD: 5/27/2010 12:48:30 PM</strong></p>
<p>Was typing into a Quality Center ticket.</p>
<p><strong>BSOD: 5/27/2010 3:11:18 PM</strong></p>
<p>Was talking to someone, machine was in Evernote.</p>
<p><strong>BSOD: 5/28/2010 10:51:43 AM</strong></p>
<p>Was working in Powershell and turned away to talk to someone.</p>
<p><strong>BSOD: 5/28/2010 1:09:54 PM</strong></p>
<p>Was writing out a Quality Center ticket.</p>
<p><strong>Hard freeze: 5/28/2010 1:44:39 PM</strong></p>
<p>Was talking to people after turning my attention away from the screen.</p>
<p><strong>Hard freeze: 5/28/2010 2:25 PM</strong></p>
<p>Was adjusting display setup after installing Matrox DualHead2Go DP.</p>
<p><strong>Note: 5/29/2010 9:00:00 AM</strong></p>
<p>I ran Windows Memory Diagnostic overnight last night in Extended test mode.  When I logged in this morning, no results were displayed.  Last night before I went to bed, I noticed the test was about 95% complete with no errors reported.</p>
<p><strong>Note: 5/29/2010 9:20:40 AM</strong></p>
<p>Windows reported this &#8220;solution&#8221; this morning:</p>
<p><a href="http://object01.files.wordpress.com/2010/05/windowssolution_networkadapter.png"><img class="size-full wp-image-157 alignnone" title="WindowsSolution_NetworkAdapter" src="http://object01.files.wordpress.com/2010/05/windowssolution_networkadapter.png?w=510&#038;h=222" alt="" width="510" height="222" /></a></p>
<p>Windows also reported a &#8220;solution&#8221; pertaining to Parallels:</p>
<p><a href="http://object01.files.wordpress.com/2010/05/windowssolution_parallels.png"><img class="alignnone size-full wp-image-158" title="Windows 7 Compatibility Center: Parallels Missing a Driver" src="http://object01.files.wordpress.com/2010/05/windowssolution_parallels.png?w=510&#038;h=198" alt="" width="510" height="198" /></a></p>
<p><a href="http://download.parallels.com/desktop/v5/docs/en/Parallels_Desktop_Users_Guide/22575.htm" target="_blank"><span style="color:#000000;">http://download.parallels.com/desktop/v5/docs/en/Parallels_Desktop_Users_Guide/22575.htm</span></a></p>
<p><strong>BSOD: 5/29/2010 11:58 AM</strong></p>
<p>Wasn&#8217;t here when it happened.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/object01.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/object01.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/object01.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/object01.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/object01.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/object01.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/object01.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/object01.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/object01.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/object01.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/object01.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/object01.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/object01.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/object01.wordpress.com/156/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=object01.com&amp;blog=97830&amp;post=156&amp;subd=object01&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://object01.com/2010/05/29/my-list-of-bsods-and-freezes-on-my-15-unibody-macbook-pro/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ebf349aee95d2b5f94697074275da03c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">object01</media:title>
		</media:content>

		<media:content url="http://object01.files.wordpress.com/2010/05/windowssolution_networkadapter.png" medium="image">
			<media:title type="html">WindowsSolution_NetworkAdapter</media:title>
		</media:content>

		<media:content url="http://object01.files.wordpress.com/2010/05/windowssolution_parallels.png" medium="image">
			<media:title type="html">Windows 7 Compatibility Center: Parallels Missing a Driver</media:title>
		</media:content>
	</item>
	</channel>
</rss>
