<?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>nathandemick.com &#187; programming</title>
	<atom:link href="http://nathandemick.com/archive/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://nathandemick.com</link>
	<description></description>
	<lastBuildDate>Sat, 28 Aug 2010 00:13:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Nonogram Madness is on the App Store</title>
		<link>http://nathandemick.com/2010/08/nonogram-madness-is-on-the-app-store/</link>
		<comments>http://nathandemick.com/2010/08/nonogram-madness-is-on-the-app-store/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 00:13:42 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[nonogram madness]]></category>

		<guid isPermaLink="false">http://nathandemick.com/?p=340</guid>
		<description><![CDATA[A few months ago I decided to try my hand at iPhone development, and the result is finally with us. Presenting Nonogram Madness for iPhone and iPod Touch! 
For those of you who&#8217;ve been following along at home, late last year I made the first version of Nonogram Madness in Flash using the Flixel framework. [...]]]></description>
			<content:encoded><![CDATA[<p>A few months ago I decided to try my hand at iPhone development, and the result is finally with us. Presenting <a href="http://ganbarugames.com/nonogram-madness/" title="Nonogram Madness">Nonogram Madness</a> for iPhone and iPod Touch! </p>
<p>For those of you who&#8217;ve been following along at home, late last year I made the first version of Nonogram Madness in Flash using the <a href="http://flixel.org" title="Flixel">Flixel</a> framework. Since I knew I would have to learn both a new language <em>and</em> a new programming framework to create anything on iOS, I decided to re-work a previous creation. I thought since the core logic had already been programmed, porting would be relatively straightforward. </p>
<p>Obviously, in the end it was a bit more complicated than that. There were lots of unexpected challenges, such as dealing with touch-based controls, as well as creating all-new puzzles. It&#8217;s been the most ambitious project I&#8217;ve done in my spare time to date, and I&#8217;m actually pretty proud of it.</p>
<p>In fact, I enjoyed the process so much that I created an LLC to publish the game under. The company is called <a href="http://ganbarugames.com" title="Ganbaru Games">Ganbaru Games</a>, and while right now it&#8217;s not profitable at all, I&#8217;m hoping that perhaps if I get enough decent games out there, I can take advantage of the &#8220;long tail.&#8221; The word &#8220;ganbaru&#8221; means &#8220;to try ones&#8217; best&#8221; or &#8220;to work hard&#8221; in Japanese, and that&#8217;s the philosophy I&#8217;d like to bring with me in game creation.</p>
<p>If you&#8217;d like to show your support for my game-making efforts, why not <a href="http://twitter.com/ganbarugames" title="follow @ganbarugames on Twitter">follow @ganbarugames</a> on Twitter or <a href="http://www.facebook.com/pages/Columbus-OH/Ganbaru-Games/118579311508414?ref=ts" title="become a fan on Facebook">become a fan on Facebook?</p>
]]></content:encoded>
			<wfw:commentRss>http://nathandemick.com/2010/08/nonogram-madness-is-on-the-app-store/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How not to use Twitter to promote your business</title>
		<link>http://nathandemick.com/2010/07/how-not-to-use-twitter-to-promote-your-business/</link>
		<comments>http://nathandemick.com/2010/07/how-not-to-use-twitter-to-promote-your-business/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 12:52:48 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://nathandemick.com/2010/07/how-not-to-use-twitter-to-promote-your-business/</guid>
		<description><![CDATA[Just an FYI, for all the businesses out there that are now trying to get on the &#8220;social media&#8221; bandwagon: spamming people on to your follow list is going to get you blocked. At least by me. 
I got followed by some car repair place this morning. Obviously a new account, they had one tweet [...]]]></description>
			<content:encoded><![CDATA[<p>Just an FYI, for all the businesses out there that are now trying to get on the &#8220;social media&#8221; bandwagon: spamming people on to your follow list is going to get you blocked. At least by me. </p>
<p>I got followed by some car repair place this morning. Obviously a new account, they had one tweet and were following 800 people. What value are you going to bring to me again? Oh, that&#8217;s right, none. At least send a mention saying something about your services&#8230; it might make me think that you care enough to at least spend 5 seconds thinking about each person you want to have follow you.</p>
]]></content:encoded>
			<wfw:commentRss>http://nathandemick.com/2010/07/how-not-to-use-twitter-to-promote-your-business/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developing: iPhone vs. Nintendo DSi</title>
		<link>http://nathandemick.com/2010/04/developing-iphone-vs-nintendo-dsi/</link>
		<comments>http://nathandemick.com/2010/04/developing-iphone-vs-nintendo-dsi/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 13:33:25 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[nintendo]]></category>
		<category><![CDATA[nintendo ds]]></category>

		<guid isPermaLink="false">http://nathandemick.com/?p=329</guid>
		<description><![CDATA[Reggie Fils-Aime sez that the iPhone platform isn&#8217;t a serious competitor to Nintendo&#8217;s handhelds. As far as depth of games goes, I&#8217;d be inclined to agree with him. Nintendo does have 20 years of handheld console experience, and even the most basic Game Boy game usually has a lot more depth than the average iPhone [...]]]></description>
			<content:encoded><![CDATA[<p>Reggie Fils-Aime sez that the <a href="http://www.electronista.com/articles/10/04/06/nintendo.us.exec.thinks.iphone.games.unprofitable/">iPhone platform isn&#8217;t a serious competitor to Nintendo&#8217;s handhelds</a>. As far as depth of games goes, I&#8217;d be inclined to agree with him. Nintendo does have 20 years of handheld console experience, and even the most basic Game Boy game usually has a lot more depth than the average iPhone OS title. </p>
<p>However, I think there&#8217;s a reason why gaming has exploded on iPhone: it allows casual game makers to easily develop and publish games on a handheld pseudo-console. Nintendo has DSiWare, which is a digital content distribution system similar to the App Store, but the speed bumps to publishing on each platform are remarkably different. </p>
<p>To develop for the DSi, you have to fill out an application which states why your company has the experience necessary to develop DS titles (a side note: your company has to have actual offices&#8230; can&#8217;t be a home office). Once you get approved, you can purchase your DS development kit (no idea how much it costs, but probably a substantial amount). Then you can actually make your game. After that, you have to get your game approved to be distributed as DSiWare. </p>
<p>To develop for iPhone OS, all you need is a Macintosh computer and an iPhone/iPod Touch/iPad. All the programming tools are free. To test your game on your actual hardware and distribute via the App Store, you pay $100/year to be an official developer. </p>
<p>The difference is astounding. I will probably never make a game on a Nintendo platform (although I&#8217;d love to some day), but publishing for iPhone OS is easily within my reach. All I&#8217;m saying, Nintendo, is that you might want to take a page from Apple&#8217;s playbook here.</p>
]]></content:encoded>
			<wfw:commentRss>http://nathandemick.com/2010/04/developing-iphone-vs-nintendo-dsi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nonogram Madness is effectively done</title>
		<link>http://nathandemick.com/2010/01/nonogram-madness-is-effectively-done/</link>
		<comments>http://nathandemick.com/2010/01/nonogram-madness-is-effectively-done/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 01:13:48 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Video Games]]></category>

		<guid isPermaLink="false">http://nathandemick.com/?p=308</guid>
		<description><![CDATA[Seems like the last two projects I&#8217;ve done have had kind of lackluster ends. I&#8217;ve been sitting on this &#8220;mostly complete&#8221; project for a while, and while I&#8217;m still unsatisfied about certain areas (i.e. there&#8217;s no music), if I don&#8217;t push it out the door pretty soon it&#8217;ll just sit and stagnate. So, here we [...]]]></description>
			<content:encoded><![CDATA[<p>Seems like the last two projects I&#8217;ve done have had kind of lackluster ends. I&#8217;ve been sitting on this &#8220;mostly complete&#8221; project for a while, and while I&#8217;m still unsatisfied about certain areas (i.e. there&#8217;s no music), if I don&#8217;t push it out the door pretty soon it&#8217;ll just sit and stagnate. So, here we go: <a href="http://nathandemick.com/flash/nonogram-madness/" title="Nonogram Madness">Nonogram Madness</a>.</p>
<p>(If anyone cares, let me know what you think in the comments. The puzzles <em>kinda</em> progress in difficulty, but they haven&#8217;t been balanced at all, and some of them are pretty bad. There, you&#8217;ve been warned.)</p>
]]></content:encoded>
			<wfw:commentRss>http://nathandemick.com/2010/01/nonogram-madness-is-effectively-done/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Nonogram Madness title screen</title>
		<link>http://nathandemick.com/2009/10/nonogram-madness-title-screen/</link>
		<comments>http://nathandemick.com/2009/10/nonogram-madness-title-screen/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 19:04:03 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Video Games]]></category>

		<guid isPermaLink="false">http://nathandemick.com/?p=292</guid>
		<description><![CDATA[
The &#8220;in progress&#8221; title screen of Nonogram Madness. Yeah, I decided on a name.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://nathandemick.com/wp-content/uploads/2009/10/nonogram-screenshot-2.png"><img src="http://nathandemick.com/wp-content/uploads/2009/10/nonogram-screenshot-2.png" alt="Nonogram Madness" width="455" height="477" class="size-full wp-image-293" /></a></p>
<p>The &#8220;in progress&#8221; title screen of Nonogram Madness. Yeah, I decided on a name.</p>
]]></content:encoded>
			<wfw:commentRss>http://nathandemick.com/2009/10/nonogram-madness-title-screen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Game Makin&#8217;: nonograms?</title>
		<link>http://nathandemick.com/2009/09/game-makin-nonograms/</link>
		<comments>http://nathandemick.com/2009/09/game-makin-nonograms/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 14:19:53 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[nonograms]]></category>

		<guid isPermaLink="false">http://nathandemick.com/?p=284</guid>
		<description><![CDATA[
Makin&#8217; another game! It&#8217;s a nonogram game, inspired by Mario&#8217;s Picross (read more details about the whole genre at Game Set Watch).
Admittedly, nonograms aren&#8217;t for everyone. I enjoy them, however, because they&#8217;re simple logic puzzles that have a visual component&#8230; they&#8217;re more interesting to me than the straight-up numbers of sudoku. When I explained the [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://nathandemick.com/wp-content/uploads/2009/09/nonogram-screenshot-1.png" alt="Nonogram game screenshot #1" width="455" height="477" class="alignnone size-full wp-image-283" /></p>
<p>Makin&#8217; another game! It&#8217;s a <a href="http://en.wikipedia.org/wiki/Nonogram" title="Nonograms">nonogram</a> game, inspired by Mario&#8217;s Picross (read more details about the whole genre at <a href="http://www.gamesetwatch.com/2006/12/column_beyond_tetrismarios_pic.php">Game Set Watch</a>).</p>
<p>Admittedly, nonograms aren&#8217;t for everyone. I enjoy them, however, because they&#8217;re simple logic puzzles that have a visual component&#8230; they&#8217;re more interesting to me than the straight-up numbers of sudoku. When I explained the concept to Chandra, she seemed interested! It&#8217;s my goal to make something that she&#8217;ll play through =]</p>
]]></content:encoded>
			<wfw:commentRss>http://nathandemick.com/2009/09/game-makin-nonograms/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sprite Inspiration</title>
		<link>http://nathandemick.com/2009/09/sprite-inspiration/</link>
		<comments>http://nathandemick.com/2009/09/sprite-inspiration/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 13:30:27 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[sprites]]></category>
		<category><![CDATA[Video Games]]></category>

		<guid isPermaLink="false">http://nathandemick.com/?p=271</guid>
		<description><![CDATA[My artistic skills are bunk. Sometimes, I don&#8217;t even know where to begin. So, I whipped up a little Flash image viewer that displays some interesting 16&#215;16 NES sprites for inspiration. Check it out at http://nathandemick.com/flash/tilespiration/.
]]></description>
			<content:encoded><![CDATA[<p>My artistic skills are bunk. Sometimes, I don&#8217;t even know where to begin. So, I whipped up a little Flash image viewer that displays some interesting 16&#215;16 NES sprites for inspiration. Check it out at <a href="http://nathandemick.com/flash/tilespiration/" title="http://nathandemick.com/flash/tilespiration/">http://nathandemick.com/flash/tilespiration/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nathandemick.com/2009/09/sprite-inspiration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Armada</title>
		<link>http://nathandemick.com/2009/09/armada/</link>
		<comments>http://nathandemick.com/2009/09/armada/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 16:51:04 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[indie gaming]]></category>
		<category><![CDATA[kongregate]]></category>

		<guid isPermaLink="false">http://www.bitter-gamer.com/?p=254</guid>
		<description><![CDATA[So I finally decided to be &#8220;done&#8221; with this little shooting game I&#8217;ve been working on for a while. It&#8217;s called &#8220;Armada.&#8221; The goal is to destroy 1,000 enemies. Whenever you kill one, another one jumps on the screen to take its place. However, the more enemies you kill, the faster your ship moves and [...]]]></description>
			<content:encoded><![CDATA[<p>So I finally decided to be &#8220;done&#8221; with this little shooting game I&#8217;ve been working on for a while. It&#8217;s called &#8220;Armada.&#8221; The goal is to destroy 1,000 enemies. Whenever you kill one, another one jumps on the screen to take its place. However, the more enemies you kill, the faster your ship moves and shoots. Check it out on <a href="http://www.kongregate.com/games/butr0s/armada?referrer=butr0s" title="Kongregate ">Kongregate</a>.</p>
<p>One thing I&#8217;ve learned about myself during its development is that I can get really bogged down working on more than one thing at a time. My personal programming time is so limited that having two active projects slows things down considerably. Plus, if a project takes too long, I lose motivation pretty quickly. When waking up early in the morning, one has to be excited about what one is doing (an aside: <a href="http://www.wired.com/geekdad/2009/02/10-tricks-to-ge/" title="tips for waking up early on Wired.com">tips for waking up early</a>).</p>
]]></content:encoded>
			<wfw:commentRss>http://nathandemick.com/2009/09/armada/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wonderfl</title>
		<link>http://nathandemick.com/2009/04/wonderfl/</link>
		<comments>http://nathandemick.com/2009/04/wonderfl/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 18:28:57 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[japan]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[social networking]]></category>

		<guid isPermaLink="false">http://www.bitter-gamer.com/?p=249</guid>
		<description><![CDATA[This isn&#8217;t exactly news, but I created an account on the Japanese social network/code sharing site Wonderfl. It&#8217;s kind of cool&#8230; you can use the site to automatically compile Actionscript 3 code, then save it for other people to check out. If you see some code you like, or that sparks a new idea, you [...]]]></description>
			<content:encoded><![CDATA[<p>This isn&#8217;t exactly news, but I <a href="http://wonderfl.kayac.com/user/butr0s" title="created an account">created an account</a> on the Japanese social network/code sharing site <a href="http://wonderfl.kayac.com/" title="Wonderfl">Wonderfl</a>. It&#8217;s kind of cool&#8230; you can use the site to automatically compile Actionscript 3 code, then save it for other people to check out. If you see some code you like, or that sparks a new idea, you can &#8220;fork&#8221; it &mdash; copy it and save your own version. I was kind of surprised&#8230; I added two small demos on Monday, and by Wednesday some other users had already modified my demos. There&#8217;s a lot of random crap, but you can also learn some cool techniques by browsing through the user-submitted code. If you have any interest in Actionscript, you should check it out.</p>
]]></content:encoded>
			<wfw:commentRss>http://nathandemick.com/2009/04/wonderfl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Animation in Actionscript 3</title>
		<link>http://nathandemick.com/2009/03/animation-in-actionscript-3/</link>
		<comments>http://nathandemick.com/2009/03/animation-in-actionscript-3/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 17:21:58 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.bitter-gamer.com/?p=241</guid>
		<description><![CDATA[I think one of the main disadvantages of using the Flex compiler to create Flash programs is that animation is a bit more difficult to create (although, to tell the truth, I&#8217;ve never used the Flash IDE enough to be able to compare them). I think for most simple games, you can get away with [...]]]></description>
			<content:encoded><![CDATA[<p>I think one of the main disadvantages of using the Flex compiler to create Flash programs is that animation is a bit more difficult to create (although, to tell the truth, I&#8217;ve never used the Flash IDE enough to be able to compare them). I think for most simple games, you can get away with not animating any of your characters. But once you get into creating games that have more detailed characters, you pretty much need to add some sort of animation. We can do that pretty easily by loading multiple images into a DisplayObjectContainer (such as a Sprite) and then showing/hiding each image in turn. Take a look at the following example:</p>
<pre class="brush:js">
package {
  import flash.display.Sprite;
  import flash.events.Event;
  import flash.utils.getTimer;	// for getTimer()

  // Set SWF FPS, etc.
  [SWF(frameRate='30', width='200', height='200', backgroundColor='0xffffff')]

  public class AnimationExample extends Sprite {

    // For frame rate info
    public var ticks:Number = 0;
    public var framesPerSecond:Number;
    public var frameTimer:Number = 0;
    public var currentAnimationFrame:int = 0;

    // For animation
    [Embed(source="run-1.svg")]
    public var animationFrame1:Class;
    [Embed(source="run-2.svg")]
    public var animationFrame2:Class;
    [Embed(source="run-3.svg")]
    public var animationFrame3:Class;

    public var character:Sprite;

    public function AnimationExample():void {

      // Create new sprite for animation frames
      character = new Sprite();

      // Add frames, hide all but the first one
      character.addChild(new animationFrame1());
      character.addChild(new animationFrame2());
      character.addChild(new animationFrame3());
      character.getChildAt(1).visible = false;
      character.getChildAt(2).visible = false;

      this.addChild(character);

      // This will call the animation function
      this.addEventListener(Event.ENTER_FRAME, enterFrame);
    }

    public function enterFrame(e:Event = null):void {
      // getTimer() provides # of ms since Flash Player started
      var currentTicks:Number = getTimer();

      // Figure out how many seconds each frame is displaying for
      var secondsPerFrame:Number = (currentTicks - ticks) / 1000;

      // For the heck of it, you can also determine FPS
      framesPerSecond = 1 / secondsPerFrame;

      // Set this var for the next iteration
      ticks = currentTicks;

      // Increment the timer
      frameTimer += secondsPerFrame;

      // Compare the frameTimer value against the number of seconds you want each frame to display
      if(frameTimer &gt; 0.5) {
        // Reset the frame timer
        frameTimer = 0;

        // Hide the first frame
        this.character.getChildAt(0).visible = false;

        // Move the last frame up to be first
        this.character.setChildIndex(this.character.getChildAt(2), 0);

        // Show the new first frame
        this.character.getChildAt(0).visible = true;
      }
    }
  }
}
</pre>
<p><a href='http://www.bitter-gamer.com/wp-content/uploads/2009/03/animationexample.zip'>Download the code, .swf, and (bad) graphics.</a></p>
<p>In addition to the <code>setChildIndex()</code> function that swaps the depth of each animation frame, there&#8217;s also some code that obtains the current frame rate, which helps set the speed of the animation. In some games, the motion of all the characters can be limited by a number derived by the frame rate, which helps ensure that the game runs the same speed on different computers. This isn&#8217;t totally necessary in Flash, however, since it&#8217;s possible to limit frame rate by using <code>[SWF(frameRate='XX')]</code> at the beginning of your Actionscript package. </p>
]]></content:encoded>
			<wfw:commentRss>http://nathandemick.com/2009/03/animation-in-actionscript-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
