<?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/"
	>

<channel>
	<title>SpyParty - A Spy Game About Subtle Behavior &#187; art</title>
	<atom:link href="http://www.spyparty.com/category/art/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.spyparty.com</link>
	<description>Chris Hecker&#039;s new espionage game about subtle behavior, deception, performance, and perception.</description>
	<lastBuildDate>Sat, 04 Feb 2012 04:13:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>New FAQ Page</title>
		<link>http://www.spyparty.com/2011/05/07/new-faq-page/</link>
		<comments>http://www.spyparty.com/2011/05/07/new-faq-page/#comments</comments>
		<pubDate>Sat, 07 May 2011 09:10:38 +0000</pubDate>
		<dc:creator>checker</dc:creator>
				<category><![CDATA[art]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.spyparty.com/?p=1586</guid>
		<description><![CDATA[Just a quick note in the feed that I added a new FAQ page to the site.  Enjoy!  Oh, and comment there if you have comments on the FAQ.  If you have comments on this post about the FAQ, I suppose you should comment here then!]]></description>
			<content:encoded><![CDATA[<p>Just a quick note in the feed that I added a new <a title="FAQ" href="http://www.spyparty.com/faq/">FAQ page</a> to the site.  Enjoy!  Oh, and comment there if you have comments on the FAQ.  If you have comments on this post about the FAQ, I suppose you should comment here then!</p>
<div id="attachment_1533" class="wp-caption aligncenter" style="width: 370px"><img class="size-large wp-image-1533" title="P1040167" src="http://cdn.spyparty.com/wp-content/uploads/2011/05/P1040167-600x478.jpg" alt="" width="360" height="287" /><p class="wp-caption-text">I love these guys from PAX East 2011. They look like they&#39;re straight out of a Judd Apatow film!</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.spyparty.com/2011/05/07/new-faq-page/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A Deathtrap and a Walk in the Park</title>
		<link>http://www.spyparty.com/2011/01/19/a-deathtrap-and-a-walk-in-the-park/</link>
		<comments>http://www.spyparty.com/2011/01/19/a-deathtrap-and-a-walk-in-the-park/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 08:35:44 +0000</pubDate>
		<dc:creator>checker</dc:creator>
				<category><![CDATA[art]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[playtests]]></category>

		<guid isPermaLink="false">http://spyparty.com/?p=1165</guid>
		<description><![CDATA[One of the new things I&#8217;m doing for the GDC build is adding two additional maps.  Up until now, everybody who&#8217;s played SpyParty has played in the Ballroom, a box with 12 or so characters in it and windows on two sides.  The Ballroom is carefully tuned to be fair for both Sniper and Spy [...]]]></description>
			<content:encoded><![CDATA[<p>One of the new things I&#8217;m doing for the GDC build is adding two additional maps.  Up until now, everybody who&#8217;s played <strong>SpyParty</strong> has played in the Ballroom, a box with 12 or so characters in it and windows on two sides.  The Ballroom is carefully tuned to be fair for both Sniper and Spy at all skill levels (well, at least from total noob to 10 hour elite hardcore, the current limit of my playtest depth).  All the screenshots you&#8217;ve seen of the game are of this map, although for pictures I often increase the number of characters walking around.  Here&#8217;s a typical view from the Sniper&#8217;s perspective of the Ballroom with the correct number of characters at the party:</p>
<p><a href="http://cdn.spyparty.com/wp-content/uploads/2011/01/ballroom-side.png"><img class="aligncenter size-large wp-image-1172" title="ballroom-side" src="http://cdn.spyparty.com/wp-content/uploads/2011/01/ballroom-side-600x304.png" alt="" width="600" height="304" /></a></p>
<p>The first new map I&#8217;m adding is called Balcony.  I haven&#8217;t playtested it yet, but I&#8217;m pretty sure it&#8217;s going to be a deathtrap for the Spy.  There are only 7 or 8 characters, and the space is tiny.  The Spy has to either bug the ambassador, or contact the double agent.  Neither is going to be easy, since a reasonable Sniper can trivially watch everybody simultaneously.  I dunno, maybe the Spy can hide behind that plant:</p>
<p><a href="http://cdn.spyparty.com/wp-content/uploads/2011/01/balcony-side.png"><img class="aligncenter size-large wp-image-1166" title="balcony-side" src="http://cdn.spyparty.com/wp-content/uploads/2011/01/balcony-side-600x555.png" alt="" width="600" height="555" /></a></p>
<p>On the flip side, the Veranda level should be a Spy&#8217;s dream mission.  There are 22 characters walking around, and the Sniper can&#8217;t see the whole level from any single position.  The statues are spaced very far apart, as are the bookshelves, and there are conversations going on everywhere:</p>
<p><a href="http://cdn.spyparty.com/wp-content/uploads/2011/01/veranda-side.png"><img class="aligncenter size-large wp-image-1167" title="veranda-side" src="http://cdn.spyparty.com/wp-content/uploads/2011/01/veranda-side-600x331.png" alt="" width="600" height="331" /></a></p>
<p>Here&#8217;s a bird&#8217;s eye view from a debug camera:</p>
<p><a href="http://cdn.spyparty.com/wp-content/uploads/2011/01/veranda-top.png"><img class="aligncenter size-large wp-image-1168" title="veranda-top" src="http://cdn.spyparty.com/wp-content/uploads/2011/01/veranda-top-600x432.png" alt="" width="600" height="432" /></a></p>
<p>I can&#8217;t wait to playtest these.  When you&#8217;re tuning a game, it&#8217;s sometimes useful to slam the knobs to either extreme, so I&#8217;m interested to see how these maps feel to play.  Is the Balcony hopeless, or does it feel like a fun little diversion?  Does the Veranda feel like a hard Sniper challenge, or simply impossible?  What happens if you have two Snipers watching the Veranda simultaneously?</p>
<p>I&#8217;ll report back when I&#8217;ve got some data!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.spyparty.com/2011/01/19/a-deathtrap-and-a-walk-in-the-park/feed/</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>How I Celebrated the IGF Nomination</title>
		<link>http://www.spyparty.com/2011/01/04/how-i-celebrated-the-igf-nomination/</link>
		<comments>http://www.spyparty.com/2011/01/04/how-i-celebrated-the-igf-nomination/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 10:37:27 +0000</pubDate>
		<dc:creator>checker</dc:creator>
				<category><![CDATA[art]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[playtests]]></category>

		<guid isPermaLink="false">http://spyparty.com/?p=1074</guid>
		<description><![CDATA[You may have heard SpyParty was nominated for the Seumas McNally 1 Grand Prize at the 2011 Independent Games Festival.  This is really exciting, even though I probably have no chance of winning!  Still, I celebrated in the best way possible:  I worked on the game. The feature I&#8217;m working on right now I call [...]]]></description>
			<content:encoded><![CDATA[<p>You <a href="http://igf.com/2011/01/2011_independent_games_festiva_11.html">may have heard</a> <strong>SpyParty</strong> was nominated for the <strong>Seumas McNally </strong><sup><a href="http://www.spyparty.com/2011/01/04/how-i-celebrated-the-igf-nomination/#footnote_0_1074" id="identifier_0_1074" class="footnote-link footnote-identifier-link" title="I actually knew Seumas back in the day, and I&amp;#8217;m really glad the IGF has kept his name on the Grand Prize.&nbsp; More about Seumas is available here.">1</a></sup> <strong>Grand Prize </strong>at the 2011 Independent Games Festival.  This is really exciting, even though I probably have <a href="http://www.minecraft.net/">no chance</a> of winning!  Still, I celebrated in the best way possible:  I worked on the game.</p>
<p>The feature I&#8217;m working on right now I call &#8220;Action Testing&#8221;, which is a pretty lame name, but you have to name things when you&#8217;re writing code, so there you go&#8230;I&#8217;ll figure out a sexier name later.</p>
<p>The idea behind Action Testing is to fix what  I consider a flaw in the current game.  As I&#8217;ve said many times, I&#8217;m trying to take the core <strong>SpyParty</strong> game design as deep as I can on the player-skill axis, to the point where a more experienced player will basically always beat a less experienced player.  Once I&#8217;ve got the player-skill design &#8220;turned to 11&#8243;, I can ease new players into the game with matchmaking and an advanced handicapping system<sup><a href="http://www.spyparty.com/2011/01/04/how-i-celebrated-the-igf-nomination/#footnote_1_1074" id="identifier_1_1074" class="footnote-link footnote-identifier-link" title="The board game Go is a ultimate example of this.&nbsp; Very different skill level players can both have a good game with each other because of Go&amp;#8217;s beautiful handicapping design.">2</a></sup>.</p>
<p>The flaw in the current game is if a merely good Sniper is playing an elite Spy, the Spy player can&#8217;t accomplish any missions if the Sniper is looking directly at the Spy, even though he or she is much more skilled.  The Spy will still win most of the time, because the merely good Sniper won&#8217;t be able to tell which partygoer to watch if the Spy is good enough, but I still consider this a flaw because an elite Spy should be able to perform missions right in front of the less skilled Sniper due to the skill differential.</p>
<p>So, I&#8217;ve decided to try adding a tiny optional player-skill challenge to accomplishing missions.  There are many examples in games of the kind of small scale player-skill challenges I&#8217;m talking about, with driving and putting in Golf games being a historically important example.  However, for me, the most inspirational challenge of this sort in modern day games is <a href="http://www.youtube.com/watch?v=cIwBrQ4hT5k">Active Reload</a> from <a href="http://www.epicgames.com/">Epic</a>&#8216;s <a href="http://gearsofwar.xbox.com">Gears of War</a>, so to start out I&#8217;ve basically made a modified clone of it and we&#8217;ll see how that goes in playtesting.</p>
<p>Here&#8217;s how it works in Gears:</p>
<p><img class="aligncenter size-full wp-image-1154" title="gearsar" src="http://cdn.spyparty.com/wp-content/uploads/2011/01/gearsar.png" alt="" width="600" height="253" /></p>
<p>When you run out ammo, you can press the reload button once and you&#8217;ll do a normal reload animation.  However, if you look closely in the upper right hand side of the screen, you&#8217;ll see a display like the above.  The bright vertical bar travels across the Active Reload bar, and if you push the reload button again on the &#8220;awesome&#8221; zone you&#8217;ll get a much faster reload (and you get a temporary bonus on the weapon), if you hit the &#8220;normal&#8221; area, you get a slightly faster reload, but close to the duration you&#8217;d get if you&#8217;d just ignored the challenge, and if you hit the &#8220;total failure&#8221; section you are penalized with a long and slow gun jam.  The exact timings and details are <a href="http://gearsofwar.wikia.com/wiki/Active_Reload">here</a>.</p>
<p>The thing I like about this is that it&#8217;s an &#8220;opt-in&#8221; risk/reward challenge for the player.  The player can decide whether it&#8217;s worth the risk for the extra bonus, and if they opt-in and screw it up, the credit (read: blame) assignment is clear.</p>
<p>However, in practice, because the Gears design has a fixed geometry and timing, experienced players simply learn the timing and nail the &#8220;awesome&#8221; zone every time.  This is probably good for an FPS, where you just get a little extra depth by having the rhythm challenge, but I didn&#8217;t want my version of it to be memorizable in that way.  Instead, I wanted the Spy player to have to pay attention to the skill aspect of the test and adapt to it each time.  The Spy should really have to think about whether it is worth the risk of both potentially screwing up the test, and of having to pay attention to the test when the Sniper was aiming right at him or her.  So, I randomize both the position of the &#8220;normal&#8221; zone in the overall bar, and the position of the &#8220;awesome&#8221; zone in the normal zone.  I have the cursor ramp up in speed as it goes along to compensate for the fact that you have more visual time if the zones get placed farther to the right.  So, if the zones are to the left, the cursor is moving slower, but you have less time to process the situation and react, but if the zones are to the right, you have more time to figure out what you&#8217;re doing, but the cursor is moving faster.</p>
<div style="text-align: center;"><img class="size-full wp-image-1138 alignnone" title="active2-sm" src="http://cdn.spyparty.com/wp-content/uploads/2011/01/active2-sm.png" alt="" width="200" height="200" /> <img class="size-full wp-image-1139 alignnone" title="active3-sm" src="http://cdn.spyparty.com/wp-content/uploads/2011/01/active3-sm.png" alt="" width="200" height="200" /> <img class="size-full wp-image-1137 alignnone" title="active1-sm" src="http://cdn.spyparty.com/wp-content/uploads/2011/01/active1-sm.png" alt="" width="200" height="200" /></div>
<p>The current tuning feels pretty good.  The cursor takes 1.4 seconds to traverse the whole bar, and it&#8217;s going twice as fast on the right as the left.  I find it really hard to not push the button once I&#8217;ve decided to go for it, even if I can see the cursor is past the &#8220;normal&#8221; zone&#8230;there&#8217;s some interesting psychology going on there.  I haven&#8217;t playtested it in the game yet, though, so we&#8217;ll see how it goes.</p>
<p>In <strong>SpyParty</strong>, each Spy action with have the Action Test enabled, and the results of hitting &#8220;awesome&#8221;, &#8220;normal&#8221;, and &#8220;total failure&#8221; will be different for every action.  Here&#8217;s an example video of the three results for hiding the microfilm in the book:</p>
<p><a href="http://www.spyparty.com/2011/01/04/how-i-celebrated-the-igf-nomination/"><em>Click here to view the embedded video.</em></a></p>
<p>The one on the left is the &#8220;awesome&#8221; result, and you can see it&#8217;s fast and subtle.  The middle is the &#8220;normal&#8221; result, and is basically the animation that&#8217;s currently in the game.  The one of the right is the &#8220;total failure&#8221; result.  I kinda like how he takes the wrong thing out of his pocket at first&#8230;you can think of the Action Test as a way of choosing whether you&#8217;re Austin Powers or James Bond!</p>
<p>The different expressions of skill won&#8217;t always be represented with animations.  For the Check Watch action that allows the Spy to add time to the game, the &#8220;awesome&#8221; result actually dilates time on the Sniper&#8217;s machine, so the countdown clock simply slows down to add the time, instead of adding it in a single 30 second chunk like the &#8220;normal&#8221; result.  An astute Sniper can still tell time has slowed down, but it requires more attention than just noticing the clock go backwards.  The &#8220;total failure&#8221; result sounds the beep tone when the time is added.  Normally the clock only beeps on the minute, so if you are the Sniper and you hear the beep and look up and the clock isn&#8217;t near a minute breaker, you know somebody screwed up.</p>
<p>The different results are going to be totally custom for each action, which means they&#8217;re going to need a lot of playtesting to balance out right.</p>
<p>Oh, and speaking of playtesting, since <strong>SpyParty</strong> is an IGF nominee, that means <a href="http://gdconf.com">GDC 2011</a> will be the next (pseudo-)public playtest!</p>
<hr/><ol class="footnotes"><li id="footnote_0_1074" class="footnote">I actually knew Seumas back in the day, and I&#8217;m really glad the IGF has kept his name on the Grand Prize.  More about Seumas is available <a href="http://www.gamedev.net/community/memorial/seumas/">here</a>.</li><li id="footnote_1_1074" class="footnote">The board game Go is a ultimate example of this.  Very different skill level players can both have a good game with each other because of Go&#8217;s beautiful handicapping design.</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.spyparty.com/2011/01/04/how-i-celebrated-the-igf-nomination/feed/</wfw:commentRss>
		<slash:comments>61</slash:comments>
		</item>
		<item>
		<title>The Last Public Playtest for a While</title>
		<link>http://www.spyparty.com/2010/11/02/the-last-public-playtest-for-a-while/</link>
		<comments>http://www.spyparty.com/2010/11/02/the-last-public-playtest-for-a-while/#comments</comments>
		<pubDate>Tue, 02 Nov 2010 20:26:42 +0000</pubDate>
		<dc:creator>checker</dc:creator>
				<category><![CDATA[art]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[playtests]]></category>

		<guid isPermaLink="false">http://spyparty.com/?p=1054</guid>
		<description><![CDATA[My crazily hectic summer &#38; fall continues&#8230;  I&#8217;m back from a great time at GameCity in Nottingham, UK (here are some pics, and I&#8217;ll post the lecture audio shortly), and now I&#8217;m preparing to go to NYU&#8217;s GameCenter in a couple weeks. On November 18th, on the lower level of NYU&#8217;s 721 Broadway building, we [...]]]></description>
			<content:encoded><![CDATA[<p>My crazily hectic summer &amp; fall continues&#8230;  I&#8217;m back from a great time at <a href="http://www.gamecity.org/">GameCity</a> in Nottingham, UK (<a href="http://www.flickr.com/photos/gamecityfestival/5122925569/in/set-72157625259879710/">here are some pics</a>, and I&#8217;ll post the lecture audio shortly), and now I&#8217;m preparing to go to <a href="http://gamecenter.nyu.edu/?page_id=243">NYU&#8217;s GameCenter</a> in a couple weeks.</p>
<p>On <strong>November 18th</strong>, on the lower level of <a href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=+Interactive+Telecommunications+Program,721+Broadway,+new+york&amp;sll=40.729291,-73.993499&amp;sspn=0.012212,0.014935&amp;ie=UTF8&amp;hq=Interactive+Telecommunications+Program&amp;hnear=721+Broadway,+New+York,+10003&amp;ll=40.729291,-73.993499&amp;spn=0.011805,0.014935&amp;z=16&amp;iwloc=A&amp;cid=17840173713295148419">NYU&#8217;s 721 Broadway building</a>, we will do a <strong>SpyParty</strong> playtest at <strong>1pm (note extended hours!)</strong>, followed by a lecture and interview with Frank Lantz, the most excellent Director of the GameCenter, at <strong>7pm</strong>.  Both are open to the public, which is very gracious of the University! Here is <a href="http://gamecenter.nyu.edu/?p=1028">their announcement</a>.  Plus, check out the awesome poster by <a href="http://rachelem-illo.com/">Rachel E. Morris</a>:</p>
<p><img class="aligncenter size-full wp-image-1069" title="nyu_poster12" src="http://cdn.spyparty.com/wp-content/uploads/2010/11/nyu_poster12-nogroundbreaking.jpg" alt="" width="470" height="624" /></p>
<p style="text-align: center;">
<p>This is going to be the last public playtest of <strong>SpyParty</strong> for a while, maybe even until <a href="http://gdconf.com/">GDC</a> next February.  I love doing these playtests and lectures, but the travel and preparation really distracts from progress on the game itself, so I need to buckle down and crank for a bit.</p>
<div id="attachment_1055" class="wp-caption aligncenter" style="width: 610px"><img class="size-large wp-image-1055   " title="P1010203" src="http://cdn.spyparty.com/wp-content/uploads/2010/11/P1010203-600x450.jpg" alt="" width="600" height="450" /><p class="wp-caption-text">Frank Lantz, pondering his SpyParty playtest at GDC10</p></div>
<p>I also have a huge backlog of stuff to post here on the blog, so hopefully I&#8217;ll begin whittling that down once things normalize again.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.spyparty.com/2010/11/02/the-last-public-playtest-for-a-while/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Have an alpha masked Xbox 360 Controller, on me.</title>
		<link>http://www.spyparty.com/2010/08/30/have-an-alpha-masked-xbox-360-controller-on-me/</link>
		<comments>http://www.spyparty.com/2010/08/30/have-an-alpha-masked-xbox-360-controller-on-me/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 09:46:34 +0000</pubDate>
		<dc:creator>checker</dc:creator>
				<category><![CDATA[art]]></category>
		<category><![CDATA[indie games]]></category>
		<category><![CDATA[miscellaneous]]></category>

		<guid isPermaLink="false">http://spyparty.com/?p=861</guid>
		<description><![CDATA[I&#8217;m busy writing the documentation booklet that I&#8217;m going to give to people wanting to play SpyParty at PAX1, and I needed an Xbox 360 Controller image to put in there so I can point to the buttons and say what they each do, just like real games do.  Well, it turns out there isn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m busy writing the documentation booklet that I&#8217;m going to give <a href="http://www.spyparty.com/2010/08/11/come-to-pax-and-play-monaco-and-spyparty/">to people wanting to play <strong>SpyParty</strong> at PAX</a><sup><a href="http://www.spyparty.com/2010/08/30/have-an-alpha-masked-xbox-360-controller-on-me/#footnote_0_861" id="identifier_0_861" class="footnote-link footnote-identifier-link" title="Yes, it&amp;#8217;s basically insane to expect people to read documentation before playing a game demo at a convention, but the game is currently so inaccessible to noobs that I really have no choice.&nbsp; I&amp;#8217;ll upload the draft document here tomorrow so people can give feedback.">1</a></sup>, and I needed an Xbox 360 Controller image to put in there so I can point to the buttons and say what they each do, just like <a href="http://343gamer.files.wordpress.com/2009/06/gow-2-game-controls.jpg">real games</a> do.  Well, it turns out there isn&#8217;t any nice picture of a controller that&#8217;s usable for this online, so I made one by taking a picture of one of my controllers, and then painting the alpha transparency mask.  Painting masks is a giant pain in the butt, so I figured I&#8217;d upload it here in case some other developer needs one.  It&#8217;s not exactly professional print quality, but it&#8217;s 3.2k by 2k, so it&#8217;s high enough resolution for most things.   Here&#8217;s a preview 1600 by 1000 png:</p>
<p><a href="http://cdn.spyparty.com/wp-content/uploads/2010/08/xbox_360_controller-small.png"><img class="aligncenter size-large wp-image-869" title="xbox_360_controller-small" src="http://cdn.spyparty.com/wp-content/uploads/2010/08/xbox_360_controller-small-600x375.png" alt="" width="600" height="375" /></a></p>
<p>It wants a little contrast adjustment and whatnot, but I figure the raw file is most useful.  Here&#8217;s the photoshop PSD:  <a href="http://cdn.spyparty.com/wp-content/uploads/2010/08/xbox_360_controller.zip">xbox_360_controller.zip (24mb)</a></p>
<hr/><ol class="footnotes"><li id="footnote_0_861" class="footnote">Yes, it&#8217;s basically insane to expect people to read documentation before playing a game demo at a convention, but the game<a href="http://www.spyparty.com/2010/02/01/a-new-decade-an-old-development-philosophy/"> is currently so inaccessible to noobs</a> that I really have no choice.  I&#8217;ll upload the draft document here tomorrow so people can give feedback.</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.spyparty.com/2010/08/30/have-an-alpha-masked-xbox-360-controller-on-me/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>More Cocktail Teasers</title>
		<link>http://www.spyparty.com/2010/08/25/more-cocktail-teasers/</link>
		<comments>http://www.spyparty.com/2010/08/25/more-cocktail-teasers/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 08:09:42 +0000</pubDate>
		<dc:creator>checker</dc:creator>
				<category><![CDATA[art]]></category>
		<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://spyparty.com/?p=837</guid>
		<description><![CDATA[A few more teaser shots for the new cocktail stuff.  Soon, drinks will be served by this nice gentleman, rather than teleporting directly into the hands of the partygoers. Of course, eventually you could choose to be the waiter or waitress, and that would certainly make poisoning the Generalissimo&#8217;s drink pretty easy, however you might [...]]]></description>
			<content:encoded><![CDATA[<p>A few more teaser shots for the new cocktail stuff.  Soon, drinks will be served by this nice gentleman, rather than teleporting directly into the hands of the partygoers.</p>
<p><img class="aligncenter size-full wp-image-839" title="waiter-tray" src="http://cdn.spyparty.com/wp-content/uploads/2010/08/waiter-tray.jpg" alt="" width="680" height="683" /></p>
<p>Of course, eventually you could choose to be the waiter or waitress, and that would certainly make poisoning the Generalissimo&#8217;s drink pretty easy, however you might have a hard time hiding the microfilm in the book&#8230;</p>
<p><img class="aligncenter size-full wp-image-838" title="drink-tray" src="http://cdn.spyparty.com/wp-content/uploads/2010/08/drink-tray.gif" alt="" width="480" height="360" /></p>
<p>By the way, are these inline animated gifs (another one <a href="http://www.spyparty.com/2010/08/04/lost-in-the-4th-dimension/">here</a>) a good thing or a bad thing?  They&#8217;re certainly easier for simple stuff than uploading to vimeo or youtube<sup><a href="http://www.spyparty.com/2010/08/25/more-cocktail-teasers/#footnote_0_837" id="identifier_0_837" class="footnote-link footnote-identifier-link" title="You may have noticed I&amp;#8217;ve switched to vimeo because their compression is much less objectionable at 4:3 aspect ratio.&nbsp; For some reason, youtube doesn&amp;#8217;t turn on h.264 unless you&amp;#8217;re 16:9, which is idiotic.">1</a></sup>.  They are kind of big, though.</p>
<hr/><ol class="footnotes"><li id="footnote_0_837" class="footnote">You may have noticed I&#8217;ve switched to vimeo because their compression is much less objectionable at 4:3 aspect ratio.  For some reason, youtube doesn&#8217;t turn on h.264 unless you&#8217;re 16:9, which is idiotic.</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.spyparty.com/2010/08/25/more-cocktail-teasers/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Shaken, Not Stirred</title>
		<link>http://www.spyparty.com/2010/08/24/shaken-not-stirred/</link>
		<comments>http://www.spyparty.com/2010/08/24/shaken-not-stirred/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 06:17:47 +0000</pubDate>
		<dc:creator>checker</dc:creator>
				<category><![CDATA[art]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://spyparty.com/?p=816</guid>
		<description><![CDATA[I&#8217;m too swamped with PAX prep to do a real detailed post, but I figured I&#8217;d tease with this: I&#8217;m adding drinks to the party, which while always welcome at real parties, are a real pain in the butt at virtual ones. For starters, holding a drink &#8220;cross-cuts&#8221; just about every other behavior and animation, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m too swamped with <a href="http://www.spyparty.com/2010/08/11/come-to-pax-and-play-monaco-and-spyparty/">PAX prep</a> to do a real detailed post, but I figured I&#8217;d tease with this:</p>
<p><a href="http://www.spyparty.com/2010/08/24/shaken-not-stirred/"><em>Click here to view the embedded video.</em></a></p>
<p>I&#8217;m adding drinks to the party, which while always welcome at real parties, are a real pain in the butt at virtual ones.</p>
<p>For starters, holding a drink &#8220;cross-cuts&#8221; just about every other behavior and animation, so I have to override the animations on the arm so the drink doesn&#8217;t get tossed in the face of the person standing next to the drink-holder when he or she gesticulates while talking, I have to layer AI on top of all the currently running AI code that manages when to take a sip, and more.</p>
<p>I&#8217;m going to write more about the AI system I came up with to deal with all this once it&#8217;s got a bit more mileage on it and I&#8217;m sure it&#8217;s actually going to work, but it allows a character to be in multiple simultaneous <em>situations</em>, like &#8220;holding a drink&#8221;, &#8220;having a conversation&#8221;, and &#8220;bugging the Ambassador&#8221;.</p>
<p>Of course, now I have to pick which drinks to put in the game, and I&#8217;m not really a big cocktail drinker myself, so I found an article entitled <a href="http://cocktails.about.com/od/history/tp/jamesbond_cocktails.htm">What Does James Bond Drink?</a>, which has been quite useful.  So far, I&#8217;ve got models for the canonical Martini<sup><a href="http://www.spyparty.com/2010/08/24/shaken-not-stirred/#footnote_0_816" id="identifier_0_816" class="footnote-link footnote-identifier-link" title="A Vodka Martini, I suppose, if you&amp;#8217;re being true to Bond, although I put olives in the model instead of lemon peel">1</a></sup>, and a Scotch &amp; Soda.  I&#8217;m going to need to add some features to my renderer to get these to look right;  translucent objects like glass, ice, and colored liquids are quite difficult to render well.  And, of course, my current character skeletons don&#8217;t actually have hand bones so the glass kind of floats near the palm.  My todo list is infinitely long&#8230;</p>
<p>Still, it&#8217;s neat to see them taking sips of their drinks in the party, even clumsily.  It really adds a lot of humanity to the scene.</p>
<p><strong>If you&#8217;ve got ideas for cocktails I should include in the game, post in the comments below. </strong> Preferably, the drinks would be distinct and easy to recognize on sight, even at a distance, and have interesting and classy names.  Besides being good ambient party behavior, cocktails are going to be part of the new <em>Poison Drink</em> mission, which I&#8217;m trying to get stood up for PAX<sup><a href="http://www.spyparty.com/2010/08/24/shaken-not-stirred/#footnote_1_816" id="identifier_1_816" class="footnote-link footnote-identifier-link" title="Yes, I know, I haven&amp;#8217;t finished writing about the Bookshelf Mission yet.&nbsp; I&amp;#8217;ve got a draft of the post!">2</a></sup>, so being able to identify drinks will actually be part of the gameplay to a certain extent!  I guess we&#8217;ll see how that goes over.</p>
<p>While I&#8217;m on the subject of vices, some day I&#8217;ll add cigarettes and cigars as well.  I think the smoke will add interesting gameplay elements for both the Sniper and the Spy, like maybe the Sniper&#8217;s laser sight is only visible to the Spy when it hits a cloud of smoke, so the Spy is incented to keep smokers between him or herself and the Sniper&#8230;</p>
<p>I wonder if having alcohol and tobacco in the game will affect its <a href="http://www.esrb.org">ESRB</a> rating.  I&#8217;m guessing you can kill as many space aliens and orcs as you want in your game, but if somebody takes a drink of gin and lights somebody&#8217;s cigarette you&#8217;re in trouble.  Oh well, I&#8217;ll cross that bridge when I come to it.</p>
<hr/><ol class="footnotes"><li id="footnote_0_816" class="footnote">A Vodka Martini, I suppose, if you&#8217;re being true to Bond, although I put olives in the model instead of lemon peel</li><li id="footnote_1_816" class="footnote">Yes, I know, I haven&#8217;t finished writing about the <a href="http://www.spyparty.com/2010/08/09/re-re-re-designing-a-mission-part-1/"><em>Bookshelf Mission</em></a> yet.  I&#8217;ve got a draft of the post!</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.spyparty.com/2010/08/24/shaken-not-stirred/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>SpyParty E3 &#8220;Competitive&#8221; Analysis</title>
		<link>http://www.spyparty.com/2010/07/14/spyparty-e3-competitive-analysis/</link>
		<comments>http://www.spyparty.com/2010/07/14/spyparty-e3-competitive-analysis/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 09:36:17 +0000</pubDate>
		<dc:creator>checker</dc:creator>
				<category><![CDATA[art]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[press]]></category>

		<guid isPermaLink="false">http://spyparty.com/?p=519</guid>
		<description><![CDATA[I&#8217;m not an economist, so I could be completely wrong here, but I don&#8217;t think games (or works in any art and entertainment form, whether film, music, books, whatever) really compete against each other in the usual sense of the term &#8220;compete&#8221;. Yes, if you ship on the exact same day as a big hit, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not an economist, so I could be completely wrong here, but I don&#8217;t think games (or works in any art and entertainment form, whether film, music, books, whatever) really compete against each other in the usual sense of the term &#8220;compete&#8221;. Yes, <a href="http://www.joystiq.com/2010/07/02/npd-on-the-red-dead-alan-wake-and-split-second-retail-showdown/">if you ship on the exact same day as a big hit, you&#8217;re hosed</a>, but in general, I don&#8217;t think even games as similar as <strong>Halo</strong> and <strong>Gears of War</strong> compete in the same way <strong>Honda </strong>and <strong>Toyota </strong>compete. Ignoring the hardcore fanboy zealots, if you buy and enjoy Halo, you&#8217;ll probably buy and enjoy Gears, and vice versa. My guess is the overlap between the owners of those two games is pretty high. <a href="http://www.gamasutra.com/view/news/28320/Analysis_Mario_Galaxy_2_Leads_Purchase_Intent.php">Here is an article about purchase intent for the two games</a>, which says slightly over 50% of the people who buy one intend to buy the other<sup><a href="http://www.spyparty.com/2010/07/14/spyparty-e3-competitive-analysis/#footnote_0_519" id="identifier_0_519" class="footnote-link footnote-identifier-link" title="I wonder if there are numbers out there about actual purchases rather than intent.">1</a></sup>.</p>
<p>By contrast, few people buy more than one car every few years, so if somebody is in the market for a car, the auto companies really are competing for that one sale.</p>
<p>With games, I think the most important thing is to make the game you feel passionate about making, and not worry too much about what other developers are doing.</p>
<p>That said, it is still important to keep abreast of what&#8217;s going on in the industry, and to keep tabs on what games have come out or are coming out that are related to yours in some way. It&#8217;s good for inspiration, motivation, and education.</p>
<p>I went to E3 this year with a list of spy games, mystery games, and games that looked like they could have some subtle social interactions to check out, and here&#8217;s how it went:</p>
<ul>
<li><strong>Assassin&#8217;s Creed Brotherhood, Wanted Mode Multiplayer<br />
<span style="font-weight: normal;">I felt like Ubisoft&#8217;s ACB was the most important game for me to check out, and I got to play it for a while on the show floor. I had heard about the &#8220;Wanted&#8221; multiplayer mode before I went to E3, and how it was similar to </span><a href="http://store.steampowered.com/app/2400/">The Ship</a><span style="font-weight: normal;"><a href="http://store.steampowered.com/app/2400/">, an older game on Steam</a> that&#8217;s been mentioned whenever people talk about </span>SpyParty</strong>. Here&#8217;s a good video explaining the Wanted mode:<br />
<p><a href="http://www.spyparty.com/2010/07/14/spyparty-e3-competitive-analysis/"><em>Click here to view the embedded video.</em></a></p><br />
Like The Ship, it&#8217;s basically <a href="http://en.wikipedia.org/wiki/Assassin_(game)">the old college campus game, Assassin</a>, where each player has a known target, but doesn&#8217;t know who has them as a target. Both are much more symmetric than <strong>SpyParty</strong>, in that everyone is basically playing the same game. As you can see in the video, there&#8217;s not actually a lot of &#8220;hiding in plain sight&#8221; or &#8220;acting normal&#8221; going on, especially since there&#8217;s a giant radar on the screen, you can climb all over buildings but the NPCs don&#8217;t, and you have various super powers. In my playtests, it tended to degenerate into running around, climbing on things, and trying to get quick kills. The game ships in November, so I&#8217;ll be interested to see if they change the mode at all by then. I hope they remove the radar, and tune it so people actually try to blend in more and it becomes more about behavior. If they do that, there will be some useful lessons to learn from watching it in the wild.</li>
<li><strong>Guilty Party</strong><br />
This Disney game for the Wii has a few content-oriented things in common with <strong>SpyParty</strong>, including the settings and characters, not to mention the name similarity, so I thought I&#8217;d check it out. Here is a brief video of the developers talking about it:<br />
<p><a href="http://www.spyparty.com/2010/07/14/spyparty-e3-competitive-analysis/"><em>Click here to view the embedded video.</em></a></p><br />
The game has quite nice stylized art direction and characters, but the gameplay itself is pretty much pure deductive reasoning, kind of like the board games <a href="http://en.wikipedia.org/wiki/Cluedo"><strong>Clue(do)</strong></a> or <a href="http://www.boardgamegeek.com/boardgame/4143/guess-who"><strong>Guess Who?</strong></a>. You gather explicit clues to narrow down the suspects until you can prove somebody&#8217;s the guilty party. I want to have some deductive reasoning aspects to the Sniper side of <strong>SpyParty, </strong>because the practice of narrowing down your suspects is fulfilling and interesting and helps you focus your attention, but I want the majority of the game on the Sniper side to be about perception, observing subtle human behavior, and making decisions with incomplete information. I don&#8217;t want you to be able to brute force figure out who the Spy is by deduction.</li>
<li><strong>The Agency<br />
<span style="font-weight: normal;">This is a Sony Online Entertainment &#8220;FPS MMO&#8221;. Besides the spy fiction theme, there&#8217;s not a lot of overlap here, and even the theme is pretty different, with The Agency being some kind of future scifi spy world. The game is mostly a First Person Shooter with some persistent RPG elements. <a href="http://www.youtube.com/watch?v=IMwL4krQ_xE ">Here&#8217;s an interview where they talk about the various aspects of the game</a> they were showing at E3, and it&#8217;s mostly shooter stuff. <a href="http://www.youtube.com/watch?v=hci_cD8qJ6w">This video talks a bit about some less shootery things</a>, but it&#8217;s all in cutscenes in the video, so it&#8217;s hard to see whether they&#8217;ve got that stuff working in gameplay. They&#8217;re also doing some sort of more casual Facebooky thing to go along with it, and <a href="http://www.youtube.com/watch?v=qOtXMXC9m0Q">here&#8217;s the trailer for that</a>. Edit: although, <a href="http://theagency.station.sony.com/images/screenshots/full_size/ChateauBallroomParty.jpg">this ballroom image</a> looks interesting.</span></strong></li>
</ul>
<p>The three games I wanted to see but that weren&#8217;t anywhere on the show floor or even behind closed doors (that I could determine) were:</p>
<ul>
<li><strong>Bloody Good Time</strong><br />
This is the spiritual sequel to <strong>The Ship</strong>, by some of the same developers. Ubisoft bought or absorbed some or all of <a href="http://en.wikipedia.org/wiki/Outerlight">Outerlight</a>, the developers of The Ship, and they&#8217;re working on Bloody Good Time for XBLA. <a href="http://www.siliconera.com/2010/05/28/bloody-good-time-details-spilled-by-esrb/">From the sounds of it via ESRB filings</a>, it&#8217;s going even farther away from the subtle social stuff, which is too bad, but it will be interesting to see when it&#8217;s finished.</li>
<li><strong>Agent<br />
<span style="font-weight: normal;">Very little is known about this Rockstar game, but there&#8217;s <a href="http://kotaku.com/5302127/rockstars-agent-very-very-different-from-gta">a bit of info out there</a>. The fact that they&#8217;re calling it &#8220;the ultimate action game&#8221; implies it&#8217;s not going for the subtle stuff, but who knows. I&#8217;m assuming it will it be <strong>Grand Theft Espionage</strong> like <strong>Red Dead Redemption</strong> was <strong>Grand Theft Western</strong>, which could be pretty cool, but very different from <strong>SpyParty</strong>, but we&#8217;ll have to wait and see!</span></strong></li>
<li><span style="font-weight: normal;"><strong>Hitman<br />
<span style="font-weight: normal;">No sign of <strong>Hitman 5</strong> that I could find. <a href="http://www.variety.com/article/VR1118005347.html?categoryid=13&amp;cs=1">Some news has come out</a> since then, but nothing very interesting yet.</span></strong></span></li>
</ul>
<p>One of the more interesting games I heard about at E3 was described to me by my friend and colleague <a href="http://www.ericzimmerman.com/">Eric Zimmerman</a>. He told me about playing <a href="http://www.comeoutandplay.org/2010_loveslabourlost.php"><strong>Love&#8217;s Labor&#8217;s Lost</strong> at Come Out and Play 2010</a>, which was a live action game with a lot of subtle behavioral interactions and hidden information.</p>
<p>Anyway, that&#8217;s it for the <strong>SpyParty</strong>-centric E3 roundup. My review of E3 in general is:  <em>&#8220;wow, that&#8217;s a lot of shooters.&#8221;</em></p>
<p>Post a comment or send me email if you know anything more about the games above, or any other games I should be keeping an eye on.</p>
<p style="text-align: left;">
<hr/><ol class="footnotes"><li id="footnote_0_519" class="footnote">I wonder if there are numbers out there about actual purchases rather than intent.</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.spyparty.com/2010/07/14/spyparty-e3-competitive-analysis/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Full Body IK Solver in a Day</title>
		<link>http://www.spyparty.com/2010/06/08/full-body-ik-solver-in-a-day/</link>
		<comments>http://www.spyparty.com/2010/06/08/full-body-ik-solver-in-a-day/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 00:49:21 +0000</pubDate>
		<dc:creator>checker</dc:creator>
				<category><![CDATA[art]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://spyparty.com/?p=459</guid>
		<description><![CDATA[I am finally nearing the end of the list I made almost two months ago to get picking up and interacting with objects working in SpyParty. Here is is again: Add an event track to the animation system so the animations can tell the AI when the object should be attached. Make an animation for [...]]]></description>
			<content:encoded><![CDATA[<p>I am finally nearing the end of <a href="http://www.spyparty.com/2010/04/17/game-development-is-tedious/">the list I made almost two months ago</a> to get picking up and interacting with objects working in <strong>SpyParty</strong>. Here is is again:</p>
<ol>
<li><span style="text-decoration: line-through;">Add an event track to the animation system so the animations can tell the AI when the object should be attached.</span></li>
<li><span style="text-decoration: line-through;">Make an animation for picking up the object and have it fire an attachment event.</span></li>
<li><span style="text-decoration: line-through;">Add non-character dynamic items as a concept to the code.</span></li>
<li><span style="text-decoration: line-through;">Add a simple attachment system to the character AI and rendering code.</span></li>
<li>Write a quick full body IK system so the character doesn’t have to align with the item exactly.</li>
<li>Hook it all up.</li>
</ol>
<p>Steps 3 and 4 were discussed in <a href="http://www.spyparty.com/2010/05/20/object-h-is-dead-long-live-object-h/">this post</a>.</p>
<p>In the original post, Step 5 had this footnote:</p>
<blockquote><p>&#8220;This is a step that might give some people pause, but I’ve written <a href="http://chrishecker.com/Inverse_Kinematics">so many IK solvers</a> over the years that I figure I can whip this out in a day or so. Famous last words.&#8221;</p></blockquote>
<p>Well, I managed to get a full body IK solver mostly working on Sunday. Admittedly, it was a 12 hour day, but still, not bad if I do say so myself.</p>
<p>Briefly, IK stands for Inverse Kinematics. Kinematics is the study of how things move through time and space. Taking the simple example of your arm, Forward Kinematics is about how your hand moves when you change the <em>joint angles</em> at your shoulder and your elbow. You might rotate your elbow by 30 degrees, and figuring out where your hand ends up is a Forward Kinematics problem. As you might imagine, it&#8217;s somewhat difficult to pick up objects if you have to manually specify the shoulder and elbow angles to move the hand towards the object. Worse, if you change the shoulder angle, obviously the elbow angle has to change to keep the hand in the same place, since your arm is <em>hierarchical.</em></p>
<p>Inverse Kinematics is the solution to this problem. Where FK says, &#8220;given the joint angles, where is the hand?&#8221;, IK inverts that and says, &#8220;given the desired hand position and orientation, what are the joint angles to get there?&#8221;  There is some more math involved in solving IK problems compared to FK problems, but it allows you to control the arm from the hand and the shoulder and elbow joints figure themselves out.</p>
<p>One interesting point is that the FK problem always has a solution: for any joint angles at your shoulder and elbow, your hand will end up somewhere. By contrast, the IK problem doesn&#8217;t always have a solution: if I ask the IK solver what joint angles will put your hand on the moon, it had better give back either &#8220;none&#8221; or something reasonable like angles that point your hand towards the moon.</p>
<p>So, that&#8217;s the Kinematics lesson for today, let&#8217;s get to the examples. <strong><span style="color: #ff0000;">Remember, all of this art is temporary prototype placeholder artwork!</span></strong></p>
<p>First, here&#8217;s a video of a character interacting with a statue in <strong>SpyParty</strong>, where the character is aligned with the statue in the same way the animation was created, so it all lines up nicely:</p>
<p style="text-align: center;"><p><a href="http://www.spyparty.com/2010/06/08/full-body-ik-solver-in-a-day/"><em>Click here to view the embedded video.</em></a></p></p>
<p>Now, since there&#8217;s no IK in the game yet, here&#8217;s what happens if you don&#8217;t align exactly right:</p>
<p style="text-align: center;"><p><a href="http://www.spyparty.com/2010/06/08/full-body-ik-solver-in-a-day/"><em>Click here to view the embedded video.</em></a></p></p>
<p>The statue still attaches to the character&#8217;s hand, due to Step 4 above, it&#8217;s just that the hand isn&#8217;t aligned with the statue correctly. So, when the attachment event fires in the animation, the code detaches the statue from the pedestal and attaches it to the hand in the wrong place<sup><a href="http://www.spyparty.com/2010/06/08/full-body-ik-solver-in-a-day/#footnote_0_459" id="identifier_0_459" class="footnote-link footnote-identifier-link" title="When you&amp;#8217;re making a video game, you really do have to create the basic laws of the universe, and then implement them; it&amp;#8217;s kind of mind boggling that anything actually works. :) ">1</a></sup>.</p>
<p>And finally, after Sunday, here&#8217;s a video of the IK working in the <strong>SpyParty</strong> <em>contentviewer</em>, which is a simple little application for testing animations and models and whatnot. It&#8217;s way easier to make changes in the contentviewer and then move the code into the game than it is to make changes in the game with AI running and all that other stuff.</p>
<p style="text-align: center;"><p><a href="http://www.spyparty.com/2010/06/08/full-body-ik-solver-in-a-day/"><em>Click here to view the embedded video.</em></a></p></p>
<p>As you can see, the new IK system still needs a ton of tuning, but that was the result after the 12 hours and it felt pretty good. I think I&#8217;ll spend another day on the core math to tune it a bit, and then I need to put the IK code into the game and do Step 6 to hook it all up.</p>
<p>I&#8217;m doing IK a little differently than most games do, using learning from my work on Spore. Most games use IK to simply pull the hand towards the object when the animation says to use IK, but what we did on Spore was a little different, and I think, better. Instead of IKing the hand to the object, I warp the whole animation as the IK blends in, so the torso bends and all the little stylistic tangential movements still show up, only now they&#8217;re aimed towards the object rather than just straight ahead. I&#8217;m going to post more detail about this technique once I get it cleaned up, but you can read the super-detailed technical description of the Spore IK solver in <a href="http://chrishecker.com/Real-time_Motion_Retargeting_to_Highly_Varied_User-Created_Morphologies">the SIGGRAPH paper we wrote about the technology</a> if you want to know more now.</p>
<p><strong>Edit:</strong> You can actually see the results of the animation warping in that video, because the left hand is not being IK&#8217;d directly to its hardpoint at all, the only thing changing its position is the space warping, and you can see it&#8217;s in the neighborhood of the other hardpoint even without an IK fixup.  This is one of the huge advantages of this method, it preserves the animator&#8217;s source poses as much as possible, so the IK itself is only used to polish up the pose for the new configuration.   This is the blend of <em>sampling</em> and <em>synthesis</em> I&#8217;ve talked about before in lectures, where you want to augment the animator&#8217;s work with the computer&#8217;s work, not replace one with the other.</p>
<hr/><ol class="footnotes"><li id="footnote_0_459" class="footnote">When you&#8217;re making a video game, you really do have to create the basic laws of the universe, and then implement them; it&#8217;s kind of mind boggling that anything actually works. :) </li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.spyparty.com/2010/06/08/full-body-ik-solver-in-a-day/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Game development is tedious, let&#8217;s go shopping!</title>
		<link>http://www.spyparty.com/2010/04/17/game-development-is-tedious/</link>
		<comments>http://www.spyparty.com/2010/04/17/game-development-is-tedious/#comments</comments>
		<pubDate>Sat, 17 Apr 2010 12:50:01 +0000</pubDate>
		<dc:creator>checker</dc:creator>
				<category><![CDATA[art]]></category>
		<category><![CDATA[indie games]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://spyparty.com/?p=346</guid>
		<description><![CDATA[Let&#8217;s be clear:  I love making games, and I hope to do it for a few more decades, fate willing. That said—like in other creative endeavors—the pursuit of awesomeness in game development is often mind-numbingly tedious and mundane.  Case in point:  my last week and a half. It all started when I decided the next [...]]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s be clear:  I love making games, and I hope to do it for a few more decades, fate willing.</p>
<p>That said—like in other creative endeavors—the pursuit of awesomeness in game development is often mind-numbingly tedious and mundane.  Case in point:  my last week and a half.</p>
<p>It all started when I decided the next cool thing to work on would be to get the partygoers to be able to pick up stuff, like books, sculptures, drinks, cigarettes, and any other MacGuffins I come up with for the Spy missions.  Let&#8217;s ignore the fact that it&#8217;s 2010 and game developers still need to think about and do work to get characters to pick up objects in game worlds.  <em>Sigh.</em></p>
<p>Okay, this seems like a reasonable short term programming goal that will allow me to further explore the design space.  For example, it will allow the characters to carry books away from the bookshelves, making it harder for the Sniper to keep track of what&#8217;s going on, etc.</p>
<p>Easy!  <em>What could possibly go wrong?</em></p>
<p>I broke this high level task down into bite-sized components:</p>
<ol>
<li>Add an event track to the animation system so the animations can tell the AI when the object should be attached.</li>
<li>Make an animation for picking up the object and have it fire an attachment event.</li>
<li>Add non-character dynamic items as a concept to the code.</li>
<li>Add a simple attachment system to the character AI and rendering code.</li>
<li>Write a quick full body IK system so the character doesn&#8217;t have to align with the item exactly<sup><a href="http://www.spyparty.com/2010/04/17/game-development-is-tedious/#footnote_0_346" id="identifier_0_346" class="footnote-link footnote-identifier-link" title="This is a step that might give some people pause, but I&amp;#8217;ve written so many IK solvers over the years that I figure I can whip this out in a day or so. &nbsp;Famous last words.">1</a></sup>.</li>
<li>Hook it all up.</li>
</ol>
<p>I start on Step 1, and get it done relatively quickly.  There was a bit of an issue of figuring out how to represent the event track in the modeling tool, but once I figured that out (with help from the awesome <a href="http://www.ryane.com/">Ryan Ellis</a>), it went pretty smoothly.</p>
<p>Okay, so next up, Step 2, the rough animation to pick up an item.  Of course, when doing an animation referencing an item in the world, you want that item in the view while you&#8217;re doing the animation.  I load up the pedestal with the statue on it into the file with the character rig, and get this:</p>
<div id="attachment_349" class="wp-caption aligncenter" style="width: 400px"><a href="http://cdn.spyparty.com/wp-content/uploads/2010/04/pedestal-scale.png"><img class="size-medium wp-image-349  " title="pedestal-scale" src="http://cdn.spyparty.com/wp-content/uploads/2010/04/pedestal-scale.png" alt="" width="390" height="189" /></a><p class="wp-caption-text">That&#39;s a very tiny pedestal you have there.</p></div>
<p>Hmm, that&#8217;s odd&#8230;</p>
<p><span id="more-346"></span></p>
<p><em>Oh, right, none of my asset types are in the same coordinate system or at the same scale.</em> This is what I get for rushing to get a demo together for GDC2009, and then forgetting about it and never cleaning it up.</p>
<p>In case you&#8217;re wondering where the statue that&#8217;s supposed to sit on top of that (tiny) pedestal is, here you go:</p>
<div id="attachment_355" class="wp-caption aligncenter" style="width: 128px"><a href="http://cdn.spyparty.com/wp-content/uploads/2010/04/statue-scale.png"><img class="size-medium wp-image-355 " title="statue-scale" src="http://cdn.spyparty.com/wp-content/uploads/2010/04/statue-scale-118x300.png" alt="" width="118" height="300" /></a><p class="wp-caption-text">This is what they mean when they say &quot;High Art&quot;.</p></div>
<p>Oh boy.  <em>SpyParty</em> currently has about 10 distinct weighted meshes with rigged skeletons, and about 27 animations.  3D graphics tools do not like it when you adjust the scale and orientation of an already complete  animated character.  This at least partially explains why most indie games are 2D&#8230;</p>
<p>After sinking into denial for a few days, it became clear that I needed to just dive in and rescale everything into the same space now<sup><a href="http://www.spyparty.com/2010/04/17/game-development-is-tedious/#footnote_1_346" id="identifier_1_346" class="footnote-link footnote-identifier-link" title="In meters with z-up, like God intended.">2</a></sup>, rather than putting it off any longer.  I will spare you the gory and frankly boring details, involving writing scripts in multiple languages, unhooking and rehooking the animation curves from the bones, a lot of manual typing and clicking, liberal use of the undo key, reading half an infinity of web pages, and a lot of black tea.</p>
<p>I did, however, take some screenshots along the way.  First, there&#8217;s the shot I used for the <a href="http://www.spyparty.com/2010/04/01/new-spyparty-gameplay-mode/">April Fool&#8217;s post</a>:</p>
<div id="attachment_259" class="wp-caption aligncenter" style="width: 373px"><a href="http://cdn.spyparty.com/wp-content/uploads/2010/04/rescaling.png"><img class="size-full wp-image-259    " title="rescaling" src="http://cdn.spyparty.com/wp-content/uploads/2010/04/rescaling.png" alt="" width="363" height="282" /></a><p class="wp-caption-text">Most of the world is in meters, the characters are not.</p></div>
<p>Here&#8217;s one attempt at rescaling the characters:</p>
<div id="attachment_350" class="wp-caption aligncenter" style="width: 400px"><a href="http://cdn.spyparty.com/wp-content/uploads/2010/04/spyparty-2010-04-15-14-55-49-16.png"><img class="wp-image-350   " title="spyparty 2010-04-15 14-55-49-16" src="http://cdn.spyparty.com/wp-content/uploads/2010/04/spyparty-2010-04-15-14-55-49-16.png" alt="" width="390" height="293" /></a><p class="wp-caption-text">Where&#39;d everybody go?</p></div>
<div id="attachment_356" class="wp-caption aligncenter" style="width: 400px"><a href="http://cdn.spyparty.com/wp-content/uploads/2010/04/tiny.png"><img class="size-medium wp-image-356  " title="tiny" src="http://cdn.spyparty.com/wp-content/uploads/2010/04/tiny.png" alt="" width="390" height="302" /></a><p class="wp-caption-text">Oh, there you are.  You are very small, James.</p></div>
<p>I eventually got them the right size, only to find some of them are totally hosed:</p>
<div id="attachment_348" class="wp-caption aligncenter" style="width: 400px"><a href="http://cdn.spyparty.com/wp-content/uploads/2010/04/meshbug.png"><img class="size-medium wp-image-348  " title="meshbug" src="http://cdn.spyparty.com/wp-content/uploads/2010/04/meshbug.png" alt="" width="390" height="302" /></a><p class="wp-caption-text">Some of the characters look like monsters from Half-Life.</p></div>
<p>But, finally, after more than a week of work:</p>
<div id="attachment_351" class="wp-caption aligncenter" style="width: 400px"><a href="http://cdn.spyparty.com/wp-content/uploads/2010/04/spyparty-2010-04-15-18-34-24-15.png"><img class="size-medium wp-image-351  " title="spyparty 2010-04-15 18-34-24-15" src="http://cdn.spyparty.com/wp-content/uploads/2010/04/spyparty-2010-04-15-18-34-24-15.png" alt="" width="390" height="293" /></a><p class="wp-caption-text">Hey, from the outside, it looks exactly like it did two weeks ago.  So unfair.</p></div>
<p>However, now things are finally in place for some more interesting character interactions with the world:</p>
<p><a href="http://cdn.spyparty.com/wp-content/uploads/2010/04/statue_get-1.png"><img class="aligncenter size-medium wp-image-352" title="statue_get-1" src="http://cdn.spyparty.com/wp-content/uploads/2010/04/statue_get-1-300x225.png" alt="" width="300" height="225" /></a></p>
<p><a href="http://cdn.spyparty.com/wp-content/uploads/2010/04/statue_get-2.png"><img class="aligncenter size-medium wp-image-353" title="statue_get-2" src="http://cdn.spyparty.com/wp-content/uploads/2010/04/statue_get-2-300x225.png" alt="" width="300" height="225" /></a></p>
<p><a href="http://cdn.spyparty.com/wp-content/uploads/2010/04/statue_get-3.png"><img class="aligncenter size-medium wp-image-354" title="statue_get-3" src="http://cdn.spyparty.com/wp-content/uploads/2010/04/statue_get-3-300x225.png" alt="" width="300" height="225" /></a></p>
<p>I am now optimistic that I can start on Step 3 soon.  :)</p>
<p><small><em>Random:  I&#8217;ve been listening to Pandora today with Radiohead as the seed, and it&#8217;s just looping Radiohead -&gt; Thom Yorke -&gt; Death Cab for Cutie -&gt; Beatles -&gt; Modest Mouse -&gt; Smashing Pumpkins -&gt; Nirvanna -&gt; Beck -&gt; Coldplay -&gt; The Strokes -&gt; The White Stripes -&gt; Muse -&gt; Pink Floyd -&gt; Led Zeppelin and then back again.  Not a very diverse list.  I usually leave Pandora running with no feedback just to see where it goes<sup><a href="http://www.spyparty.com/2010/04/17/game-development-is-tedious/#footnote_2_346" id="identifier_2_346" class="footnote-link footnote-identifier-link" title="I have the mental image of their matching algorithm starting to panic after a few hours of no user feedback. &nbsp;One time I started with Sigur Ros and it played The Scorpions after about 8 hours!">3</a></sup>, but this is a pretty unsurprising and short list.</em></small></p>
<hr/><ol class="footnotes"><li id="footnote_0_346" class="footnote">This is a step that might give some people pause, but I&#8217;ve written <a href="http://chrishecker.com/Inverse_Kinematics">so many IK solvers</a> over the years that I figure I can whip this out in a day or so.  Famous last words.</li><li id="footnote_1_346" class="footnote">In meters with z-up, like God intended.</li><li id="footnote_2_346" class="footnote">I have the mental image of their matching algorithm starting to panic after a few hours of no user feedback.  One time I started with Sigur Ros and it played The Scorpions after about 8 hours!</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.spyparty.com/2010/04/17/game-development-is-tedious/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Content Delivery Network via Amazon Web Services: CloudFront: cdn.spyparty.com

Served from: www.spyparty.com @ 2012-02-04 02:45:08 -->
