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

<channel>
	<title>Terraflubb</title>
	<atom:link href="http://veggies.lonelyfridge.com/feed" rel="self" type="application/rss+xml" />
	<link>http://veggies.lonelyfridge.com</link>
	<description>A Game Development Blog</description>
	<pubDate>Sun, 04 Jan 2009 05:38:36 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
	<language>en</language>
			<item>
		<title>Hapax legomena</title>
		<link>http://veggies.lonelyfridge.com/archives/140</link>
		<comments>http://veggies.lonelyfridge.com/archives/140#comments</comments>
		<pubDate>Sun, 04 Jan 2009 05:38:36 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
		
		<category><![CDATA[Excuses]]></category>

		<category><![CDATA[News]]></category>

		<category><![CDATA[Projects]]></category>

		<category><![CDATA[Space Fortress]]></category>

		<guid isPermaLink="false">http://veggies.lonelyfridge.com/?p=140</guid>
		<description><![CDATA[When I can&#8217;t sleep, and don&#8217;t code, I go on these Wikipedia safaris. Today something awesome happened and I learned about hapax legomena. I totally have one and you&#8217;re staring at it.
Space Fortress wise, I have been getting some boring-to-discuss sloggage into a sprite system done. I now have:

An entity system (to be discussed later) [...]]]></description>
			<content:encoded><![CDATA[<p>When I can&#8217;t sleep, and don&#8217;t code, I go on these Wikipedia safaris. Today something awesome happened and I learned about <a href="http://en.wikipedia.org/wiki/Hapax_legomenon">hapax legomena</a>. I totally have one and you&#8217;re staring at it.</p>
<p>Space Fortress wise, I have been getting some boring-to-discuss sloggage into a sprite system done. I now have:</p>
<ol>
<li>An <em>entity</em> system (to be discussed later) for loading definitions of in-game entities from XML files, entities being the things in the game world that aren&#8217;t dirt.</li>
<li>A <em>sprite</em> system, which manages those animated little bitmaps drawn onto the screen. The Artist class responsible for drawing entities creates a sprite for each entity. The &#8216;front end&#8217; of an entity, also xmelly</li>
<li>Used an ordered list on Terraflubb</li>
</ol>
<p>These things are very crude at the moment but will eventually be one of the most feature-rich aspects of the game engine. Hopefully, once it&#8217;s in place, I will be able to convince myself that it is not a ridiculous introduction of complexity but something useful. My goal is to have a worker-drone and a building entity defined and set up in the game soon. Fun stuff comes after that.</p>
]]></content:encoded>
			<wfw:commentRss>http://veggies.lonelyfridge.com/archives/140/feed</wfw:commentRss>
		</item>
		<item>
		<title>Christmas Break</title>
		<link>http://veggies.lonelyfridge.com/archives/138</link>
		<comments>http://veggies.lonelyfridge.com/archives/138#comments</comments>
		<pubDate>Sat, 27 Dec 2008 03:10:16 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://veggies.lonelyfridge.com/?p=138</guid>
		<description><![CDATA[I&#8217;m taking a little no-computer time this Christmas break. I broke some code intentionally and the things I have to do are straightforward and will facilitate the creation of good, recyclable, chunks of game for me. I&#8217;m pleased that I can recycle little things now, and that I&#8217;m sure these new bits will be very [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m taking a little no-computer time this Christmas break. I broke some code intentionally and the things I have to do are straightforward and will facilitate the creation of good, recyclable, chunks of game for me. I&#8217;m pleased that I can recycle little things now, and that I&#8217;m sure these new bits will be very recyclable in the future.</p>
<p>I am not getting distracted, but I know that the old Horror Mansion will be able to use most of the things I&#8217;m building now. If I keep on plowing ahead this way, I think I can revisit most of my ideas in the future and at least get to the prototype phase. If they&#8217;re not fun at that point, I can be satisfied knowing that I tried.</p>
<p>Meanwhile! I&#8217;m <em>so</em> close to finally doing the whole Model - View dichotomy neatly arranged in my brain. I think it is all set at the moment, but until I get it animated, I won&#8217;t be pleased.</p>
]]></content:encoded>
			<wfw:commentRss>http://veggies.lonelyfridge.com/archives/138/feed</wfw:commentRss>
		</item>
		<item>
		<title>MVC Obsession Woes: Part One</title>
		<link>http://veggies.lonelyfridge.com/archives/130</link>
		<comments>http://veggies.lonelyfridge.com/archives/130#comments</comments>
		<pubDate>Sat, 20 Dec 2008 06:13:27 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
		
		<category><![CDATA[Space Fortress]]></category>

		<guid isPermaLink="false">http://veggies.lonelyfridge.com/?p=130</guid>
		<description><![CDATA[Due to a wee bit of trouble falling asleep, I started hacking in some better &#8216;entity&#8217; stuff into Space Fortress. I ran into some issues which resulted in me not finishing what I had hoped for tonight. I find blogging helps make my brain work. This post explains my tragic obsession with MVC, an architectural [...]]]></description>
			<content:encoded><![CDATA[<p>Due to a wee bit of trouble falling asleep, I started hacking in some better &#8216;entity&#8217; stuff into Space Fortress. I ran into some issues which resulted in me not finishing what I had hoped for tonight. I find blogging helps make my brain work. This post explains my tragic obsession with MVC, an architectural pattern I might not even understand.</p>
<p><span id="more-130"></span></p>
<h2>Why Worry? Because you might be a poseur.</h2>
<p>As I have expressed before, I love to say I am a game-development hobbyist, but I do not have any artifacts that show as much. I <em>know</em> how to code and how to create passable programmer-art, but for all my years of experience, I have nothing! This resulted in me telling myself &#8220;Make your stuff recyclable! How many times will you fail at collision detection?&#8221;. So I adopted a strict Model-View-Controller approach to game development. I figured that I would eventually collect enough Model and View bits to be able to throw games together quickly. I did this with a few failed projects, and I&#8217;m pleased to say it&#8217;s working well!</p>
<h2>How Rob does MVC in games</h2>
<p>Since I never really <em>learned</em> MVC in an academic or professional setting, only from reading little things about it. I probably have it wrong. I also read the Gang of Four&#8217;s book, but I should really have chatted about it with an expert. But this is how I&#8217;m doing it. I appreciate corrections and comments, I respect the software engineering skills of at least 2 of my known audience.</p>
<h3>Model</h3>
<p>The &#8216;game world&#8217; lives in the model classes, which are the ones that represent the game world. In Space Fortress, that means the 2D-array of dirt which makes up the planet (a tile-based level) and a set of <em>entities</em> (I&#8217;m defining that now) which are all the &#8216;things in the game which aren&#8217;t the level&#8217;. So, buildings, robots, monsters, and pomegranates. My model classes are laced with accessors so that all the important (observable) parts can be reviewed by public methods.</p>
<h3>View</h3>
<p>Then I have my <em>view</em> classes, which are made up of persistent, <em>Artist</em> classes. I have a <em>WorldArtist</em> which knows how to read the level data out of the model classes (read only!) and an <em>EntityArtist</em> which knows how to draw the entities (I should say &#8216;knew&#8217; how). The EntityArtist will have to keep track of the animations and all that. It also does the GUI (with what I would have named <em>GUIArtist</em>, but instead I used <em>Thingle</em> so I won&#8217;t complain). It collects input and burps output. It does not touch the model directly, that&#8217;s done through the controller classes.</p>
<h3>Controller</h3>
<p>I currently have no controller classes anymore. But since I&#8217;m doing an RTS, they will be probably presented in some kind of <em>UserDesire</em> Interface, so the view sees my clicks, boils them down to a desire, then tells the model what I wanted. So &#8220;Click on a robot&#8221;, &#8220;right-click on spaceship&#8221;, &#8220;select dismantle&#8221;, gets turned into &#8220;new UserDesire(&#8221;robot_1&#8243;, &#8220;spaceship_12&#8243;, &#8220;dismantle&#8221;)&#8221; and gets interpreted by the model.</p>
<h2>Why that hurts</h2>
<p>Sticking to that makes me seem anal (believe me, I am not!) and it feels quick awkard at fist. Maybe this won&#8217;t work with an action game, it might only work with an RTS, since they are effectively spreadsheets with the data scooting all over the place. Oh, it probably would, I just don&#8217;t want to think about it right now.</p>
<p>It&#8217;s nice to be able to do this:</p>
<pre>guy.jump(); // model
guy.draw(); // view</pre>
<p>But now I do:</p>
<pre>guy.jump(); // model
entityArtist.draw( guy ); // view</pre>
<p>This makes animation a pain! But as you figure it out, you feel better for it. At least I did! We should all thank electrical engineers for making processors so fast we can software engineer the hell out of our games. I suddenly really have to consider what is <em>game-affecting</em> and what is <em>cosmetic</em>. Animation is purely cosmetic, until the animation is of a guy rolling, and when he is in the somersault position, the bounding box becomes half-height!</p>
<p>This is where my brain dislodged itself a bit, because something obvious became apparent to me tonight, and I have some coding to do as a result:</p>
<p>Pixels mean <em>nothing at all</em> to the model. They become &#8220;world units&#8221; or something that has nothing to do with lovely little squares of light. In 2D games, particularily pixellated ones, apparently my favourite kind to attempt, they map perfectly onto one another. But I must break that bond! I want to be able to do a full 3D rendered version of my game by only changing the view classes. A &#8216;world unit&#8217; of OpenGL has nothing to do with a pixel! It&#8217;s up to the view to map them that way.</p>
<h2>Model-view mapping</h2>
<p>So now, I have my fancy recycled<em> Entity</em> management system for the model. It contains bounding boxes for collisions with the environment and fellow entities. However, I also need a <em>Sprite</em> management system, for the view. Entities map to Sprites. I think I&#8217;ll cheat and create both out of the same XML definition for now. But as it stands, I have a bit of code that does both right now (since the mapping is perfectly 1:1) and it&#8217;s time to diverge.</p>
<p>Moral of the story, Rob now believes the following: <strong></strong></p>
<ul>
<li><strong>Model</strong> is to <strong>View</strong> <em>as</em></li>
<li><strong>World Unit </strong>is to <strong>Pixel</strong> <em>as</em></li>
<li> <strong>Entity</strong> is to <strong>Sprite</strong></li>
</ul>
<p>And with that, the last shackles of pre-MVC is shed, and I delve into awesome. Until the next shackle is revealed. It&#8217;s late now, but I think the ol&#8217; noggin will sleep now. Apologies for the typos and adorable grammatical issues.</p>
<h2>OMG Another one</h2>
<p>The following morning I realize there is another in the series:</p>
<ul>
<li><strong>Tick</strong> is to <strong>Millisecond</strong></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://veggies.lonelyfridge.com/archives/130/feed</wfw:commentRss>
		</item>
		<item>
		<title>Two Week Vacation? Lame.</title>
		<link>http://veggies.lonelyfridge.com/archives/128</link>
		<comments>http://veggies.lonelyfridge.com/archives/128#comments</comments>
		<pubDate>Fri, 19 Dec 2008 22:47:08 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
		
		<category><![CDATA[Excuses]]></category>

		<guid isPermaLink="false">http://veggies.lonelyfridge.com/?p=128</guid>
		<description><![CDATA[So, the last two weeks have been tragically uneventful. The ol&#8217; wisdom teeth became a bigger pain than I thought a few days later, and I didn&#8217;t do much of anything. This was followed up by a week of visitors, and we all know how rude it is to code when company is over!
Today was [...]]]></description>
			<content:encoded><![CDATA[<p>So, the last two weeks have been tragically uneventful. The ol&#8217; wisdom teeth became a bigger pain than I thought a few days later, and I didn&#8217;t do much of anything. This was followed up by a week of visitors, and we all know how rude it is to code when company is over!</p>
<p>Today was my last day of school for the year, so I expect that I&#8217;ll start updating again shortly. The whole point of this blog was to post to it frequently, so that&#8217;s what I&#8217;ll do!</p>
<p>My next step is to move the old Tinyroidvania sprite-animation system (with XML loader!) into the game so the sprites will no longer be integers for an array of Textures. Once they know how to be animated, then we&#8217;ll have more interesting videos.</p>
]]></content:encoded>
			<wfw:commentRss>http://veggies.lonelyfridge.com/archives/128/feed</wfw:commentRss>
		</item>
		<item>
		<title>Space Fortress: Showcase!</title>
		<link>http://veggies.lonelyfridge.com/archives/116</link>
		<comments>http://veggies.lonelyfridge.com/archives/116#comments</comments>
		<pubDate>Fri, 05 Dec 2008 02:10:07 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
		
		<category><![CDATA[Space Fortress]]></category>

		<guid isPermaLink="false">http://veggies.lonelyfridge.com/?p=116</guid>
		<description><![CDATA[Things are now at the point and the GUI stuff seems squared away. It&#8217;s not finished or anything, but it&#8217;s ready for future expansion. Lots of the older code has been gutted out, it is becoming more manageable.
There was also a great big overhaul of the scene drawing code. Right now there are two drawing [...]]]></description>
			<content:encoded><![CDATA[<p>Things are now at the point and the GUI stuff seems squared away. It&#8217;s not finished or anything, but it&#8217;s ready for future expansion. Lots of the older code has been gutted out, it is becoming more manageable.</p>
<p>There was also a great big overhaul of the scene drawing code. Right now there are two drawing sweeps. First the tiles are drawn (the environment) then the entities (the things). Both of these sweeps are very crude at the moment, but their logic is pretty sound. It was a bit harder than I thought to get the entities to wrap around the x-axis. There are a few neat little special cases that had to be resolved.</p>
<p>In fact, I&#8217;m so proud of this, I&#8217;m going to stick up my first video!</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="601" height="339" 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://vimeo.com/moogaloop.swf?clip_id=2432941&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=dddddd&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="601" height="339" src="http://vimeo.com/moogaloop.swf?clip_id=2432941&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=dddddd&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Geek stuff after the break!</p>
<p><span id="more-116"></span></p>
<p>Nerds can see in the &#8220;sprites&#8221; section of the debug window, there are three little letters that explain how the entity drawing/culling/wrapping works. <strong>A</strong> is the primary drawing box. It&#8217;s usually the only one used in sufficiently big worlds. Then there is <strong>W</strong> which is the wrapping box, with an optional <strong>P</strong> box for awkward cases right at the axis&#8230; oh geez. I need a diagram to describe this. Nevermind, just know that it&#8217;s kind of clever!</p>
]]></content:encoded>
			<wfw:commentRss>http://veggies.lonelyfridge.com/archives/116/feed</wfw:commentRss>
		</item>
		<item>
		<title>Space Fortress: A lot of work</title>
		<link>http://veggies.lonelyfridge.com/archives/112</link>
		<comments>http://veggies.lonelyfridge.com/archives/112#comments</comments>
		<pubDate>Tue, 02 Dec 2008 06:22:47 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<category><![CDATA[Space Fortress]]></category>

		<guid isPermaLink="false">http://veggies.lonelyfridge.com/?p=112</guid>
		<description><![CDATA[So, the UI is coming along wonderfully now. I&#8217;m just realizing that the game below it is incredibly convoluted for what I want it to now become. Thanks to the glory of source-control, I might just spin off a new hunk of it without all the odd legacy stuff. I think I need to get [...]]]></description>
			<content:encoded><![CDATA[<p>So, the UI is coming along wonderfully now. I&#8217;m just realizing that the game below it is incredibly convoluted for what I want it to now become. Thanks to the glory of source-control, I might just spin off a new hunk of it without all the odd legacy stuff. I think I need to get the UI just a bit tighter, so I can pay attention to what&#8217;s going on in the world.</p>
<p>It&#8217;s always a bit embarrassing to blog this late.</p>
]]></content:encoded>
			<wfw:commentRss>http://veggies.lonelyfridge.com/archives/112/feed</wfw:commentRss>
		</item>
		<item>
		<title>Space Fortress: Input Revamp</title>
		<link>http://veggies.lonelyfridge.com/archives/109</link>
		<comments>http://veggies.lonelyfridge.com/archives/109#comments</comments>
		<pubDate>Sun, 30 Nov 2008 20:40:35 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
		
		<category><![CDATA[Space Fortress]]></category>

		<guid isPermaLink="false">http://veggies.lonelyfridge.com/?p=109</guid>
		<description><![CDATA[Now that I&#8217;m using a GUI like Thingle (a conclusive tutorial is coming, but at the moment it would be the blind leading the blind), I&#8217;m wresting with a few issues dealing with which widgets are going to consume mouse and keyboard events. In my current implementation, if you (say) highlight some text in a [...]]]></description>
			<content:encoded><![CDATA[<p>Now that I&#8217;m using a GUI like Thingle (a conclusive tutorial is coming, but at the moment it would be the blind leading the blind), I&#8217;m wresting with a few issues dealing with which widgets are going to consume mouse and keyboard events. In my current implementation, if you (say) highlight some text in a &lt;textarea&gt;, it will select some tiles hiding behind the widget!</p>
<p>This will become a bigger problem when other UI elements will start popping up on the screen. Clicks, sliders, stuff will all go bad. So I had better lick this early. I have always used a non event-driven input technique (I like to poll before my update phase), so I need to reconsider a few things.</p>
<p>Luckily, the Slick forumites are great and all deserve hats.</p>
]]></content:encoded>
			<wfw:commentRss>http://veggies.lonelyfridge.com/archives/109/feed</wfw:commentRss>
		</item>
		<item>
		<title>New Feature: Feature-creep Bucket</title>
		<link>http://veggies.lonelyfridge.com/archives/106</link>
		<comments>http://veggies.lonelyfridge.com/archives/106#comments</comments>
		<pubDate>Sun, 30 Nov 2008 07:38:42 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
		
		<category><![CDATA[Space Fortress]]></category>

		<category><![CDATA[Terraflubbery]]></category>

		<guid isPermaLink="false">http://veggies.lonelyfridge.com/?p=106</guid>
		<description><![CDATA[As I come up with a creep, I stick it into a file, and it gets chewed up and plopped online to my feature bucket! I had no idea how much I had forgotten about Python! This one&#8217;s just for Space Fortress right now.
Feature Bucket
If you are ever lucky enough to find a feature in [...]]]></description>
			<content:encoded><![CDATA[<p>As I come up with a creep, I stick it into a file, and it gets chewed up and plopped online to my feature bucket! I had no idea how much I had forgotten about Python! This one&#8217;s just for Space Fortress right now.</p>
<p><a href="http://veggies.lonelyfridge.com/produce/spacefortress/features.php">Feature Bucket</a></p>
<p>If you are ever lucky enough to find a feature in square brackets like this: [<a href="http://veggies.lonelyfridge.com/produce/spacefortress/features.php#SVG">SVG</a>], it means I narrowly avoided spinning off into a rant when I say &#8220;I want to do it like this, but I reserve the right to go off and do this cool thing I&#8217;m sure I will forget if I don&#8217;t mention right now and ruin whatever flow of discussion I almost had for a feature which will never materialize anyway!&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://veggies.lonelyfridge.com/archives/106/feed</wfw:commentRss>
		</item>
		<item>
		<title>Space Fortress: Meat and Potatoes</title>
		<link>http://veggies.lonelyfridge.com/archives/99</link>
		<comments>http://veggies.lonelyfridge.com/archives/99#comments</comments>
		<pubDate>Sun, 30 Nov 2008 02:09:58 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
		
		<category><![CDATA[Space Fortress]]></category>

		<guid isPermaLink="false">http://veggies.lonelyfridge.com/?p=99</guid>
		<description><![CDATA[Okay! So it&#8217;s time to shake off the dust and start working on Space Fortress&#8217;s core design components. There are some things that are good already, others that need to be scrapped and redone almost completely. Luckily, I&#8217;m pleased with how I built the non-changing parts so they&#8217;ll survive.
In this little blog I will discuss [...]]]></description>
			<content:encoded><![CDATA[<p>Okay! So it&#8217;s time to shake off the dust and start working on Space Fortress&#8217;s core design components. There are some things that are good already, others that need to be scrapped and redone almost completely. Luckily, I&#8217;m pleased with how I built the non-changing parts so they&#8217;ll survive.</p>
<p>In this little blog I will discuss the core components of the game, and explain what I think has to get done in order for me to ever be happy again.</p>
<p><span id="more-99"></span></p>
<p>Here are the core components of the game, and how I feel about them. When I talk about the game, I mean the game simulation system. The model of the MVC paradigm. I worry about V and C too much, so lets return to basics. Maybe with my fancy new Thingle, I can have a terrible UI to influnce the world for now.</p>
<ul>
<li>The Environment Tilemap</li>
<li>The Observer/Subscription Infrastructure</li>
<li>The Elements of the Game</li>
</ul>
<h2>Environment Tilemap</h2>
<p>The environment tilemap is the planetoid! It is a very large grid, and each grid cell is a discrete square of world. Since a planetoid is round for us, it wraps horizontally. For sanity, I chose not do be able to go Australia and make there be vertical wrapping [<a href="http://veggies.lonelyfridge.com/produce/spacefortress/features.php#VWRAP">VWRAP</a>]. Another attribute of planetoids is that there is lots of atmosphere on the top of the scene, but lots of dirt at the bottom. So, I built it using an interface in order to minize memory use (it will only check a dirt array if it&#8217;s below the horizon). Seems obvious, but whenever I&#8217;ve made smaller games, I just used a big half-empty 2d array.</p>
<h2>The Observer/Subscription Infrastructure</h2>
<p>One comes with Java, I&#8217;m not sure why I didn&#8217;t use it. I rolled my own which is probably not quite as good. It deserves investigation [<a href="http://veggies.lonelyfridge.com/produce/spacefortress/features.php#PROFILE">PROFILE</a>]. Anyway, an example of two broadcasters would be the Environment Tilemap. Any change in map solidity would be of interest to all paths generated by moving objects. So there is a SolidityListener. Also, any physical changes (holes in the dirt, new buildings, etc&#8230;) would get some kind of an SceneUpdateListener (bad name), so that the classes which are caching the art can update.</p>
<h2>The Elements</h2>
<p>Now there is a single class for all in-game Elements. An element is either a builder, or a worker, or a piece of equipement. Or anything that isn&#8217;t dirt or sky. The problem is that these thing move tile-by-tile. Which is not good. Because I like (sub)pixel-smooth movement. Instead of ditching this work, I think I can still use this class exclusively for static things (buildings) and then spin a subclass or something that moves pixelly.</p>
]]></content:encoded>
			<wfw:commentRss>http://veggies.lonelyfridge.com/archives/99/feed</wfw:commentRss>
		</item>
		<item>
		<title>Space Fortress Redesign</title>
		<link>http://veggies.lonelyfridge.com/archives/93</link>
		<comments>http://veggies.lonelyfridge.com/archives/93#comments</comments>
		<pubDate>Sat, 29 Nov 2008 05:53:48 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
		
		<category><![CDATA[Space Fortress]]></category>

		<guid isPermaLink="false">http://veggies.lonelyfridge.com/?p=93</guid>
		<description><![CDATA[I tried to write up some kind of design document for Space Fortress when I started because I felt like I had too many features I wanted to get off my mind before they started creeping into the code prematurely. The result is kind a of weird looking brain dump. I dumped out my original [...]]]></description>
			<content:encoded><![CDATA[<p>I tried to write up some kind of design document for Space Fortress when I started because I felt like I had too many features I wanted to get off my mind before they started creeping into the code prematurely. The result is kind a of weird looking <a href="http://veggies.lonelyfridge.com/produce/spacefortress">brain dump</a>. I dumped out my original vision for the game, but also started talking about low-level descisions about how dirt will be arranged after it is excavation.</p>
<p>While I think it was a good thing for me to try thinking before coding (as I&#8217;ve grown to appreciate software engineering), I don&#8217;t think I properly thought through the design before commiting to that which I&#8217;ve coded. Here is what I will do next.</p>
<p><span id="more-93"></span></p>
<p>I started this project out of love for Dwarf Fortress. Which is still the greatest game in the world. My original ideas were not particularly inspired, make it 2D, make it graphical, make it sci-fi. I think I was more excited by the code within DF that made emergant gameplay so diverse and exciting.</p>
<p>Before DF, I liked Sim City, Miner VGA, Caesar, Sim Tower, and any number of those tycoon games. I also had a dream about making a candy factory game. I can&#8217;t find those screenshots anymore, so it didn&#8217;t make the projects archive. I liked games where people built a system and watched it go. Since DF&#8217;s system is my golden standard, I somehow became infatuated. I wanted to be like the cool kid.</p>
<p>I think Space Fortress (working title, by the way!) needs to stay inspired by those things, but it&#8217;s silly and uncreative to attempt a clone. It&#8217;s one thing to clone Tetris or Pong when you&#8217;re learning to code, because they can be described on a napkin.</p>
<p>So, I&#8217;m reconsidering the design decisions I made. There is still plenty of good recyclable code (it&#8217;s mostly UI and pathfinding), I still want cities to be built, underground complexes to be hacked together, but I don&#8217;t want it to be DF-on-the-moon anymore.</p>
]]></content:encoded>
			<wfw:commentRss>http://veggies.lonelyfridge.com/archives/93/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
