<?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>Tiny Subversions &#187; Games I Love</title>
	<atom:link href="http://tinysubversions.com/category/games-i-love/feed/" rel="self" type="application/rss+xml" />
	<link>http://tinysubversions.com</link>
	<description></description>
	<lastBuildDate>Mon, 06 Feb 2012 15:16:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>My favorite games of 2011</title>
		<link>http://tinysubversions.com/2011/12/my-favorite-games-of-2011/</link>
		<comments>http://tinysubversions.com/2011/12/my-favorite-games-of-2011/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 18:02:18 +0000</pubDate>
		<dc:creator>Darius Kazemi</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[Games I Love]]></category>

		<guid isPermaLink="false">http://tinysubversions.com/?p=2104</guid>
		<description><![CDATA[I was planning to do this anyway, but then Zack Hiwiller beat me to it and I got all jealous. Here&#8217;s a list of some of my favorite games that came out in 2011 (or at least the ones I thought of on my lunch break). Murder Dog IV: Trial of the Murder Dog. I [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I was planning to do this anyway, but then <a href="http://www.hiwiller.com/2011/12/19/games-of-the-year/" >Zack Hiwiller beat me to it</a> and I got all jealous. Here&#8217;s a list of some of my favorite games that came out in 2011 (or at least the ones I thought of on my lunch break).</p>
<ul>
<li><em><a href="http://gamejolt.com/freeware/games/adventure/murder-dog-iv-trial-of-the-murder-dog/5807/" >Murder Dog IV: Trial of the Murder Dog</a></em>. I <a href="http://www.pastemagazine.com/articles/2011/11/outsider-videogames-2012-igf-pirate-kart.html" >wrote at Paste Magazine</a> about why I like it.</li>
<li><em><a href="http://www.geocities.ws/mystery_zone/CrimeZone.html" >Crime Zone</a></em>. Another game by the creator of Murder Dog, this is primarily an exploration of the psychogeography of a member of a police squad that enforces the will of a totalitarian state. For real.</li>
<li><em>Deus Ex: Human Revolution</em>. It doesn&#8217;t innovate over the original <em>Deus Ex</em>. It&#8217;s pretty much the same game except not quite as good. I am completely okay with that because I&#8217;m a shameless DX fan.</li>
<li><em>Skyrim</em>. This took me by surprise. I found <em>Oblivion</em> really boring, but I very much liked <em>Fallout 3</em>. I typically hate fantasy genre stuff. But I&#8217;ve logged about 40-50 hours in Skyrim, and keep coming back to it.</li>
<li><em>Vertex Dispenser</em>. I <a href="http://tinysubversions.com/2011/06/one-of-my-favorite-games-is-now-for-sale/" >wrote about this game</a> as well. (It&#8217;s <a href="http://store.steampowered.com/app/102400/" >50% off right now at Steam</a>!)</li>
<li><em>Frozen Synapse</em>. It&#8217;s the squad based battle planning stuff I love from <em>Jagged Alliance 2</em>. Runs like a dream under Wine on Linux, too. <a href="http://www.youtube.com/watch?v=dBkYEWjhvm0" >I had fun with this.</a></li>
<li><em><a href="http://games.adultswim.com/soul-brother-adventure-online-game.html" >Soul Brother</a></em>. Hands-down my favorite browser-based game of the year. Incredible soundtrack.</li>
</ul>
<p>Unfortunately, most of the other games I enjoyed this year technically have not been released yet so I can&#8217;t talk about them here. Oh the trials of being an IGF judge and Indiecade-attending-person.</p>
<p>The unreleased game that stands out the most in my mind is <em><a href="http://gutefabrik.com/joust.html" >Johann Sebastian Joust</a></em>, which I played with my coworkers at our holiday party last weekend. Here&#8217;s a video of a test run:</p>
<p><iframe src="http://player.vimeo.com/video/33746175?title=0&amp;byline=0&amp;portrait=0"  frameborder="0"  width="400"  height="225" ></iframe></p>
<p><a href="http://vimeo.com/33746175" >Playing Joust at Bocoup</a> from <a href="http://vimeo.com/user1127615" >maryrosecook</a> on <a href="http://vimeo.com" >Vimeo</a>.</p>
<p>I spent $200 on four PS Move controllers to play this (I don&#8217;t own a PS3) and IT WAS TOTALLY WORTH IT.</p>
]]></content:encoded>
			<wfw:commentRss>http://tinysubversions.com/2011/12/my-favorite-games-of-2011/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>One of my favorite games is now for sale</title>
		<link>http://tinysubversions.com/2011/06/one-of-my-favorite-games-is-now-for-sale/</link>
		<comments>http://tinysubversions.com/2011/06/one-of-my-favorite-games-is-now-for-sale/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 19:31:19 +0000</pubDate>
		<dc:creator>Darius Kazemi</dc:creator>
				<category><![CDATA[Games I Love]]></category>
		<category><![CDATA[indie]]></category>
		<category><![CDATA[Vertex Dispenser]]></category>

		<guid isPermaLink="false">http://tinysubversions.com/?p=1937</guid>
		<description><![CDATA[Vertex Dispenser goes on sale on Steam today for $8.99 for both PC and Mac (after a week the price will bump up to $9.99). Let me be clear: this is a game I dearly love. If you and I have remotely similar taste in games, I think you&#8217;ll enjoy it and you should probably [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link"  href="http://tinysubversions.com/2011/06/one-of-my-favorite-games-is-now-for-sale/"  title="Permanent link to One of my favorite games is now for sale" ><img class="post_image alignnone"  src="http://tinysubversions.com/pics/vd2.png"  width="700"  height="400"  alt="Two robots battle on a bizarre, buckyball-esque world." /></a>
</p><p>Vertex Dispenser goes on sale <a href="http://store.steampowered.com/app/102400/" >on Steam today for $8.99</a> for both PC and Mac (after a week the price will bump up to $9.99). Let me be clear: this is a game I dearly love. If you and I have remotely similar taste in games, I think you&#8217;ll enjoy it and you should probably just go <a href="http://store.steampowered.com/app/102400/" >buy it right now</a>. If you need convincing, watch the somewhat enigmatic trailer for a taste of what it&#8217;s about. Then if you&#8217;re still not convinced, you can read the rest of this post.</p>
<p style="text-align: center;" ><object width="560"  height="349" ><param name="movie"  value="http://www.youtube.com/v/59Fg8rheZIQ?version=3&amp;hl=en_US" /><param name="allowFullScreen"  value="true" /><param name="allowscriptaccess"  value="always" /><embed type="application/x-shockwave-flash"  width="560"  height="349"  src="http://www.youtube.com/v/59Fg8rheZIQ?version=3&amp;hl=en_US"  allowfullscreen="true"  allowscriptaccess="always" ></embed></object></p>
<p>So Vertex Dispenser and I go way back.</p>
<p>I was a judge for IGF 2010. Back in November 2009 I was assigned about a dozen games to play and rate for first round judging. The very first game I judged was Vertex Dispenser, and I was awestruck. It is a game with no <a href="http://infinitelag.blogspot.com/2011/06/theater-kids.html" >grand pretensions</a>: you&#8217;re a little robot thing and you&#8217;re taking over territory and shooting other robot things. And yet the game manages to resonate with me.  It&#8217;s addicting in a &#8220;just one more turn&#8221; kind of way (though the game is not really turn-based). It&#8217;s spare but beautiful, without copying tired indie game aesthetic tropes. It takes RTS elements, strips away the unit management, merges what&#8217;s left with <a href="http://en.wikipedia.org/wiki/Graph_coloring" >pure graph theory</a>, and adds perhaps a dash of tower defense to the mix. It&#8217;s a game that at its core is about moving and shooting and grabbing territory, but adds a layer of mathematical puzzle solving that is optional for the casual player but provides immense amounts of depth for those who want it (not unlike the <a href="http://disgaea.wikia.com/wiki/Geo_Panel" >Geo Panel</a> system in Disgaea, in that sense).</p>
<p>The <a href="http://www.vertexdispenser.com" >official description</a> is pretty illuminating:</p>
<blockquote><p>Vertex Dispenser is a fast-paced abstract strategy game with mathematical puzzle elements. Wrestle for control of territory on bizarre geometric worlds. Carefully plan your conquests to maximise the colours of your vertices, capture solid faces to defend them, then eradicate your enemies with a variety of special attacks.</p></blockquote>
<p>That sounds like the perfect post-E3 palate cleanser, doesn&#8217;t it?</p>
<p>I gave the game top marks, but sadly it did not make it past the first round of IGF.</p>
<p>Once judging was over, I contacted its creator, Michael Brough AKA <a href="http://www.smestorp.com/" >Smestorp</a>. (If you were at GDC this year, you might remember his mind-bending demo of <a href="http://forums.tigsource.com/index.php?topic=16151.0" >The Sense of Connectedness</a> at the Experimental Gameplay Sessions.) I contacted him to offer encouragement: that I truly believed that Vertex Dispenser should have been a finalist, and that it was absolutely worth continuing to work on despite its failure to place in IGF. I also extended a general offer of help. Turned out he needed testers, so I gave a bunch of feedback myself and then rounded up some people from <a href="http://www.bostonindies.com/" >Boston Indies</a> who were willing guinea pigs. This is how he ended up meeting <a href="http://www.arshangailus.com/" >Arshan Gailus</a>, who would eventually provide the game&#8217;s music.</p>
<p>Seeing the game get released today, I can&#8217;t help but feel a little bit like a proud godparent or midwife.</p>
<p>Vertex Dispenser is for you if you like strategy games, &#8220;bizarre geometric worlds,&#8221; or (heaven forbid) solving graph theory problems in real time to boost your power meters.</p>
<p>Vertex Dispenser is for you if you&#8217;re getting kinda tired of indie games. If you want to be inspired by an indie game that isn&#8217;t a yet-another-throwback platformer, but that also doesn&#8217;t self-consciously attempt to &#8220;push the medium forward&#8221; by including some story about the futility of existence combined with an <a href="http://farm3.static.flickr.com/2444/3659489347_056ab0e808.jpg" >all-macrame art style</a> or whatever.</p>
<p>Vertex Dispenser is for you if E3 left a sour taste in your mouth and you want to get excited about video games again.</p>
<p>In other words, if you&#8217;re reading this, Vertex Dispenser is for you. <a href="http://store.steampowered.com/app/102400/" >Get it on Steam, $9.99</a> (or $8.99 if you&#8217;re quick about it!).</p>
]]></content:encoded>
			<wfw:commentRss>http://tinysubversions.com/2011/06/one-of-my-favorite-games-is-now-for-sale/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>An Interview with Stefan Gagne (Pong Kombat) from June 18th, 2000</title>
		<link>http://tinysubversions.com/2011/04/an-interview-with-stefan-gagne-pong-kombat-from-june-18th-2000/</link>
		<comments>http://tinysubversions.com/2011/04/an-interview-with-stefan-gagne-pong-kombat-from-june-18th-2000/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 22:13:28 +0000</pubDate>
		<dc:creator>Darius Kazemi</dc:creator>
				<category><![CDATA[classicgames.org]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[Games I Love]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[interview]]></category>

		<guid isPermaLink="false">http://tinysubversions.com/?p=1859</guid>
		<description><![CDATA[I used to co-run a website called classicgames.org, where we reviewed old DOS shareware games. It was a lot of fun, and probably the best part was that I got to interview the creators of some obscure gems. Here&#8217;s an interview I did with Stefan Gagne, who made Pong Kombat, a really silly Pong clone [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I used to co-run a website called classicgames.org, where we reviewed old DOS shareware games. It was a lot of fun, and probably the best part was that I got to interview the creators of some obscure gems. Here&#8217;s an interview I did with <a href="http://twitter.com/#!/twoflower" >Stefan Gagne</a>, who made <a href="http://www.youtube.com/watch?v=0OtF2l147b4" >Pong Kombat</a>, a really silly Pong clone that parodied Mortal Kombat.</p>
<p>Here&#8217;s the interview text below. Originally published 6/18/00 on classicgames.org (now defunct). I was 16 years old (almost 17) at the time.</p>
<p><strong>Me:</strong> I guess I&#8217;ll start by recapping a vivid memory: I&#8217;d sit around for days at a time playing Pong Kombat, learning all the secret moves and pretending to understand all the inside jokes. It was the only game that ever made me regret my lack of a sound card!</p>
<p><strong>Stefan Gagne:</strong> It was the only game that made me ever regret the invention of the sound card. We had more problems with that chunk of code alone than anything else in the game! That&#8217;s the major change from 1.0 to 1.5, a totally new sound engine.</p>
<p><strong>Me:</strong> Who did all the voices? In my opinion, the Kombat-esque announcer was the funniest thing in the entire game.</p>
<p><strong>Gagne:</strong> I think there&#8217;s a hidden DIP switch that turns on the post-game credits&#8230; the little guy who pops up and goes &#8216;Whoopsie!&#8217; (MK2 parody) was Nick Steele from my CS class. The announcer himself is Josh Saxon, who currently can be seen performing opera professionally as a bass-baritone in the Washington D.C. area. We still hang out on weekends to watch movies just like we did back in the PK era, although the video&#8217;s been upgraded from Laserdisc to DVD.</p>
<p><strong>Me:</strong> I read that you did Pong Kombat for a computer science project during your senior year of high school. Did you get an &#8216;A&#8217; on that project? And what in the world did your teacher say when he saw the thing?</p>
<p><strong>Gagne:</strong> Here&#8217;s the deal:</p>
<p>I&#8217;d already taken their AP Comptuer Science class the previous year. Senior year, I needed some kind of computer class (mostly because hanging out with my friends was a priority) and there weren&#8217;t any left. So, I was put into a self-directed C++ class with a few pals. Self directed, as in we were given some three ring binders and left totally unsupervised for a few months.</p>
<p>Needless to say, I didn&#8217;t end up learning C++. Ehheh. But crunch time was coming, and if I didn&#8217;t have some kind of complete project to demonstrate at the Open House I couldn&#8217;t get a passing grade in the class. I got this silly idea from a game after joking around with my friends about Mortal Kombat, and asked my teach if it was okay that I&#8217;d do it in Pascal. He gave the approval.</p>
<p>Four weeks of VERY intense programming and design work later, Pong Kombat was born. Most of the programs on display at the Open House were basic high school grade CS projects&#8230; but off in the corner on the fastest machine we had (a 386sx/16) I was running PK. I kinda felt bad for stealing the thunder of the other guys in the class since I went WAY outside the lines on that one.</p>
<p>I can&#8217;t recall what my teach&#8217;s reaction was, but I think he was pleased with the end results. The fame it went onto after I uploaded it to wuarchive.wustl.edu (sigh, the old days&#8230;) was definitely pleasing.</p>
<p>I ended up liscensing PK2 to some guys when I decided it was time to let this go. It was okay for a klik&#8217;n'play game. But any PK3/4/etc. you see floating around are definitely not my thang.</p>
<p>Pretty extensive answer, but it DOES have a pretty extensive history&#8230;</p>
<p><strong>Me:</strong> In exactly what language did you program?</p>
<p><strong>Gagne:</strong> Turbo Pascal 7.0, with the SPX 1.5 shareware toolkit to handle all sprites and input and sound (for 1.0). For 1.5 we used a little bit of code hammered out by David Hunt which likely isn&#8217;t going to work on modern sound cards, since it was assuming you&#8217;d have a Soundblaster Pro. I evaluated a whole lot of kits before settling on SPX; I was looking for the &#8216;holy grail&#8217; of the game developer, a robust and cheap package that would take care of the red tape so I could just sit down and make the freakin&#8217; game.</p>
<p>To other aspiring game creators, I&#8217;d say don&#8217;t shun packages like these. We are beyond the age when one coder sits down and hacks out C++ until a complete game with graphics and sound coded to the metal pops up. My theory on game creation is that you should be more worried about making a fun game than making a tech demo. Use whatever code packs or engines you can get your hands on to take the gruntwork out of the picture, then concentrate on design.</p>
<p>In the modern age we&#8217;re fortunate to have systems as wicked as Quake 3 and such to tinker with; hobbyist game development has flourished thanks to those tools, even if it means a stream of fairly similar stuff. Once someone implements a game using these systems which doesn&#8217;t revolve around shotguns, frags, PKing, lewt, experience points or slaughtering monsters, I&#8217;ll be thrilled. :)</p>
<p><strong>Me:</strong> What did you use to draw the background screens?</p>
<p><strong>Gagne:</strong> For the 2-D art, I used Autodesk Animator. An ancient DOS program that could only handle 320x200x256, but at the time that was enough. For the 3-D artwork I used Autodesk 3-D Studio, another ancient DOS program that&#8217;s been superceded by 3DSMAX.</p>
<p>One of the important things about the graphics in PK is that they&#8217;re dead simple. Even someone with as little &#8216;real&#8217; art talent as me could do it, because the game was designed to capitalize on what resources I did have rather than leave gaping holes where I couldn&#8217;t cover up. Can&#8217;t do code to the metal graphics and sound? Use a toolkit. Can&#8217;t code complicated gaming engines? Make Pong fun. Can&#8217;t draw human figures? Paddles are pretty easy to handle.</p>
<p><strong>Me:</strong> What was up with that secret comic book?</p>
<p><strong>Gagne:</strong> Another project I was starting up which unfortunately went nowhere. I had a <a href="http://www.pixelscapes.com/stefan/fwls" >cyberpunk humor series</a> I was working on in high school, and wanted to do an interactive comic series of some of the stories. Problem is, as stated above, I can&#8217;t draw. I had my sister working on the art but a whole comic run was too much for any one person. So, the franchise pretty much ended before I got the first one out. (That&#8217;s the problem with forecasting your next big thing &#8212; vaporware becomes the norm. Same thing happened to PK 2.0.)</p>
<p>Also, it was a parody of&#8230; I can barely remember, but one of the MK games had a flag that would enable/disable an advertisement for some related product. Possibly a comic book. So it makes sense on a parody level too.</p>
<p><strong>Me:</strong> What was your favorite shareware game for DOS?</p>
<p><strong>Gagne:</strong> I&#8217;d have to say One Must Fall. Maybe it wasn&#8217;t the most versatile fighting game in the world, but the sound was awesome with a subwoofer, and most importantly the characters were fun. I&#8217;d play the game near-endlessly just to see all the &#8216;quotes&#8217; the characters would use to greet each other; every combination of two people had a different dialouge! I can&#8217;t think of any fighting game to date with that amount of specialized written text.</p>
<p>That&#8217;s why I emphasized the (admittedly ridiculous) story of Pong Kombat; I&#8217;m a writer by hobbyist&#8217;s trade rather than a gruntwork coder, and I&#8217;m more keen on the creative design aspects of a game than the technology behind it. Pong Kombat is the content over technology theory made flesh. At its core, it&#8217;s a lousy game of Pong made with shareware Turbo Pascal libraries to handle all the techie matters. But the heart of the game is the absurd parody that makes it funny enough to cover it severe technological shortcomings.</p>
<p><strong>Me:</strong> So, what are you up to these days?</p>
<p><strong>Gagne:</strong> I&#8217;m a federal webmonkey in my daylight hours, but at night I morph mystically into the almighty Twoflower, anime fanfic author supreme!&#8230; bleah, ego. Mostly I play around with fanfiction based on japanese animation. I run a co-op community of authors (<a href="http://www.improfanfic.com/" >www.improfanfic.com</a>) that are experimenting with different forms of writing. We&#8217;ve even got a story based on text adventure games there, a Mortal Kombat/Street Fighter parody series called &#8216;Furniture Warriors&#8217; and a megacrossover between nearly every fighting game known to man, &#8216;mtcff Ultra&#8217;.</p>
<p>Was that a cheap plug? It&#8217;s relatively relevant, I swear!</p>
<p><strong>Me:</strong> When I was 10 years old, I wrote a letter (snail mail) to you, but you never wrote back! Why did you ruin my life?</p>
<p><strong>Gagne:</strong> Honestly, I uploaded the thing to the Internet because I figured maybe six of my friends would like it. I tossed in a &#8216;mail me for codes&#8217; thing hoping I&#8217;d get a letter or two. Made a few offhand remarks about a PK 2.0&#8230;</p>
<p>1000s of emails later and 100s of letters I realized I&#8217;d made a little mistake. There was no way I could support all those requests, and PK 2.0 was light years beyond my ability at the time. Whoops. Well, to anybody who never got a reply: scope out the FAQ online, it&#8217;ll tell you all you need to know.</p>
<p>It&#8217;s a common story in the Internet boom years&#8230; you start out with this cute little idea, and it balloons until it bursts in your face. However, I won&#8217;t be held liable for your child therapy bills, spud.</p>
]]></content:encoded>
			<wfw:commentRss>http://tinysubversions.com/2011/04/an-interview-with-stefan-gagne-pong-kombat-from-june-18th-2000/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Soap Opera Mechanics, AKA This Cool Thing Happened in Deadly Premonition Last Night</title>
		<link>http://tinysubversions.com/2011/01/soap-opera/</link>
		<comments>http://tinysubversions.com/2011/01/soap-opera/#comments</comments>
		<pubDate>Fri, 14 Jan 2011 20:11:25 +0000</pubDate>
		<dc:creator>Darius Kazemi</dc:creator>
				<category><![CDATA[deadly premonition]]></category>
		<category><![CDATA[Games I Love]]></category>
		<category><![CDATA[stories]]></category>

		<guid isPermaLink="false">http://tinysubversions.com/?p=1753</guid>
		<description><![CDATA[I&#8217;ve been playing a lot of Deadly Premonition. You may remember it as &#8220;that game with the insane cutscenes that make no sense.&#8221; Well, it is actually good. Anyway, I&#8217;m here to tell you a story about what happened to me in Deadly Premonition last night. Possibly minor plot spoilers, but really this is all [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I&#8217;ve been playing a lot of Deadly Premonition. You may remember it as &#8220;that game with the insane cutscenes that make no sense.&#8221; Well, <a href="http://www.gamecritics.com/daniel-weissenberger/deadly-premonition-is-the-game-of-the-year-part-1" >it is</a> <a href="http://infinitelag.blogspot.com/search/label/Deadly%20Premonition" >actually</a> <a href="http://techtv.mit.edu/videos/8737-deadly-premonition-is-interesting-with-gambit-lead-game-designer-matthew-weise" >good</a>.</p>
<p>Anyway, I&#8217;m here to tell you a story about what happened to me in Deadly Premonition last night. Possibly minor plot spoilers, but really this is all still conjecture on my part. The interesting thing is the mechanical stuff that&#8217;s going on. I&#8217;m probably wrong about some of the plot inferences, which is, in itself, super interesting to me.</p>
<div class="wp-caption alignnone"  style="width: 300px" >
	<img title="Olivia"  src="http://images1.wikia.nocookie.net/__cb20101229235438/deadlypremonition/images/0/00/OliviaCormack.jpg"  alt="Olivia Cormack"  width="300"  height="235" /><img title="Olivia"  src="http://images2.wikia.nocookie.net/__cb20100416233529/deadlypremonition/images/6/6f/Nick.png"  alt=""  width="300"  height="235" />
	<p class="wp-caption-text" >Olivia &amp; Nick Cormack</p>
</div>
<p>So you can go to the diner and interrogate the diner waitress Olivia, but her husband, Nick the chef, kicks you out of the kitchen when you try to talk to him. At some point he&#8217;s one of the few remaining people in the town I haven&#8217;t spoken to, so I figure I&#8217;ll corner him while he leaves his home to go to work.</p>
<p>I sit outside Nick and Olivia&#8217;s house at about 6:30am and peek inside, using the sort of batshit peeping tom mechanic (pressing RB/LB will cycle you through every window in the house: they do not tell you this). I look around and it appears that he and his wife sleep in different bedrooms. His wife is putting on makeup and appears to be getting ready for work, buzzing around the house. Meanwhile he&#8217;s basically curled up in fetal position on his bed, rocking back and forth, and there&#8217;s a mysterious brown paper bag on his nightstand.</p>
<p>At about 7:00 Olivia leaves. I assumed they would commute to work together, so this is odd. I smoke a cigarette (in-game) to pass the time til about 7:30. Nick hasn&#8217;t left his bed, but Olivia is at the convenience store. Okay, so maybe she&#8217;s picking up groceries for the diner. I head over to the convenience store (made 10x easier because I have <a href="http://www.gamecritics.com/daniel-weissenberger/the-manner-in-which-unforgiveable-design-mistakes-can-be-overlooked-deadly-premonition-is-the-goty-part-7" >a special radio that lets you teleport to places you&#8217;ve visited</a>), and what&#8217;s weird is that it&#8217;s closed. But she&#8217;s definitely inside with Keith, the owner. However, none of the windows I can peek through have an angle on them.</p>
<p>I check my map and Keith&#8217;s wife Lily is at home with her two kids. I head over there and peer in the window and yep, it&#8217;s her and the kids eating breakfast alone at the dinner table. DUHN DUHN DUUHHHHNNN.</p>
<p>Then I think back to the first time I met Olivia. She said something that at the time seemed like a verbal tic: &#8220;You should try the food; Nick &#8212; I mean, my husband &#8212; is a great cook.&#8221; Now I&#8217;m thinking that was a poorly translated verbal hint that Nick and Olivia&#8217;s marriage is a sham. Seeing Olivia over with Keith, and having been through some main-storyline conversations that imply that both Nick and Olivia have their own DARK SECRETS, I am pretty much hooked on the game and invested in what happens to these minor characters.</p>
<p>Up until this point in the game, I&#8217;ve been somewhat invested in the story. After this incident, the mechanics of the game have really invested me in the fate of these two sorta-minor-so-far characters.</p>
<p>(And I&#8217;m not claiming this is the only game ever to do this. Maybe Shenmue did. The point is, I wish more open world games did shit like this.)</p>
]]></content:encoded>
			<wfw:commentRss>http://tinysubversions.com/2011/01/soap-opera/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Heresy</title>
		<link>http://tinysubversions.com/2010/11/heresy/</link>
		<comments>http://tinysubversions.com/2010/11/heresy/#comments</comments>
		<pubDate>Tue, 02 Nov 2010 17:04:17 +0000</pubDate>
		<dc:creator>Darius Kazemi</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[Games I Love]]></category>
		<category><![CDATA[indie]]></category>
		<category><![CDATA[Spelunky]]></category>

		<guid isPermaLink="false">http://tinysubversions.com/?p=1712</guid>
		<description><![CDATA[Spelunky would make a great Facebook game. Stop laughing. I am serious. Well, I am half-serious. Think about it. Core gameplay happens in short chunks. Most Spelunky runs are maybe 1 to 5 minutes, and a full standard playthrough takes about 20 minutes. There are valuable items, and there&#8217;s a huge social motivation to tell [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link"  href="http://tinysubversions.com/2010/11/heresy/"  title="Permanent link to Heresy" ><img class="post_image alignnone"  src="http://tinysubversions.com/wp-content/uploads/2010/11/wall2.png"  width="641"  height="109"  alt="Post image for Heresy" /></a>
</p><div id="attachment_1713"  class="wp-caption aligncenter"  style="width: 300px" >
	<a href="http://tinysubversions.com/wp-content/uploads/2010/11/main.png" ><img class="size-medium wp-image-1713"  title="Spelunky on Facebook"  src="http://tinysubversions.com/wp-content/uploads/2010/11/main-300x256.png"  alt="Spelunky on Facebook"  width="300"  height="256" /></a>
	<p class="wp-caption-text" >Spelunky on Facebook. Click to embiggen.</p>
</div>
<p><a href="http://www.spelunkyworld.com" >Spelunky</a> would make a great Facebook game.</p>
<p>Stop laughing. I am serious. Well, I am half-serious.</p>
<p>Think about it. Core gameplay happens in short chunks. Most Spelunky runs are maybe 1 to 5 minutes, and a full standard playthrough takes about 20 minutes. There are valuable items, and there&#8217;s a huge social motivation to tell your friends about your individual runs. Spelunky for Facebook could be based on the <a href="http://apps.facebook.com/bejeweledblitz/" >Bejeweled Blitz</a> model: a really fun game you play in short bursts and compete with your friends on a daily/weekly/monthly/all-time leaderboard.</p>
<h3>Core Gameplay</h3>
<p>Core gameplay of Spelunky would remain completely unchanged from classic Spelunky, but Facebook would provide a framework around the game to allow for competition, sharing of stories, and yes indeed, monetization.</p>
<h3>Monetization</h3>
<p>At first I was wondering how monetization would work, but I realized that it would be relatively easy.</p>
<p>Items in Spelunky are intrinsically valuable and qualitatively differentiated, far more so than in most Facebook games. For example, the difference between a pistol and a shotgun in a Mafia Wars clone is basically one of attack power. In Spelunky, the pistol and the shotgun do have different damage values but they also interact with the physical simulation in unique ways: bullet spread, recoil, and range come to mind. And I can&#8217;t even recall playing a Facebook game with items as varied as the jetpack, the pickaxe, and the rope.</p>
<p>If you&#8217;ve ever played Spelunky at any length, think about a situation where I tap you on the shoulder while you&#8217;re playing and offer you a shotgun on your next run for the low low price of a dime. You might actually pay me that dime.</p>
<p>The intrinsic value of items in Spelunky also makes them prime gift fodder. The fact that many items are skill-based could add another dimension to gift-giving. &#8220;Hey Jane, here&#8217;s a teleporter. I thought you could use some practice &#8212; they&#8217;re pretty useful once you figure out how they work! Some tips: _____&#8221;</p>
<p>If I were designing Spelunky for Facebook, I would only allow item purchases or gifts to be applied at the beginning of a run. I would also limit it to one item used at a time. (Maybe two?) One of the great things about items in Spelunky is that while starting with an item like the shotgun does give the  player a distinct advantage, having such an item does not by any means ensure the player will do better. While being able to buy a shotgun on demand would probably make the game trivial, simply making it so that a player will start with the shotgun doesn&#8217;t guarantee anything.</p>
<p>I would also add some kind of inventory system where you can accumulate items that you buy or are gifted, to deploy or regift as desired. I would probably allow players the option of putting an item away in their inventory when in-game acquisition occurs. For example, if you&#8217;re playing and you come across a cape, but you hate playing with the cape, you can store it in your inventory and give it away to a friend.</p>
<h3>Virality</h3>
<div id="attachment_1719"  class="wp-caption aligncenter"  style="width: 641px" >
	<a href="http://tinysubversions.com/wp-content/uploads/2010/11/wall1.png" ><img class="size-full wp-image-1719"  title="Spelunky Wall Post"  src="http://tinysubversions.com/wp-content/uploads/2010/11/wall1.png"  alt="Spelunky Wall Post"  width="641"  height="180" /></a>
	<p class="wp-caption-text" >Spelunky Wall Post</p>
</div>
<p>If you&#8217;ve been following me for more than a couple years you might recall that I once <a href="http://twitter.com/darius_spelunks" >hacked Spelunky to automatically post my in-game exploits to Twitter</a>. What excites me most about this whole silly idea is the prospect of doing something similar on Facebook. It would involve writing some rather tricky code to track not just events that occur, but the context in which they happened. Having worked on a primitive version of this system for <a href="http://tinysubversions.com/my-projects/spelunkytweet/" >SpelunkyTweet</a>, I can say that it&#8217;s not a trivial problem but also not capital-H Hard.</p>
<p>One issue that I have with Facebook games is that when they ask me to post about something that just happened on my wall, the event is trivial. Most of the time, I don&#8217;t give a crap. Oh yay, I reached level 21. Nobody cares. But if the game could synthesize a short, funny, <em>unique</em> narrative based on the success or failure of my problem-solving attempts and the context in which they occur&#8230; that would be awesome. I would post those all the time, because they&#8217;d be interesting to my friends.</p>
<p>Imagine a generated wall post like, &#8220;I can&#8217;t believe it. Nine levels deep into the cave, full health, I&#8217;m lucky enough to get a shotgun&#8230; and then I fall to my death. Butterfingers can be brutal.&#8221; I would be all over that. I would probably limit the moments that in-game wall post requests appear to moments when the player is not at any immediate risk. The post logic would be something like:</p>
<ul>
<li>If a notable thing happens
<ul>
<li>Generate a wall post</li>
<li>If within the next 60 seconds the player is not moving and no enemies are on the screen
<ul>
<li>Pop up the wall post request</li>
<li>Else, throw away the wall post</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Wall post requests would always appear following player death. There would probably also be some way for the player to request a wall post manually.</p>
<h3>Leaderboard</h3>
<p>I&#8217;m not going to bother describing the leaderboard system in detail. I see it working along the lines of the one in <a href="http://apps.facebook.com/bejeweledblitz/" >Bejeweled Blitz</a>, which you can check out for yourself. You can compete against friends and worldwide for daily, weekly, monthly, and all-time best runs.</p>
<h3>Conclusion</h3>
<p>Someone needs to make this. Derek? Please?</p>
]]></content:encoded>
			<wfw:commentRss>http://tinysubversions.com/2010/11/heresy/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Video Review: Desktop Dungeons</title>
		<link>http://tinysubversions.com/2010/04/video-review-desktop-dungeons/</link>
		<comments>http://tinysubversions.com/2010/04/video-review-desktop-dungeons/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 21:18:39 +0000</pubDate>
		<dc:creator>Darius Kazemi</dc:creator>
				<category><![CDATA[Games I Love]]></category>
		<category><![CDATA[indie]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://tinysubversions.com/?p=1555</guid>
		<description><![CDATA[I promised I&#8217;d make the video reviews a regular thing. This is my attempt to describe in 2 minutes and 30 seconds what Desktop Dungeons is and why I like it so much. After you watch the video, download Desktop Dungeons and play it, fer cryin&#8217; out loud!]]></description>
			<content:encoded><![CDATA[<p></p><p>I promised I&#8217;d make the video reviews a regular thing. This is my attempt to describe in 2 minutes and 30 seconds what Desktop Dungeons is and why I like it so much. After you watch the video, <a href="http://www.qcfdesign.com/?cat=20" >download Desktop Dungeons</a> and play it, fer cryin&#8217; out loud!</p>
<p style="text-align: center;" ><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"  width="640"  height="505"  codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" ><param name="allowFullScreen"  value="true" /><param name="allowscriptaccess"  value="always" /><param name="src"  value="http://www.youtube.com/v/bj8-3gmwONM&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999" /><param name="allowfullscreen"  value="true" /><embed type="application/x-shockwave-flash"  width="640"  height="505"  src="http://www.youtube.com/v/bj8-3gmwONM&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999"  allowscriptaccess="always"  allowfullscreen="true" ></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://tinysubversions.com/2010/04/video-review-desktop-dungeons/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A Typical 30 Minutes in Just Cause 2</title>
		<link>http://tinysubversions.com/2010/04/a-typical-30-minutes-in-just-cause-2/</link>
		<comments>http://tinysubversions.com/2010/04/a-typical-30-minutes-in-just-cause-2/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 18:45:39 +0000</pubDate>
		<dc:creator>Darius Kazemi</dc:creator>
				<category><![CDATA[Just Cause 2]]></category>

		<guid isPermaLink="false">http://tinysubversions.com/?p=1546</guid>
		<description><![CDATA[So this mafia boss I&#8217;m working for asks me to blow up a statue of the country&#8217;s leader and bring its approximately 10-ton stone head to the doorstep of a friend of his. Fair enough. I head over to the town center where the statue lives &#8212; it&#8217;s pretty heavily guarded by a military encampment [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>So this mafia boss I&#8217;m working for asks me to blow up a statue of the country&#8217;s leader and bring its approximately 10-ton stone head to the doorstep of a friend of his. Fair enough.</p>
<p style="text-align: center;" ><a href="http://pcmedia.ign.com/pc/image/article/989/989615/just-cause-2-20090602023339778.jpg" ><img class="aligncenter"  title="A scene from Just Cause 2."  src="http://pcmedia.ign.com/pc/image/article/989/989615/just-cause-2-20090602023339778.jpg"  alt="A scene from Just Cause 2."  width="576"  height="324" /></a></p>
<p>I head over to the town center where the statue lives &#8212; it&#8217;s pretty heavily guarded by a military encampment for some reason. Fortunately this means there&#8217;s a tank just sitting right there. I take my grappling wire and grapple the head of the statue to the tank. This sets off a bunch of alarms and so now there are about 20-30 heavily armed men firing at me with pistols, assault rifles, and grenades. Fair enough, I can handle 30 guys, mostly by ignoring them and moving as fast as I can.</p>
<p>I hop into the tank, rev the engine, and start driving toward my destination. Sure enough, the head of the statue comes right off as I pull it via the grapple-tank, trailing behind me. I can feel its 10-ton weight dragging down my already-sluggish tank. While I&#8217;m swarmed by about 4 guys on motorcycles with submachine guns and a few guys with a mounted gattling gun in a jeep. I don&#8217;t care about the motorcycle guys since their puny MP5 bullets just kind of bounce off my vehicle&#8217;s armor. What&#8217;s more worrisome is the ridge up ahead: I&#8217;m not sure I can make it up that hill given all my weight.</p>
<p>Turns out: yep, I&#8217;m stuck right near the top of the hill. That&#8217;s okay, it&#8217;s time to bail this tank anyway, it&#8217;s about to fall apart. I hop out and realize that I&#8217;m taking heavy fire so before my feet hit the ground I&#8217;ve grappled to a nearby tree, using that momentum to launch a stunt parachute that I pilot upwards to give myself a birds-eye view of the carnage below. For a lack of anywhere else to go, I float over toward my destination, a mansion about 200 meters away.</p>
<p style="text-align: center;" ><a href="http://mimg.ugo.com/201003/38651/048.jpg" ><img class="aligncenter"  title="Paragliding."  src="http://mimg.ugo.com/201003/38651/048.jpg"  alt="Paragliding."  width="538"  height="302" /></a></p>
<p>As I approach the mansion I realize I&#8217;m still being followed, but at least I have enough distance that my pursuers can&#8217;t get a good shot at me. I land on the roof and what do you know, there&#8217;s a military-grade transport helicopter parked right here! I hop in and pilot it over to where I left the statue head: again, it&#8217;s a good thing I&#8217;m being followed, since by this point most of the guys who <strong>were</strong> guarding the statue head are now over at the mansion. I land nearby and quickly grapple the head to the body of the helicopter. Hopping back in I say a little prayer and ascend: it&#8217;s working! I&#8217;m carrying the statue head beneath me. I quickly make it over to the mansion and drop off the head, mission accomplished.</p>
<p style="text-align: center;" ><a href="http://download.gameblog.fr/images/jeux/3021/JustCause2_multi_Edit_034.jpg" ><img class="aligncenter"  title="Copter carrying a giant statue head."  src="http://download.gameblog.fr/images/jeux/3021/JustCause2_multi_Edit_034.jpg"  alt="Copter carrying a giant statue head."  width="576"  height="324" /></a></p>
<p>At this point I&#8217;m feeling a lot of adrenaline and I realize that there&#8217;s now a rival helicopter in pursuit. Sadly, my copter is a transport vehicle and contains no mounted weapons. Fortunately the enemy copter has miniguns! I think I&#8217;ll be taking those. So I leave the pilot seat of my copter mid-air and dangle from its body by my grappling hook. I zero in on the enemy copter and grapple to it, pulling myself into its cockpit where I have a little fist fight with the pilot, throwing him out of the vehicle as I take his place at the controls.</p>
<p style="text-align: center;" ><a href="http://xbox360media.ign.com/xbox360/image/article/104/1045050/just-cause-2-20091113105829168.jpg" ><img class="aligncenter"  title="Grappling to a mid-air copter."  src="http://xbox360media.ign.com/xbox360/image/article/104/1045050/just-cause-2-20091113105829168.jpg"  alt="Grappling to a mid-air copter."  width="576"  height="324" /></a></p>
<p><a href="http://www.blogcdn.com/www.joystiq.com/media/2009/11/justcause2_nov13_2-11122009-580px.jpg" ><img class="aligncenter"  title="Hijacking a helicopter."  src="http://www.blogcdn.com/www.joystiq.com/media/2009/11/justcause2_nov13_2-11122009-580px.jpg"  alt="Hijacking a helicopter."  width="580"  height="326" /></a></p>
<p>I spend the next 15 minutes flying from settlement to settlement blowing up other statues of the dictator and various military installations. Every time the government sends a helicopter after me, I thank them for the new equipment and repeat my hijacking maneuvers. In about 15 minutes I hijack and jettison seven helicopters, each time eager to upgrade to the newer, better model they send to kill me.</p>
<p>Eventually my destructive spree comes to an end: I start strafing an air base but their SAM sites take me out. Not before I do a whole lot of damage though!</p>
<p>The best part: after I die, it respawns me in the nearest friendly base. <strong>And everything I&#8217;ve just done persists in the world.</strong> I don&#8217;t have to go back and find all those random statues again: once you take them out, they&#8217;re taken out.</p>
<p>The chaos I cause is permanent.</p>
<p>I love this game.</p>
]]></content:encoded>
			<wfw:commentRss>http://tinysubversions.com/2010/04/a-typical-30-minutes-in-just-cause-2/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>AF 337</title>
		<link>http://tinysubversions.com/2010/01/af-337/</link>
		<comments>http://tinysubversions.com/2010/01/af-337/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 23:01:28 +0000</pubDate>
		<dc:creator>Darius Kazemi</dc:creator>
				<category><![CDATA[Everyday Shooter]]></category>
		<category><![CDATA[project]]></category>

		<guid isPermaLink="false">http://tinysubversions.com/?p=1457</guid>
		<description><![CDATA[I made a new year&#8217;s resolution for 2010: make more games. I made a game on Tuesday. It&#8217;s nothing super fancy, I just said to myself, &#8220;Hey, I&#8217;ll make a simple 8-way shooter like Robotron or Everyday Shooter.&#8221; So I did. What&#8217;s weird is that I find this like 100 times more compelling to play [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link"  href="http://tinysubversions.com/2010/01/af-337/"  title="Permanent link to AF 337" ><img class="post_image alignnone"  src="http://tinysubversions.com/pics/af337c.png"  width="636"  height="150"  alt="Post image for AF 337" /></a>
</p><p>I made a new year&#8217;s resolution for 2010: make more games.</p>
<p>I made a game on Tuesday. It&#8217;s nothing super fancy, I just said to myself, &#8220;Hey, I&#8217;ll make a simple 8-way shooter like <em>Robotron</em> or <em>Everyday Shooter</em>.&#8221; So I did.</p>
<p>What&#8217;s weird is that I find this like 100 times more compelling to play than any of the stuff I set out to make that&#8217;s &#8220;supposed&#8221; to be good. Those projects I work on and I test and they&#8217;re not good enough and I never finish them. This was just&#8230; I pretty much knew what it was going to be. I made it. I tuned it. And it was done.</p>
<p>The game is called <a href="http://tinysubversions.com/af337.exe" >AF 337</a>, named after the flight I was on when I made it. Click the image to download (Windows only).</p>
<div class="wp-caption aligncenter"  style="width: 636px" >
	<a href="http://tinysubversions.com/af337.exe" ><img title="AF 337"  src="http://tinysubversions.com/pics/af337.png"  alt=""  width="636"  height="476" /></a>
	<p class="wp-caption-text" >screenshot of some frantic action from the game</p>
</div>
<p>I&#8217;m using Anna Anthropy&#8217;s <a href="http://www.auntiepixelante.com/?p=480" >Star Perv font</a>, <a href="http://forums.tigsource.com/index.php?topic=8909.0" >Atuun&#8217;s Assemblee compo song Nes1</a>, and <a href="http://forums.tigsource.com/index.php?topic=9321.0" >Shaktool&#8217;s (John Nesky&#8217;s) Assemblee sound fx</a> (ouch_1 and yoink). All the art and programming is by me.</p>
]]></content:encoded>
			<wfw:commentRss>http://tinysubversions.com/2010/01/af-337/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Tutorial: Adding a New Inventory Item to Spelunky</title>
		<link>http://tinysubversions.com/2010/01/tutorial-adding-new-inventory-spelunky/</link>
		<comments>http://tinysubversions.com/2010/01/tutorial-adding-new-inventory-spelunky/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 18:58:28 +0000</pubDate>
		<dc:creator>Darius Kazemi</dc:creator>
				<category><![CDATA[modding]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Spelunky]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://tinysubversions.com/?p=1423</guid>
		<description><![CDATA[Here&#8217;s another Spelunky modding tutorial I posted over on the Mossmouth Forums. This shows how you might add a third inventory element to the game, something that behaves like a bomb or a rope in terms of always having a limited number of it in your inventory. This can even be modified slightly to provide [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Here&#8217;s another Spelunky modding tutorial I <a href="http://mossmouth.com/forums/index.php?topic=703.0" >posted over on the Mossmouth Forums</a>. This shows how you might add a third inventory element to the game, something that behaves like a bomb or a rope in terms of always having a limited number of it in your inventory. This can even be modified slightly to provide you with something like an ammo count.</p>
<h3>Overview</h3>
<p>So let&#8217;s say you want to add a new inventory item to Spelunky &#8212; something like bombs and ropes, but different. For the sake of this tutorial, let&#8217;s have you be able to hold up to 99 rocks in your pockets. We&#8217;ll make it so that rocks behave kind of like bombs: if you run across one, you can pick it up and it is added to your inventory when you switch away from it.</p>
<p>What we&#8217;re going to do in this mod is: set the appropriate global variable, figure out how to switch to the new inventory item, and set up the new HUD element so we know how many rocks we have.</p>
<h3>Setting the Global Variable</h3>
<p>The amount of bombs and ropes you have are stored as global variables. The game sets them in the scrClearGlobals. This script is run at the beginning of every game, and it sets every global to false/0, except for bombs, ropes, and plife (player life), which all get set to 4. So in scrClearGlobals you want to make the following change at line 109:</p>
<blockquote>
<pre>else
{
    global.plife = 4;
    global.bombs = 4;
    global.rope = 4;
    // ADD THIS LINE (we're starting the player out with 1 rock)
    global.rocks = 1;
}</pre>
</blockquote>
<h3>Switching to Our Rocks</h3>
<p>Here&#8217;s where we change the code so that pressing the &#8220;switch item&#8221; button will put a rock in our hands if we have more than 0 rocks. We also want to put in some code so that when we have the rock equipped, our global.rocks is reduced by 1 (so it works the same way bombs and ropes do).</p>
<p>Let&#8217;s look at the code from oPlayer1 Step, in the second Action Block, line 952:</p>
<blockquote><p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; font-size: small;" >
<pre>else if (inGame and kItemPressed and not whipping)
{
    // switch items
    if (holdItem)
    {

// If we're holding a bomb and it's armed, we can't switch away.

        if (holdItem.sprite_index == sBombArmed)
        {
            // do nothing
        }

// If we're holding a bomb and it's not armed, then put it back in your
// inventory (increment the global), and then destroy it so you're not
// holding it anymore. Then, if there's more than 0 ropes, switch to
// ropes. Otherwise, switch to what you're holding (or nothing if
// you're not holding anything.)

        else if (holdItem.sprite_index == sBomb)
        {
            with holdItem
            {
                global.bombs += 1;
                instance_destroy();
            }

            if (global.rope &gt; 0)
            {
                holdItem = instance_create(x, y, oRopeThrow);
                holdItem.held = true;
                global.rope -= 1;
                whoaTimer = whoaTimerMax;
            }
            else
            {
                scrHoldItem(pickupItemType);
            }
        }

// If we're holding a rope then put it back in your inventory
// (increment the global), and then destroy it so you're not
// holding it anymore. Then switch to what you're holding
// (or nothing if you're not holding anything.)

        else if (holdItem.sprite_index == sRopeEnd)
        {
            with holdItem
            {
                global.rope += 1;
                instance_destroy();
            }            

            scrHoldItem(pickupItemType);
        }

// If we're holding an item that's not heavy (damsel or Idol)
// and we have a bomb or a rope, then store it away as
// pickupItemType for later. If we have bombs, switch
// to bombs, if not, then switch to ropes.

        else if (not holdItem.heavy and holdItem.cost == 0)
        {
            if (global.bombs &gt; 0 or global.rope &gt; 0)
            {
                pickupItemType = holdItem.type;
                if (holdItem.type == "Bow" and bowArmed)
                {
                    scrFireBow();
                }
                with holdItem
                {
                    breakPieces = false;
                    instance_destroy();
                }
            }

            if (global.bombs &gt; 0)
            {
                holdItem = instance_create(x, y, oBomb);
                if (global.hasStickyBombs) holdItem.sticky = true;
                holdItem.held = true;
                global.bombs -= 1;
                whoaTimer = whoaTimerMax;
            }
            else if (global.rope &gt; 0)
            {
                holdItem = instance_create(x, y, oRopeThrow);
                holdItem.held = true;
                global.rope -= 1;
                whoaTimer = whoaTimerMax;
            }
        }
    }
// If you're not holding anything, switch to bombs if available.
// Otherwise switch to ropes if available.
    else
    {
        if (global.bombs &gt; 0)
        {
            holdItem = instance_create(x, y, oBomb);
            if (global.hasStickyBombs) holdItem.sticky = true;
            holdItem.held = true;
            global.bombs -= 1;
            whoaTimer = whoaTimerMax;
        }
        else if (global.rope &gt; 0)
        {
            holdItem = instance_create(x, y, oRopeThrow);
            holdItem.held = true;
            global.rope -= 1;
            whoaTimer = whoaTimerMax;
        }
    }
}</pre>
</blockquote>
<p>It&#8217;s a little complex so you should read through my comments there. Basically, we take this structure and extend it so we have the logic for switching to rock. It&#8217;s a good exercise to read through this code and figure out why I made the changes I did:</p>
<blockquote><p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; font-size: small;" ></p>
<pre>else if (inGame and kItemPressed and not whipping)
{
    // switch items
    if (holdItem)
    {
        if (holdItem.sprite_index == sBombArmed)
        {
            // do nothing
        }
        else if (holdItem.sprite_index == sBomb)
        {
            with holdItem
            {
                global.bombs += 1;
                instance_destroy();
            }

            if (global.rope &gt; 0)
            {
                holdItem = instance_create(x, y, oRopeThrow);
                holdItem.held = true;
                global.rope -= 1;
                whoaTimer = whoaTimerMax;
            }
            else
            {
                scrHoldItem(pickupItemType);
            }
        }
        else if (holdItem.sprite_index == sRopeEnd)
        {
            with holdItem
            {
                global.rope += 1;
                instance_destroy();
            }

            if (global.rocks &gt; 0)
            {
                holdItem = instance_create(x, y, oRock);
                holdItem.held = true;
                global.rocks -= 1;
                whoaTimer = whoaTimerMax;
            }

            else
            {
                scrHoldItem(pickupItemType);
            }
        }
        else if (holdItem.sprite_index == sRock)
        {

//           global.plife = 0;

            with holdItem
            {
                global.rocks += 1;
                instance_destroy();
            }

            if (pickupItemType == "Rock") pickupItemType = "";
            scrHoldItem(pickupItemType);
        }

        else if (not holdItem.heavy and holdItem.cost == 0)
        {
            if (global.bombs &gt; 0 or global.rope &gt; 0 or global.rocks &gt; 0)
            {
                pickupItemType = holdItem.type;
                if (holdItem.type == "Bow" and bowArmed)
                {
                    scrFireBow();
                }
                with holdItem
                {
                    breakPieces = false;
                    instance_destroy();
                }
            }

            if (global.bombs &gt; 0)
            {
                holdItem = instance_create(x, y, oBomb);
                if (global.hasStickyBombs) holdItem.sticky = true;
                holdItem.held = true;
                global.bombs -= 1;
                whoaTimer = whoaTimerMax;
            }
            else if (global.rope &gt; 0)
            {
                holdItem = instance_create(x, y, oRopeThrow);
                holdItem.held = true;
                global.rope -= 1;
                whoaTimer = whoaTimerMax;
            }
            else if (global.rocks &gt; 0)
            {
                holdItem = instance_create(x, y, oRock);
                holdItem.held = true;
                global.rocks -= 1;
                whoaTimer = whoaTimerMax;
            }
        }
    }
    else
    {
        if (global.bombs &gt; 0)
        {
            holdItem = instance_create(x, y, oBomb);
            if (global.hasStickyBombs) holdItem.sticky = true;
            holdItem.held = true;
            global.bombs -= 1;
            whoaTimer = whoaTimerMax;
        }
        else if (global.rope &gt; 0)
        {
            holdItem = instance_create(x, y, oRopeThrow);
            holdItem.held = true;
            global.rope -= 1;
            whoaTimer = whoaTimerMax;
        }
        else if (global.rocks &gt; 0)
        {
            holdItem = instance_create(x, y, oRock);
            holdItem.held = true;
            global.rocks -= 1;
            whoaTimer = whoaTimerMax;
        }
    }
}</pre>
<p></span>
</p></blockquote>
<h3>Adding Rocks to the UI</h3>
<p>Next we want to add a new UI element to the top of the screen that shows how many rocks we have. To do this, open up scrDrawHUD and you&#8217;ll see this:</p>
<blockquote><p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; font-size: small;" ></p>
<pre>if (global.drawHUD and instance_exists(oPlayer1))
{
    lifeX = 8;
    bombX = 64;
    ropeX = 120;
    moneyX = 176;
    draw_set_font(global.myFont);
    draw_set_color(c_white);
    draw_sprite(sHeart, -1, lifeX, 8);
    life = global.plife;
    if (life &lt; 0) life = 0;
    draw_text(lifeX+16, 8, life);
    if (global.hasStickyBombs) draw_sprite(sStickyBombIcon, -1, bombX, 8);
    else draw_sprite(sBombIcon, -1, bombX, 8);
    draw_text(bombX+16, 8, global.bombs);
    draw_sprite(sRopeIcon, -1, ropeX, 8);
    draw_text(ropeX+16, 8, global.rope);
    draw_sprite(sDollarSign, -1, moneyX, 8);
    draw_text(moneyX+16, 8, global.money);</pre>
<p></span>
</p></blockquote>
<p>What you&#8217;ll want to do is create rockX, which is the X offset of the new rock UI element. I would put it in between rope and money, because money is variable length so you want it at the far right hand side. Then you just add the draw_text() and draw_sprite() functions. I used the sprite for the rock in the example below:</p>
<blockquote><p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; font-size: small;" ></p>
<pre>if (global.drawHUD and instance_exists(oPlayer1))
{
    lifeX = 8;
    bombX = 64;
    ropeX = 120;
    rockX = 176;
    moneyX = 232;
    draw_set_font(global.myFont);
    draw_set_color(c_white);
    draw_sprite(sHeart, -1, lifeX, 8);
    life = global.plife;
    if (life &lt; 0) life = 0;
    draw_text(lifeX+16, 8, life);
    if (global.hasStickyBombs) draw_sprite(sStickyBombIcon, -1, bombX, 8);
    else draw_sprite(sBombIcon, -1, bombX, 8);
    draw_text(bombX+16, 8, global.bombs);
    draw_sprite(sRopeIcon, -1, ropeX, 8);
    draw_text(ropeX+16, 8, global.rope);
    // I messed around with the Y value until I  got something I liked
    draw_sprite(sRock, -1, rockX, 16);
    draw_text(rockX+16, 8, global.rocks);
    draw_sprite(sDollarSign, -1, moneyX, 8);
    draw_text(moneyX+16, 8, global.money);</pre>
<p></span>
</p></blockquote>
<p>And we end up with this:</p>
<p style="text-align: center;" ><img class="aligncenter"  src="http://tinysubversions.com/spelunky/s7.PNG"  alt="s7.PNG"  width="483"  height="376" /></p>
]]></content:encoded>
			<wfw:commentRss>http://tinysubversions.com/2010/01/tutorial-adding-new-inventory-spelunky/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Amazing Custom EarthBound Poster</title>
		<link>http://tinysubversions.com/2010/01/my-custom-earthbound-poster/</link>
		<comments>http://tinysubversions.com/2010/01/my-custom-earthbound-poster/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 17:21:39 +0000</pubDate>
		<dc:creator>Darius Kazemi</dc:creator>
				<category><![CDATA[art]]></category>
		<category><![CDATA[EarthBound]]></category>
		<category><![CDATA[family]]></category>

		<guid isPermaLink="false">http://tinysubversions.com/?p=1415</guid>
		<description><![CDATA[Maybe this post should have been titled, &#8220;My Sister is Awesome.&#8221; About a year ago, I got my sister a present. I&#8217;m usually not good at buying presents, but with the help of Eric Robinson (who you might remember from this GDC video I took) I was able to purchase one of the Japan-only giant [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link"  href="http://tinysubversions.com/2010/01/my-custom-earthbound-poster/"  title="Permanent link to My Amazing Custom EarthBound Poster" ><img class="post_image alignnone"  src="http://tinysubversions.com/pics/EB2.jpg"  width="680"  height="150"  alt="Post image for My Amazing Custom EarthBound Poster" /></a>
</p><p>Maybe this post should have been titled, &#8220;My Sister is Awesome.&#8221;</p>
<p>About a year ago, I got my sister a present. I&#8217;m usually not good at buying presents, but with the help of Eric Robinson (who you might remember from <a href="http://tinysubversions.com/2009/03/video-dinner-conversation-at-gdc-on-semiotics-of-game-design/" >this GDC video I took</a>) I was able to purchase one of the Japan-only giant half-meter-tall Mr. Saturn plushies.</p>
<p style="text-align: center;" ><a href="http://www.destructoid.com/blogs/A+New+Challenger/earthbound-fans-time-to-weep-banpresto-releases-limited-ed-mr-saturn-plushie-in-japan-120440.phtml" ><img class="aligncenter"  title="Giant Mr. Saturn doll"  src="http://bulk.destructoid.com/ul/user/7/7486-120440-saturn1jpg-468x.jpg"  alt=""  width="468"  height="320" /></a></p>
<p style="text-align: left;" >See, my sister and I are both huge fans of the MOTHER series of games, in particular MOTHER 2, which I played upon its American release as <em><a href="http://en.wikipedia.org/wiki/EarthBound" >EarthBound</a></em> in the summer of 1995. <a href="http://earthbound.wikia.com/wiki/Mr._Saturn" >Mr. Saturn</a> is one of the most memorable characters from MOTHER 2 and 3. If you&#8217;d like to read some good stuff about <em>EarthBound</em>, just today Michel McBride-Charpentier posted <a href="http://www.critical-distance.com/2010/01/19/earthbound/" >a compilation of critical analysis of EB over at Critical Distance</a>.</p>
<p style="text-align: left;" >Anyway, I felt smug. She loved the gift. I&#8217;d finally made up for years and years of her getting me cool stuff and me getting her like a CD or something. Hell, I might have even been <em>ahead</em>. Then&#8230; she made me this for this past Christmas.</p>
<div class="wp-caption aligncenter"  style="width: 450px" >
	<a href="http://tinysubversions.com/pics/EB.jpg" ><img title="EarthBound Poster"  src="http://tinysubversions.com/pics/EB.jpg"  alt=""  width="450"  height="665" /></a>
	<p class="wp-caption-text" >Holy crap. Click to enlarge.</p>
</div>
<p>It&#8217;s a giant framed poster that she designed and drew herself. It&#8217;s got the four main characters from <em>EarthBound</em>, plus the Sky Runner, Exit Mouse, Bubble Monkey, Tessie, and even Buzz Buzz! And of course, Mr. Saturn at the center of it all. I also love the ominous Starmen in the background.</p>
<p>So basically I have the best sister ever. Also the worst sister ever! She&#8217;s planning on following this up with a <em>MOTHER 3</em> poster! What the hell am I going to get her next time I need to give her a gift????</p>
<p>If you would like a print of this, <a href="http://tinysubversions.com/2010/01/my-custom-earthbound-poster/#comment-4274" >see my sister&#8217;s comment below</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://tinysubversions.com/2010/01/my-custom-earthbound-poster/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

