<?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>pixelracket</title>
	<atom:link href="http://pixelracket.com/content/feed/" rel="self" type="application/rss+xml" />
	<link>http://pixelracket.com/content</link>
	<description></description>
	<lastBuildDate>Thu, 29 Apr 2010 05:16:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Dialect</title>
		<link>http://pixelracket.com/content/2010/04/13/dialect/</link>
		<comments>http://pixelracket.com/content/2010/04/13/dialect/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 15:02:15 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Home]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[objective c]]></category>
		<category><![CDATA[programming languages]]></category>
		<category><![CDATA[programming philosophy]]></category>

		<guid isPermaLink="false">http://pixelracket.com/content/?p=37</guid>
		<description><![CDATA[It&#8217;s one thing, of course, to declare that you&#8217;re going to build a game; it&#8217;s quite another to do it. Part of the difficulty for me has been in the choice of computer language to use for the whole process. Purists will scream &#8220;C!&#8221; (or at least in my fevered imaginings they do) or &#8220;C++!&#8221;.  [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s one thing, of course, to declare that you&#8217;re going to build a game; it&#8217;s quite another to <em>do</em> it.  Part of the difficulty for me has been in the choice of computer language to use for the whole process.</p>
<p>Purists will scream &#8220;C!&#8221; (or at least in my fevered imaginings they do) or &#8220;C++!&#8221;.  The draw of C is that it is a simple and powerful language; a fundamental fact about the language that you would never be able to divine if your first experience was with the heavily-corrupted, bastard stepchild of that language known as C++.  Maybe someday I will rant coherently about C++ and lay out each argument in a methodical and socially-approved way, but it&#8217;s hard to do so when you&#8217;re foaming with wrath at the very thought.  Suffice it to say that C++ obfuscates your code too much&#8211;with template classes, structures that <em>are</em> classes and yet not, multiple inheritance, operators that sometimes do one thing in one context and something <em>completely different</em> in another context&#8230;!</p>
<p>I&#8217;d better stop.</p>
<p>But  have you ever tried to <em>read</em> the C++ code that someone else has written?  Or even code that you wrote last year and left behind when you moved to another project?  You must comment profusely when programming in C++; ideally with five lines of comment for every line of code in order to make sense of any of it.</p>
<p>So, C++ is out.</p>
<p><span id="more-37"></span><br />
C is out because I have been spoiled by the object-oriented approach to programming.  Oh, sometimes it&#8217;s nice to let go of that approach for a while and return to my roots, but ultimately I end up programming object-oriented code again because it makes logical and structural sense.</p>
<p>C# is out because it has the taint of Microsoft on it (now, at any rate) that I can&#8217;t quite wash away; and, anyway, the implementations that I&#8217;ve seen require you to package the runtime libraries with it or hope that the end-user has these libraries already installed.  Don&#8217;t get me wrong&#8211;the <a href="http://www.mono-project.com" target="_blank">Mono</a> project does what it does well, but it doesn&#8217;t suit my tastes in programming.  I want an object-oriented approach to programming that produces consistent results for multiple architectures from simple and elegant code.</p>
<p>Objective C is ideal. I like the syntax, which combines the simplicity of C with the elegance of a message-based architecture. Classes are easy to implement and extend and the small trade-off in speed that results from binding method calls at run time is negligible on modern processors. Unfortunately, it is poorly documented unless you want to target <a href="http://developer.apple.com/mac/library/documentation/cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html" target="_blank">MacOS</a> exclusively. The <a href="http://gcc.gnu.org" target="_blank">gcc</a> implementation is good but only on <a href="http://www.ubuntu.com" target="_blank">Linux platforms</a>; if you want to target Windows you must choose either the <a href="http://www.mingw.org" target="_blank">MingW</a> implementation, which is an older one that leaves out language features such as exceptions; or the <a href="http://www.cygwin.com" target="_blank">Cygwin</a> implementation which is newer but suffers from the limitations of Cygwin itself.</p>
<p>Nevertheless, the elegant simplicity of Objective C makes the limitations of Cygwin easier to accept; and the fact that it is a cross-platform language is important when you want your game to run on as many types of systems as possible.  Objective C also has the advantage of being portable to the iPhone/iPod series of devices, where the games market is only beginning to be tapped.</p>
<p>For these reasons, Objective C will the language of choice as I develop this game, and any code snippets that I post here will be based in that language or in C itself.</p>
]]></content:encoded>
			<wfw:commentRss>http://pixelracket.com/content/2010/04/13/dialect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building a Game</title>
		<link>http://pixelracket.com/content/2010/02/03/building-a-game/</link>
		<comments>http://pixelracket.com/content/2010/02/03/building-a-game/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 07:15:34 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Home]]></category>

		<guid isPermaLink="false">http://pixelracket.com/content/?p=34</guid>
		<description><![CDATA[It occurs to me that I&#8217;ve no desire to continue working at my present job forever.  It&#8217;s likely that the same thought occurs to everyone, eventually &#8212; or maybe not.  But I know that I enjoy making my computer do things more than I enjoy this job, and so it occurs to me that I [...]]]></description>
			<content:encoded><![CDATA[<p>It occurs to me that I&#8217;ve no desire to continue working at my present job forever.  It&#8217;s likely that the same thought occurs to everyone, eventually &#8212; or maybe not.  But I know that I enjoy making my computer do things more than I enjoy this job, and so it occurs to me that I can write a game.  (Well, <em>any</em> software, really; but a game also tells a story, which is the second-best thing I like to do).</p>
<p>While I would like to write the next <a href="http://us.blizzard.com/en-us/games/wow/" target="_self"><em>World of Warcraft</em></a>, it seems best to start with something a little more realistic.  To that end, I&#8217;ve resolved to write something that I hope will be half as successful as <a href="http://www.braid-game.com/" target="_self"><em>Braid</em></a>, and in the same vein; by which I mean, it will be a two-dimensional side-scrolling game with beautiful artwork and (hopefully) compelling game play.</p>
<p>This blog will chronicle my efforts in that direction.  While perhaps you will find something useful here, in the code or ideas that are posted, I am also posting this for myself &#8212; it is my way of keeping track of the fact that <em>yes</em>, I am making progress even when it doesn&#8217;t feel like it.</p>
]]></content:encoded>
			<wfw:commentRss>http://pixelracket.com/content/2010/02/03/building-a-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
