<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Jeff On Games</title>
	
	<link>http://www.jeffongames.com</link>
	<description>This is Jeff.  This is Jeff On Games.</description>
	<lastBuildDate>Fri, 30 Jul 2010 01:35:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/JeffOnGames" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="jeffongames" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Posted Without (Too Much) Comment</title>
		<link>http://www.jeffongames.com/2010/07/posted-without-too-much-comment/</link>
		<comments>http://www.jeffongames.com/2010/07/posted-without-too-much-comment/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 01:35:22 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://www.jeffongames.com/2010/07/posted-without-too-much-comment/</guid>
		<description><![CDATA[I've been talking on twitter about working on some stuff involving 2D soft shadows. I was going to write a long blog post about how I got 2D soft shadows working in XNA using the GameDev article in combination with Catalin's implementation and Christian's implementation in D. However, trying to write the post, I wasn't [...]]]></description>
			<content:encoded><![CDATA[<p>I've been talking on twitter about working on some stuff involving 2D soft shadows.  I was going to write a long blog post about how I got 2D soft shadows working in XNA using the <a href="http://www.gamedev.net/reference/programming/features/2dsoftshadow/">GameDev</a> article in combination with <a href="http://www.catalinzima.com/samples/12-months-12-samples-2008/dynamic-2d-shadows/">Catalin's implementation</a> and <a href="http://www.incasoftware.de/~kamm/projects/index.php/2007/09/08/soft-shadows-2d/">Christian's implementation</a> in D.  However, trying to write the post, I wasn't sure if I could make it any clearer, as I'm not sure if I understand it completely myself.
</p>
<p>So, instead, I'm just going to post the XNA port I made almost directly from Christian's D implementation without much comment.  I will say that, instead of using the images that both Catalin and Christian are using, I've move most of that into shaders.  This isn't necessary, but it's in preparation for some other stuff I want to do later with this project.
</p>
<p>So if you're interested, my XNA implementation is <a href="http://www.fuzzybinary.com/games/SoftShadow.zip">here</a>.  Enjoy!</p>
<img src="http://feeds.feedburner.com/~r/JeffOnGames/~4/QPvzOwCvui8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jeffongames.com/2010/07/posted-without-too-much-comment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Favorite XBLIG Games</title>
		<link>http://www.jeffongames.com/2010/07/my-favorite-xblig-games/</link>
		<comments>http://www.jeffongames.com/2010/07/my-favorite-xblig-games/#comments</comments>
		<pubDate>Sat, 24 Jul 2010 23:18:11 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Experimental Games]]></category>
		<category><![CDATA[Games / Design]]></category>
		<category><![CDATA[Indie Games]]></category>

		<guid isPermaLink="false">http://www.jeffongames.com/2010/07/my-favorite-xblig-games/</guid>
		<description><![CDATA[Something that bothers me about XBLIG is that too few good games get the spotlight. For some reason, some really good games get passed over in favor of games like "Z0MBIES" (which anyone who knows me knows I'm not a huge fan of) and "Missile Escape." The front channel even advertises crap games like "Try [...]]]></description>
			<content:encoded><![CDATA[<p>Something that bothers me about XBLIG is that too few good games get the spotlight.  For some reason, some really good games get passed over in favor of games like "Z0MBIES" (which anyone who knows me knows I'm not a huge fan of) and "Missile Escape."  The front channel even advertises crap games like "Try Not To Fart."  And this angers me.  These games aren't interesting.  In many cases, they're one off jokes, and they don't interest me in the slightest.</p>
<p>So, I'm going to quickly go over some XBLIG games that I have enjoyed a lot and have been passed over in Top Rated and in the news.</p>
<h3><a href="http://marketplace.xbox.com/en-US/games/media/66acd000-77fe-1000-9115-d802585505a7/">Lumi</a></h3>
<p>Lumi is actually the reason I'm writing this post, as I feel as it's being completely overlooked and underrated.  The first thing that stuck me about Lumi is that it's really pretty.   The second thing that struck me is that it has a really interesting  movement mechanic which makes up most (not all) of the gameplay.  You  move by attaching yourself to spinning disks, and then launching  yourself out.  You're attracted to disks by using the same color (one of  the triggers) and repelled by using the opposite.  You move around like  this, collecting fireflies to relight the world, attacking evil bosses  along the way.</p>
<p>The only reason that I feel that Lumi is anything short of a 5 star  game (it's certainly better than "Missile Escape") is that people are  rating it low because it has the highest price point available on XBLIG.   But I've played Arcade games less pretty, less polished, and more  frustrating than Lumi.  I feel like it deserves a bit more recognition.</p>
<h3><a href="http://marketplace.xbox.com/en-US/games/media/66acd000-77fe-1000-9115-d80258550322/">Ninja Bros</a></h3>
<p>Ninja Bros was recommended to me by friend and former colleague <a href="http://tinysubversions.com/">Darius</a>, and it's actually really awesome.  The gameplay is simple: you have a ninja that you can move around, and he jumps with a given button.  Get him to the exit.  What makes the game interesting is when you're controlling multiple ninjas.  Each of them is controlled by the same thumbstick, but each has a separate jump button.  In harder levels, you have to coordinate each ninja, when they jump and when they move, to try to get everyone to the exit in a reasonable about of time.</p>
<p>The game is surprisingly complex for something so simple, and it gets to be very hard.  It's definitely worth paying for and playing through.</p>
<h3><a href="http://marketplace.xbox.com/en-US/games/media/66acd000-77fe-1000-9115-d80258550182/">Miner Dig Deep</a> and <a href="http://marketplace.xbox.com/en-US/games/media/66acd000-77fe-1000-9115-d8025855045c/">Soul Caster</a></h3>
<p>Both of these games are on the Top Rated, so I won't take too much time going over them.</p>
<p>Miner Dig Deep isn't that interesting except in its polish.  The game is the definition of grind, but it does it very well, and thus deserves a mention.</p>
<p>Soul Caster is an interesting twist on the RPG / Tower Defense genre.  I hate tower defense games, but I enjoyed Soul Caster, which is saying something.</p>
<h3>Others?</h3>
<p>What to others think?  What XBLIG games aren't getting their fare share?  Have I missed something I actually might enjoy?</p>
<img src="http://feeds.feedburner.com/~r/JeffOnGames/~4/kFqCF2F4iuY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jeffongames.com/2010/07/my-favorite-xblig-games/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>On Motivation</title>
		<link>http://www.jeffongames.com/2010/07/on-motivation/</link>
		<comments>http://www.jeffongames.com/2010/07/on-motivation/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 02:47:24 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Activism]]></category>
		<category><![CDATA[Games / Design]]></category>
		<category><![CDATA[Industry]]></category>
		<category><![CDATA[Media Theory]]></category>

		<guid isPermaLink="false">http://www.jeffongames.com/?p=251</guid>
		<description><![CDATA[I've been thinking a lot recently about motivation. Specifically, what was my motivation for wanting to get into the game industry? What was it that drew me towards it despite horror stories of crunch, burnout, and under-appreciation? I decided to get into the game industry despite all of that, but why? I know for many, [...]]]></description>
			<content:encoded><![CDATA[<p>I've been thinking a lot recently about motivation.  Specifically, what was my motivation for wanting to get into the game industry? What was it that drew me towards it despite horror stories of crunch, burnout, and under-appreciation? I decided to get into the game industry despite all of that, but why?</p>
<p>I know for many, the answer is simple: they love games.  Others love the community of game developers.</p>
<p>I got into the game industry for a different reason.  Sure I loved games. Sure I loved the community of game developers, but I wanted more.</p>
<p>In his <a href="http://blogs.technet.com/b/microsoft_blog/archive/2010/05/26/if-you-want-to-change-the-world-with-technology.aspx">recent retirement letter</a>, J Allard talks about his initial decision to work at Microsoft:</p>
<blockquote><p>During every interview, I'd challenge, "'A computer on every desk and in every home' is quaint, but why stop there?" and the typical response would be along the lines of, "That's just our ante." I liked that... +1 Microsoft.</p>
<p>…</p>
<p>I couldn't believe it, but it was impossible to dismiss the similarity and authenticity I felt in every conversation. On the flight home, I contemplated these discussions, the passion and IQ of the people I had encountered and their invitation to create my own space to drive a bigger agenda alongside them. It clicked. The "computer on every desk..." rhetoric was a ruse, the real purpose and ambition of these people was much, much broader:</p>
<p><strong>"Make the world a better place through technology."</strong></p>
<p>Like every idealistic college hire, this was the unicorn I was looking for. I wanted to do something bigger than me – "change the world!" – with a bunch of people who respected and could augment my superpowers. I had visited the Justice League of Geeks and they had invited me in and had shown me the secret handshake.</p></blockquote>
<p>When I wanted to join the game industry, I had a similar thought process. I wanted to make the world a better place through games. That bears repeating.</p>
<blockquote><p>I wanted to make the world a better place through games.</p></blockquote>
<p>I think my problem now is that I was also very specific on how I wanted to do this.  Certainly, there are ways to make the world better through educational games, games for health, or so called "serious games," but this wasn't particularly what I was thinking.</p>
<p>Growing up enjoying adventure games (specifically Sierra adventure games, many of which had more serious tones than other games in the genre) as well as many really good books, I wanted to see games reach a level of literary expression that rivaled our best works of literature.  I wanted to see games deal with more mature themes, not in terms of sex and violence, but in terms of how we, as people, interact.  I wanted games to take a hard look at subjects like ethics, racism, political freedoms, war, peace, trust, and betrayal among others.  I felt games were in a unique place to do this because, if they allowed you to make hard decisions and see the impacts of those decisions, the lessons would necessarily be more poignant.  And I believed it was all possible through story, given enough talent and enough thought.</p>
<p>Interestingly, for my first 7 years of GDC, every GDC only made me more convinced that this was possible, and that there were others out there thinking the same things.  I would leave every year more invigorated at the possibilities of our medium, and that it was only a matter of time before we started seeing really good literary quality games.</p>
<p>2010 was year 8, and I came out of it a little less hopeful, for a few reasons.</p>
<p>First, I've realized GDC is a self-selecting group of individuals who want to discuss the "hard problems" of making games. These are the types of people that, even if they don't want the same things I do from games, they do want to discuss it. They are excited by the possibilities, even if they don't believe it to be interesting or possible.  And with that said, there were fewer people talking about the hard problems this year. It's hard to explain, but GDC this year (for me at least) felt like the industry had exhaled, so to speak.  Some of the spark was gone.</p>
<p>Second, I haven't seen games moving toward that direction in a long time. Investigations into actual ethics in games, and real consequential action I think hit its peek with Ultima 4, and with the exception of a few bright spots here and there (Ultima 6, Deus Ex), it hasn't resurfaced.  And I feel both the game industry and the gaming culture moving away from such games.</p>
<p>Third, even if I was able to write such a game, I don't think the audience is there for it.  Not enough people would buy the game for anyone to justify the effort needed to make it happen.  Such a game doesn't work as a small, simple game, or in bite-size chunks.  It's an undertaking that seems to provide very little reward.  Generally, I think this is true for culture across the board, not just for games.  Our media consumption is leaning towards pop-fiction in all forms.  Don't-make-me-think media, or (more likely) tell-me-what-to-think media.</p>
<p>Lastly, even if the market were there, I cannot point to a company who shares this ideal.  I can point to people (some indie developers, some of the art game crowd, some IF writers), but no groups. There are no Microsoft's.  Even Microsoft isn't Microsoft anymore, in the game industry or out of the game industry.</p>
<blockquote><p>I wanted to make the world a better place through games.</p></blockquote>
<p>So my question is, given that I've found that my original motivation for entering the industry fading, how do I keep myself motivated?  I don't want to leave the industry, but without this initial motivating factor being made manifest….. perhaps there are better ways to make the world a better place? Through technology? Through other ways?</p>
<p>I know this whole blog post sounds ridiculously whiney and / or pompous.  And I'd like to be clear that I'm not leaving the industry any time soon, but I still feel my old motivations hanging over me.  Maybe I'm getting older, and getting excited over little steps isn't cutting it for me anymore.  Now, I'm sure someone can point out games or movements that I'm missing, but from where I'm sitting, I feel like real innovation and evolution, especially in the story department of games, is hard to come by, which is making it hard for me  to see a place where I'd be comfortable.  Maybe I'm just wearing blinders and ignoring signs that this is taking place? Here's hoping.</p>
<img src="http://feeds.feedburner.com/~r/JeffOnGames/~4/xztVrxuRx44" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jeffongames.com/2010/07/on-motivation/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Life.Update</title>
		<link>http://www.jeffongames.com/2010/06/life-update/</link>
		<comments>http://www.jeffongames.com/2010/06/life-update/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 14:01:54 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://www.jeffongames.com/?p=248</guid>
		<description><![CDATA[It's been a while since I posted, but a lot's been happening. If you've visited the site, you probably noticed a theme change, but more importantly, you may have noticed I am no longer at Orbus Gameworks. There are many reasons I decided to leave Orbus, and maybe some day I'll write a long blog [...]]]></description>
			<content:encoded><![CDATA[<p>It's been a while since I posted, but a lot's been happening. If you've visited the site, you probably noticed a theme change, but more importantly, you may have noticed I am no longer at Orbus Gameworks.</p>
<p>There are many reasons I decided to leave Orbus, and maybe some day I'll write a long blog post on the subject, but the short story is that I decided it was time for me to get back into creating games full time. Although Orbus focused on game middleware, the technology we were working on wasn't really game development, and I felt like I was getting more and more behind in the skills and systems that are essential to being a programmer in the game industry.</p>
<p>So I have moved on to another start-up, but this time a game studio: <a href="http://www.firehosegames.com">Fire Hose Games</a>.</p>
<p>Working at Fire Hose has been an adjustment, though not a bad one. Because of the size of the team and the schedule, I've been forced to think and program very differently from what I'm used to. It's pushing me out of my comfort zone, which is always a good thing, if only to see different ways things can be accomplished, even if they don't jive with the way you work as a programmer.</p>
<p>Generally, I'm really looking forward to my work with Fire Hose, I'm excited about <a href="http://www.slamboltscrappers.com/">our product</a>, and I'm looking forward to having shipped another game.</p>
<img src="http://feeds.feedburner.com/~r/JeffOnGames/~4/bDPUY04e7rM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jeffongames.com/2010/06/life-update/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Do Continuations Make Sense?</title>
		<link>http://www.jeffongames.com/2010/02/do-continuations-make-sense/</link>
		<comments>http://www.jeffongames.com/2010/02/do-continuations-make-sense/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 20:51:53 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://www.jeffongames.com/?p=238</guid>
		<description><![CDATA[I've been spending a bunch of time reading about continuations and microthreading recently, just trying to wrap my head around them and find areas where they might make sense, specifically in C# using the ISO CLI systems. Of course, the example that most people give is AI, like so the one provided by this article: [...]]]></description>
			<content:encoded><![CDATA[<p>I've been spending a bunch of time reading about continuations and microthreading recently, just trying to wrap my head around them and find areas where they might make sense, specifically in C# using the ISO CLI systems.  Of course, the example that most people give is AI, like so the one provided by <a href="http://mjhutchinson.com/journal/2010/02/01/iteratorbased_microthreading">this article</a>:</p>
<pre class="csharp">&nbsp;
IEnumerable Patrol <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
     <span style="color: #0600FF;">while</span> <span style="color: #000000;">&#40;</span>alive<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
          <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>CanSeeTarget <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
               yield <span style="color: #0600FF;">return</span> Attack <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
          <span style="color: #000000;">&#125;</span> <span style="color: #0600FF;">else</span> <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>InReloadStation<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
               Signal signal = AnimateReload <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
               yield <span style="color: #0600FF;">return</span> signal;
          <span style="color: #000000;">&#125;</span> <span style="color: #0600FF;">else</span> <span style="color: #000000;">&#123;</span>
               MoveTowardsNextWayPoint <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
               yield <span style="color: #0600FF;">return</span> TimeSpan.<span style="color: #0000FF;">FromSeconds</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">1</span><span style="color: #000000;">&#41;</span>;
          <span style="color: #000000;">&#125;</span>;
     <span style="color: #000000;">&#125;</span>
     yield <span style="color: #0600FF;">break</span>;
<span style="color: #000000;">&#125;</span>
&nbsp;</pre>
<p>Now, implementation details aside (I'm not a fan of the authors implementation of the scheduler), you can then have a scheduler for all of your microthreads that will run each method until it terminates.  Run one (or more) of these schedulers in a background thread and everything's awesome right?</p>
<p>Well, I'm not so sure.  I have questions about this myself.  For example, I would think that this pattern is more useful in cases where you have a lot of things that need to be done in sequence, but potentially in other threads or for multiple frames.  For example the "AnimateReload" state from the example.  Well, what if that state looked more like this?</p>
<pre class="csharp">&nbsp;
       <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>NeedsReload<span style="color: #000000;">&#41;</span>
       <span style="color: #000000;">&#123;</span>
            Signal coverFound = BeginFindCover<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
            yield <span style="color: #0600FF;">return</span> coverFound;
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>CoverPoint != <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                 Signal atCover = MoveToCover<span style="color: #000000;">&#40;</span>CoverPoint<span style="color: #000000;">&#41;</span>;
                 yield <span style="color: #0600FF;">return</span> atCover;
            <span style="color: #000000;">&#125;</span>
            Signal reloadAnimation = AnimateReload<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
            yield <span style="color: #0600FF;">return</span> reloadAnimation;
       <span style="color: #000000;">&#125;</span>
&nbsp;</pre>
<p>This is a more common use case in my mind.  Have a procedure that takes many frames of execution and has portions that can be delegated to background tasks (such as path finding, which might take a few frames) and have them written linearly so that it's easier to read.  </p>
<p>Here's the problem.  Because we've now put the "Alive" check farther and farther away from the actual call, we've ended up in a situation where, at any time, the AI can die, and thus its microthread will need to die with it.  To combat this, we'd have to check if the AI is actually alive after every yield, creating this code:</p>
<pre class="csharp">&nbsp;
     <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>NeedsReload<span style="color: #000000;">&#41;</span>
     <span style="color: #000000;">&#123;</span>
          Signal coverFound = BeginFindCover<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
          yield <span style="color: #0600FF;">return</span> coverFound;
          <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>!Alive<span style="color: #000000;">&#41;</span>
               yield <span style="color: #0600FF;">break</span>;
          <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>CoverPoint != <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span>
          <span style="color: #000000;">&#123;</span>
              Signal atCover = MoveToCover<span style="color: #000000;">&#40;</span>CoverPoint<span style="color: #000000;">&#41;</span>;
              yield <span style="color: #0600FF;">return</span> atCover;
              <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>!Alive<span style="color: #000000;">&#41;</span>
                   yield <span style="color: #0600FF;">break</span>;
          <span style="color: #000000;">&#125;</span>
&nbsp;
          Signal reloadAnimation = AnimateReload<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
          yield <span style="color: #0600FF;">return</span> reloadAnimation;
      <span style="color: #000000;">&#125;</span>
&nbsp;</pre>
<p>To say nothing of if the state of the AI was forcibly changed for whatever reason (say, for example, if a Team AI Manager has told him to start running away, or regroup, etc).  The only way I can think to combat this is through a special AIYield function which would handle most of that, but even then, I find it hard to think of a way to tell the system it needs to break from the current update thread and start a new one.  Reschedule?</p>
<p>What do others think? Am I over thinking this?  Am I thinking about this the wrong way? Am I using the wrong tool?</p>
<img src="http://feeds.feedburner.com/~r/JeffOnGames/~4/K57w-zGf3dI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jeffongames.com/2010/02/do-continuations-make-sense/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>One More GGJ Observation</title>
		<link>http://www.jeffongames.com/2010/02/one-more-ggj-observation/</link>
		<comments>http://www.jeffongames.com/2010/02/one-more-ggj-observation/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 16:57:11 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[AngelXNA]]></category>
		<category><![CDATA[Experimental Games]]></category>
		<category><![CDATA[Games / Design]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[ggj2010]]></category>

		<guid isPermaLink="false">http://www.jeffongames.com/?p=236</guid>
		<description><![CDATA[Today I realized another thing that went wrong with our GGJ product, that I felt needed sharing. Starting At the End: This one is twofold. First, we spent a lot of time working on the end boss battle of the game, which, while awesome, had to be integrated with the rest of the game at [...]]]></description>
			<content:encoded><![CDATA[<p>Today I realized another thing that went wrong with our GGJ product, that I felt needed sharing.</p>
<ol>
<li><strong>Starting At the End:</strong> This one is twofold.  First, we spent a lot of time working on the end boss battle of the game, which, while awesome, had to be integrated with the rest of the game at the end of the jam, mostly in the last hour.  The core mechanic of the game, the destruction and rebuilding of objects, suffered as a result.  Second, when the game was pitched, I included a portion "at the end" where it turns out you're a horrible person for destroying the world.  We never got to this because the game took precedence.</li>
</ol>
<p>Basically, I've found that almost any game jam game that has the words "and at the end of the game" never gets to that point because developing the core mechanic and building gets in the way.  And if you need the end of the game to keep with the theme of the jam, you're going to end up breaking theme.</p>
<p>I will say in defense of my team that it was mostly me talking about the "end of game" theme.  Amanda pretty much spent the entire time telling me we wouldn't get to it, so this rest squarely on my shoulders.</p>
<p>In the end, I don't think Quest For Stick fit the main theme of the Jam (deception), but I think the core mechanic was awesome, and I'm happy we decided to make it instead of making something that would obviously fit with theme.</p>
<img src="http://feeds.feedburner.com/~r/JeffOnGames/~4/2znkLz1NkxI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jeffongames.com/2010/02/one-more-ggj-observation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jamming Post Mortem 2010 Edition</title>
		<link>http://www.jeffongames.com/2010/02/jamming-post-mortem-2010-edition/</link>
		<comments>http://www.jeffongames.com/2010/02/jamming-post-mortem-2010-edition/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 22:57:09 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[AngelXNA]]></category>
		<category><![CDATA[Experimental Games]]></category>
		<category><![CDATA[Games / Design]]></category>
		<category><![CDATA[Indie Games]]></category>
		<category><![CDATA[Industry]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[ggj2010]]></category>

		<guid isPermaLink="false">http://www.jeffongames.com/?p=232</guid>
		<description><![CDATA[Last weekend, I took part in the Global Game Jam, like I did last year and let me say it was just as fun, if not MORE fun this year than last. Our game, Quest for Stick, was really, really awesome this year, and you can learn more about it from the GGJ page and [...]]]></description>
			<content:encoded><![CDATA[<p>Last weekend, I took part in the <a href="http://globalgamejam.org/">Global Game Jam</a>, like I did <a href="http://www.jeffongames.com/2009/02/jamming-postmortem/">last year</a> and let me say it was just as fun, if not MORE fun this year than last.  Our game, Quest for Stick, was really, really awesome this year, and you can learn more about it from the <a href="http://www.globalgamejam.com/2010/quest-stick">GGJ page</a> and from our <a href="http://twitter.com/QuestForStick">Twitter account</a>.  We even have a <a href="http://www.youtube.com/watch?v=0H1pgkhx3Zg">video</a> of a complete play through of the game.  The game is super pretty, only a little bit buggy, and generally I think accomplished everything we wanted.</p>
<p>But this year I went in knowing what to expect.  How'd I do this year?  What did I learn?</p>
<h2>What Went Right</h2>
<ol>
<li><strong>The Team.</strong> Last year, I said one of the things that went right was having a team.  This year, that was even more so.  We had a total of 7 people working full time on the game, which, initially, I thought was way too many.  So much so that I actually asked people to leave the team and considered leaving the team myself to reduce the number of people.  But, when it came down to it, I decided I wanted to work on the game idea and went with the other 6 people to create the game.  Honestly, 7 people may still have been too many, as communication and tasking did get hard near the end of the project, but there's no way the game would have been anything near what it was if we didn't have at least that many people.  Everyone was basically tasked the whole time, and the game came out great because of it.<strong><br />
</strong></li>
<li><strong>Getting Down To Business:</strong> We spent very little time talking design this time, which worked out to our advantage.  Although we spent a lot of time later arguing about how exactly the game was going to play, it didn't take away from everyone working, which was good.  We got down to making something playable quickly, and didn't try to design too much stuff up front.<strong><br />
</strong></li>
<li><strong>Tools choice: Last </strong>year, I was super happy with XNA.  This year<strong>, t</strong>he team used <a href="http://bitbucket.org/fuzzybinary/angelxna/">AngelXNA</a>, even though I was the only one familiar at all with it, and I was the really the only one well versed in XNA.  Even though I spent a lot of time helping people understand Angel / XNA, it was still, by far, better than attempting to use only XNA.  It performed a lot of the heavy lifting for us in terms of doing animations, placing and managing actors, and, surprisingly, editing levels, though this is its own bullet point.<strong><br />
</strong></li>
</ol>
<h2>What Went Wrong</h2>
<ol>
<li><strong>Unclear tasking:</strong> Occasionally, we got duplicated work or weird moments of down time because, like most game jams, people just shouted out things they needed.  Kate was really the only person keeping track of most of these tasks, and really only for herself.  For the artists, no one was really in charge of knowing what art was still needed and who was doing what.  For a team this large, what we needed to create and consult a list on a whiteboard or cork board that had any asset requests, who was potentially doing them, what was in progress and what was up for grabs.  This would have avoided duplicated work and would have given us an idea of how much work was left.</li>
<li><strong>Late Playable: </strong>Despite my work to prevent this (more on this later), we still didn't end up with an actual playable game until mid day on the last day.  Just having *SOMETHING* sometime on Saturday to hand to the artists and designers to make levels on would have helped.  We did have lots of pieces that worked, essentially, but didn't get them integrated together fast enough.</li>
<li><strong>Encapsulation problems:</strong> We had three programmers working together on individual parts of the game, which helped not only keep them tasked without stomping on each other, but made it so people were in charge of very small systems.  However, some of the systems were weirdly encapsulated, and required copying and pasting over when we actually got to the point of integrating.  Though this actually ended up *helping* at the very end, I would have liked fewer instances where I had to copy and paste the code from one class to another in order to integrate a new system into the main game.</li>
</ol>
<h2>What Didn't Work</h2>
<p>So, these things really didn't go wrong, but they were things I was hoping would help us during the jam, but didn't.</p>
<ol>
<li><strong>The Simple CI: </strong>Before the Jam, I wrote a simple python script that would query a mercurial repository, pull down new code, build it, copy it up to a network location, then message everyone over gchat.  This was awesome in theory, but not so much in practice for a few reasons.  First, it didn't work so well.  If anyone was signed out of gchat when it went to message them, the CI would get stuck in an endless loop.  Second, the network drive would occasionally flake out and not be able to take the new build.  Third, we didn't have anything the team could play until Sunday, so the CI ended up being useless until then.<strong><br />
</strong></li>
<li><strong>The Angel Editor:</strong> The editor in Angel was an awesome idea, but when we got to the Jam, it was buggy and untested.  It didn't save out things correctly, crashed, spawned items in weird places, and didn't work at all with our custom actors.  In addition, the editor saved all levels out to the build directory, which was great for everyone but the people who were using it.   Besides fixing the other editor bugs, in the future, the editor will probably need to detect whether a debugger is attached, and figure out where to put the levels from there, or create a custom levels folder that can be easily moved back and forth and through to an integratable build.<strong><br />
</strong></li>
</ol>
<p>All and all, an awesome Jam.  Please play Quest for Stick, and let me know what you think.  I'm super proud of it.</p>
<img src="http://feeds.feedburner.com/~r/JeffOnGames/~4/kw3mubQ-IEo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jeffongames.com/2010/02/jamming-post-mortem-2010-edition/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Empaty, Games, Choice, and Agency</title>
		<link>http://www.jeffongames.com/2010/01/empaty-games-choice-and-agency/</link>
		<comments>http://www.jeffongames.com/2010/01/empaty-games-choice-and-agency/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 22:36:40 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Agency Theory]]></category>
		<category><![CDATA[Experimental Games]]></category>
		<category><![CDATA[Games / Design]]></category>

		<guid isPermaLink="false">http://www.jeffongames.com/?p=230</guid>
		<description><![CDATA[I got a few responses from my previous post, and now I want to share my feelings on the subject. As I stated in the post, I don't agree with David Cage, but I also don't agree with the statement from the reader either. To dismiss what games can offer emotionally or just from a [...]]]></description>
			<content:encoded><![CDATA[<p>I got a few responses from my <a href="http://www.jeffongames.com/2010/01/in-his-shoes/">previous post</a>, and now I want to share my feelings on the subject.</p>
<p>As I stated in the post, I don't agree with David Cage, but I also don't agree with the statement from the reader either.  To dismiss what games can offer emotionally or just from a narrative perspective generally with a blanket statement about how games give you the "opportunity to fill the shoes of the lead character" misses the point entirely.  What games offer has nothing to do with being in the shoes of the main character, and everything to do with choice and perceived agency.</p>
<p>To answer my own questions, I have never, really, felt like I was in the shoes of a main character of a video game, or that the main character was in any way a reflection of me.  Since I can't say that I have ever felt that way, I can't say that there were any instances of having a heightened emotional experience because of it.</p>
<p>In my option, the tools for creating heightened emotional experience in games are frequently exactly the same tools used for creating heightened emotional experiences in movies.  Both revolve around empathy, either for the main character or the characters that surround him.  Then when something good or bad happens to those characters, you yourself feel good or bad (or embarrassed, or sad, or whatever).   The thing is that movies are mostly limited to creating feelings through empathy, but they're better at it that games are for sure, partially because we are given no say in the choices of the characters, and yet we understand the choices they make.</p>
<p>It the comments, good friend <a href="http://www.plushapocalypse.com/borut">Borut</a> talks about a fictional slavery game, driven by empathy for the slave:</p>
<blockquote><p>If I play a game set in the South before the civil war where the main character is an escaped slave, will I actually feel like a slave? Probably not – but I will have a deeper understanding of what it might have been like, a more powerful understanding than if I watched a movie about it.</p></blockquote>
<p>I responded in the comments:</p>
<blockquote><p>Are you sure games are any better at achieving this than other mediums? Could you make a game that captures the hardships of being a slave or an escaped slave be any better than Roots? Part of being a slave was the unfair punishment, something we avoid in games completely.</p></blockquote>
<p>The classic whipping scene in Roots is probably my best example of a case where empathy actually works way better than agency.  Imagine if you were Kunta Kinte in a Roots game, and after every whip, you were asked what your name was.  How many times would you respond with the African name? When / if you finally responded with the English name, how would you feel?  There is no reward for using your English name, and no reward for using your African name.  In both cases, there is only punishment.  Because we empathize with Kunta in the movie, we understand why he wants to use his African name, and feel horrible about the punishment he receives because of it.  But given the same abstract choice in a game, how often would you respond with the choice that is correct for the character?</p>
<p>This does not, however preclude the idea of offering new or different types of emotional states in games.  Borut, again, points out that "a couple Bioware games have made me feel guilt when I treat party members badly (guilt is unique to games)," and he's right.  But the feeling of guilt is driven by empathy for the characters you're being mean to.  And if the character you're playing should be mean to characters, doesn't this prove that you're not necessarily in the mind of the main character when you perform actions in games?  Your character feels good about being a douchebag, shouldn't you?  The feeling your having is a result of seeing the impacts of your actions on characters you care about.  This is the key to emotional impact in games.</p>
<p>In my opinion, games heightened emotional states don't come from "being in the shoes of the main character," but though agency, and the feelings of agency given through choice.  Without that, you're left only with the powers of empathy given in movies.  Furthermore, players need to be able to draw the causal line from decisions they've made to the good or bad things happening to characters they care about.  You can see this already, even in games that have no plot.   Players can create strong emotional connections to, and empathize with, any number of things in games that, through the player's choices, end in a particular situation.  This state is heightened when they know that the situation was cause by some specific choice they made, and not just hand of the evil writers.  In plot based games I feel the impact can be heightened further, especially if the designers are able to both create empathy for the characters <strong>and</strong> provide the choices that allow those characters to succeed or fail.  Just because it hasn't been done (well), doesn't mean it can't be done, and in fact I think it should be done, and soon.</p>
<p>There is, of course, more I want to say on this subject concerning who we are as characters in a video game, but I want to leave it at that for now.</p>
<img src="http://feeds.feedburner.com/~r/JeffOnGames/~4/s9IFhTEfllA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jeffongames.com/2010/01/empaty-games-choice-and-agency/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>In His Shoes</title>
		<link>http://www.jeffongames.com/2010/01/in-his-shoes/</link>
		<comments>http://www.jeffongames.com/2010/01/in-his-shoes/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 16:51:19 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Games / Design]]></category>
		<category><![CDATA[Media Theory]]></category>

		<guid isPermaLink="false">http://www.jeffongames.com/?p=228</guid>
		<description><![CDATA[I've complained about Game Informer before. As "the world's #1 video game magazine" it leaves a lot to be desired. Mostly I think it's just catering to its audience though, so frequently I just give it a pass. Over the weekend, I read the latest issue of Game Informer and the following letter caught my [...]]]></description>
			<content:encoded><![CDATA[<p>I've complained about Game Informer before.  As "the world's #1 video game magazine" it leaves a lot to be desired.  Mostly I think it's just catering to its audience though, so frequently I just give it a pass.</p>
<p>Over the weekend, I read the latest issue of Game Informer and the following letter caught my eye:</p>
<blockquote><p>I'm writing about your interview with David Cage in issue 198.  He stated that video games are unable to generate an emotional experience like those present in movies, and I have to disagree.  I feel that video games can offer even more of an experience than movies because of the opportunity to fill the shoes of the lead character.</p></blockquote>
<p>The letter goes on, but that's the important part.  Now, I don't agree with David Cage, but I don't agree with the writer of this letter either.  I hear the "fill the shoes" / "you are the main character" argument concerning games and emotion a lot, and before I give my opinion on the subject, I want to ask these questions:</p>
<ol>
<li>When was the last time you actually felt like you were the main character in a game, or, that the main character was you?  And…</li>
<li>Can you name a time where you had a heightened emotional experience as a result of that feeling that could not have been achieved in any other medium?</li>
</ol>
<p>I'd like to hear responses on this before I give my own.</p>
<img src="http://feeds.feedburner.com/~r/JeffOnGames/~4/Jz1J5No0qA4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jeffongames.com/2010/01/in-his-shoes/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Obligatory New Years Post</title>
		<link>http://www.jeffongames.com/2009/12/obligatory-new-years-post/</link>
		<comments>http://www.jeffongames.com/2009/12/obligatory-new-years-post/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 22:44:19 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Games / Design]]></category>
		<category><![CDATA[Industry]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.jeffongames.com/?p=226</guid>
		<description><![CDATA[I didn't do this last year. I don't know why. I probably wasn't in a reflective mood last year. This year, I've been in a very reflective mood, as you can probably tell from many of my blog posts over the year. I reflected on a lot of things: open standards and web identity, DLC, [...]]]></description>
			<content:encoded><![CDATA[<p>I didn't do this last year.  I don't know why.  I probably wasn't in a reflective mood last year.  This year, I've been in a very reflective mood, as you can probably tell from many of my blog posts over the year.  I reflected on a lot of things: <a href="http://www.jeffongames.com/2009/01/playing-it-tight-and-loose/">open standards and web identity</a>, <a href="http://www.jeffongames.com/2009/04/bethesda-on-dlc/">DLC</a>,  <a href="http://www.jeffongames.com/2009/07/is-there-money-to-be-made/">the possibility of being an indie game developer</a>, and the state of <a href="http://www.jeffongames.com/2009/11/marketable-skills-state-of-game-programming-education/">computer science education</a>.  Until August, I was even able to post about twice a month, which is pretty good for me.</p>
<p>Besides blogging, what did I do in 2009?</p>
<ul>
<li>Me and several other Tools SIG members launched of the <a href="http://www.thetoolsmiths.org">Toolsmiths blog</a>, which is going very well, though we have dropped off a bit.  Hopefully we'll be able to pick up again in the New Year.</li>
<li>I participated in the <a href="http://www.globalgamejam.org/">Global Game Jam</a>, which was a blast, and I'm sure will be a blast again this year.  I've made plans already to make this a rockin Jam, and get everyone as coordinated as possible right out of the starting gate.  We'll see how that goes.</li>
<li>Darren and I also created <a href="http://bitbucket.org/fuzzybinary/angelxna/">AngelXNA</a>, which I've been using and enjoying, and hopefully improving for this year's Global Game Jam.  (More on that in another blog post).</li>
<li>I learned to love distributed version control, a trend that I'm sure will continue.</li>
</ul>
<p>So what didn't I do in 2009 that I really wanted to get done?  The main one is that I didn't finish a game.  I've got three currently on my plate, two of which are mostly coded one of which is still in prototype, but nothing finished.  This is really frustrating for me for a few reasons.  First, the longer I wait to release, the harder it will be to stand out, especially on services like XBLIG.  Second, like most people, I entered the game industry to create games, but I've yet to see an actual design of my own make it to a finished, polished state, only ever to a useable prototype.  I know this is true for many people, but considering my background I should be able to finish a game.  I am going to try very hard to correct this this year.</p>
<p>What do I think is coming in the New Year and new decade? Hopefully you'll see my first game.  For more serious predictions, I think you could do worse than listening to <a href="http://programmerjoe.com/2009/12/25/the-twenty-teens/">Joe Ludwig</a>.</p>
<p>I think that we'll also see more trends towards user created content and personalization, to the point where I think you will actually, eventually, see a game come out on a console that will allow user created mods.  The groundwork for this is already being laid out by the Rock Band Network, although it's still a long way from there to a console mod community.</p>
<p>Here's to a new year, new adventures, and hopefully some new games!</p>
<img src="http://feeds.feedburner.com/~r/JeffOnGames/~4/i8E6hpm9drU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jeffongames.com/2009/12/obligatory-new-years-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
