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

<channel>
	<title>Hale's Folio</title>
	<atom:link href="http://hale.quate.net/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://hale.quate.net</link>
	<description>Just another WordPress weblog</description>
	<pubDate>Wed, 01 Sep 2010 19:38:20 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Playing With The Isometric Perspective</title>
		<link>http://hale.quate.net/?p=79</link>
		<comments>http://hale.quate.net/?p=79#comments</comments>
		<pubDate>Wed, 03 Mar 2010 07:09:27 +0000</pubDate>
		<dc:creator>chale</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

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

		<guid isPermaLink="false">http://hale.quate.net/?p=79</guid>
		<description><![CDATA[Before the mainstream advancement to 3D games it was not uncommon to find games featuring isometric (or axonometric) perspectives.  This perspective is intriguing because it remains 2 dimensional but has a depth component.  Some refer to isometry as 2.5 dimension or pseudo-3D for this reason.  Unlike 3D games, isometric game objects should [...]]]></description>
			<content:encoded><![CDATA[<p>Before the mainstream advancement to 3D games it was not uncommon to find games featuring isometric (or <a href="http://en.wikipedia.org/wiki/Axonometric_projection">axonometric</a>) perspectives.  This perspective is intriguing because it remains 2 dimensional but has a depth component.  Some refer to isometry as 2.5 dimension or pseudo-3D for this reason.  Unlike 3D games, isometric game objects should appear the same size regardless of how far away they are.</p>
<p>While the isometric perspective provides an interesting art style and gameplay, it also presents us with a few challenges.  Currently, I am working with a team on a Bomberman-style game.  In this particular world, players are able to explore a multitude of heights in an isometric environment.</p>
<p>When working on an isometric game, drawing order of tiles and entities becomes important.  When done incorrectly tiles or entities will be clipped by others.  To ensure that they overlap correctly the isometric map tile rows should be drawn top-down.  This is to say that rows of tiles in the back of the map (farthest from you) should be drawn before the tiles closer to you. (This <a href="http://forums.tigsource.com/index.php?topic=7333.0">TIGSource forum thread</a> discusses some further potential clipping problems with isometric draw order.)</p>
<div id="attachment_80" class="wp-caption aligncenter" style="width: 298px"><a href="http://hale.quate.net/wp-content/uploads/2010/03/isometry-basic-draw-order.png"><img src="http://hale.quate.net/wp-content/uploads/2010/03/isometry-basic-draw-order.png" alt="Simple isometric draw order" title="isometry-basic-draw-order" width="288" height="144" class="size-full wp-image-80" /></a><p class="wp-caption-text">Simple isometric draw order</p></div>
<p>When dealing a multiple layer game like we are, identifying the different layers may prove difficult for players.  This situation gets worse when tiles of different layers match up visually where a tile could belong to any two layers.  In the image below, how can will the player tell where their character is standing?  Can the character move down or will it collide with a tile?</p>
<div id="attachment_81" class="wp-caption aligncenter" style="width: 450px"><a href="http://hale.quate.net/wp-content/uploads/2010/03/isometry-ambiguous-position.png"><img src="http://hale.quate.net/wp-content/uploads/2010/03/isometry-ambiguous-position.png" alt="Where is the Murid standing in relation to the other tiles?" title="isometry-ambiguous-position" width="440" height="225" class="size-full wp-image-81" /></a><p class="wp-caption-text">Where is the Murid standing in relation to the other tiles?</p></div>
<p>It is not hard to lighten up the tiles of each layer.  In that image above, you should notice a subtle color variance between the layers.  Our character is standing on a tile which is slightly darker than the tiles in front of it.  This effect is very subtle.</p>
<p>We can also outline the edges of tiles that have no neighbors in that direction.  In our code, we set it up so that each isometric tile knows its neighboring tiles (if it has any) in every direction.  With something like this already set up it should be relatively cheap to determine which edges of which tiles need outlining so that the edge is more obvious.  Note that edges facing us do not need outlining since these edges and their sides are already facing us.</p>
<div id="attachment_82" class="wp-caption aligncenter" style="width: 650px"><a href="http://hale.quate.net/wp-content/uploads/2010/03/isometry-shading.png"><img src="http://hale.quate.net/wp-content/uploads/2010/03/isometry-shading.png" alt="Left: No shading, Right: Some edge shading" title="isometry-shading" width="640" height="192" class="size-full wp-image-82" /></a><p class="wp-caption-text">Left: No shading, Right: Some edge shading</p></div>
<p>Outlining these tiles can look awkward when we introduce ramp tiles.  Ramps are essentially distorted rectangles where two nodes join with the bottom layer and the other two join with the layer the ramp leads to.</p>
<div id="attachment_84" class="wp-caption aligncenter" style="width: 298px"><a href="http://hale.quate.net/wp-content/uploads/2010/03/isometry-shading-ramps.png"><img src="http://hale.quate.net/wp-content/uploads/2010/03/isometry-shading-ramps.png" alt="Isometric ramps with valid shading" title="isometry-shading-ramps" width="288" height="176" class="size-full wp-image-84" /></a><p class="wp-caption-text">Isometric ramps with valid shading</p></div>
<p>The problem lies with the distortion of the ramp.  Ramps facing the player appear vertically elongated, and ramps facing away from the player are vertically squished.  An outline x pixels thick will appear thicker for ramps facing the player and thinner for those that aren&#8217;t.</p>
<div id="attachment_85" class="wp-caption aligncenter" style="width: 442px"><a href="http://hale.quate.net/wp-content/uploads/2010/03/isometry-shading-ramps-closeup.png"><img src="http://hale.quate.net/wp-content/uploads/2010/03/isometry-shading-ramps-closeup.png" alt="Notice the smaller outline for the ramp" title="isometry-shading-ramps-closeup" width="432" height="231" class="size-full wp-image-85" /></a><p class="wp-caption-text">Notice the smaller outline for the ramp</p></div>
<p>What happens if a character is completely covered by the map?  Some games overcome this by showing an outline of the character sprite in such situations.  Of course, in many cases outlining is more involved than taking the difference the character sprite silhouette and a larger one.  For complex shapes, the technique described will not generate a uniform outline thickness.  Alternatively the character sprite could be inverted to indicate the same thing.</p>
<p>This second solution doesn&#8217;t sound like much of a solution:  We could chose to ignore this problem completely.  Level designs should reflect this decision so that this situation is impossible to create.  Even if players could see their own characters, should we really burden players to interact with parts of the level environment they can&#8217;t see?</p>
]]></content:encoded>
			<wfw:commentRss>http://hale.quate.net/?feed=rss2&amp;p=79</wfw:commentRss>
		</item>
		<item>
		<title>Philosophers, A CS Perspective</title>
		<link>http://hale.quate.net/?p=70</link>
		<comments>http://hale.quate.net/?p=70#comments</comments>
		<pubDate>Mon, 18 Jan 2010 20:36:22 +0000</pubDate>
		<dc:creator>chale</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

		<guid isPermaLink="false">http://hale.quate.net/?p=70</guid>
		<description><![CDATA[Philosophers from a Computer Science point-of-view:
]]></description>
			<content:encoded><![CDATA[<p>Philosophers from a Computer Science point-of-view:<br />
<div id="attachment_71" class="wp-caption aligncenter" style="width: 320px"><a href="http://hale.quate.net/wp-content/uploads/2010/01/philosophers-pointers.png"><img src="http://hale.quate.net/wp-content/uploads/2010/01/philosophers-pointers.png" alt="(Is that Friedrich Nietzsche?!)" title="philosophers-pointers" width="310" height="330" class="size-full wp-image-71" /></a><p class="wp-caption-text">(Is that Friedrich Nietzsche?!)</p></div></p>
]]></content:encoded>
			<wfw:commentRss>http://hale.quate.net/?feed=rss2&amp;p=70</wfw:commentRss>
		</item>
		<item>
		<title>The Outcast Hypothesis</title>
		<link>http://hale.quate.net/?p=58</link>
		<comments>http://hale.quate.net/?p=58#comments</comments>
		<pubDate>Wed, 02 Sep 2009 22:28:49 +0000</pubDate>
		<dc:creator>chale</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

		<guid isPermaLink="false">http://hale.quate.net/?p=58</guid>
		<description><![CDATA[In an effort to post a diversity of materials, I present this sad little scenario that popped into my head while studying:
]]></description>
			<content:encoded><![CDATA[<p>In an effort to post a diversity of materials, I present this sad little scenario that popped into my head while studying:<br />
<div id="attachment_59" class="wp-caption aligncenter" style="width: 435px"><a href="http://hale.quate.net/wp-content/uploads/2009/09/outcast-hypothesis.png"><img src="http://hale.quate.net/wp-content/uploads/2009/09/outcast-hypothesis.png" alt="Even scientists are mean sometimes" title="outcast-hypothesis" width="425" height="425" class="size-full wp-image-59" /></a><p class="wp-caption-text">Even scientists are mean sometimes</p></div></p>
]]></content:encoded>
			<wfw:commentRss>http://hale.quate.net/?feed=rss2&amp;p=58</wfw:commentRss>
		</item>
		<item>
		<title>Simple Platformer Prototypes</title>
		<link>http://hale.quate.net/?p=41</link>
		<comments>http://hale.quate.net/?p=41#comments</comments>
		<pubDate>Tue, 12 May 2009 07:26:24 +0000</pubDate>
		<dc:creator>chale</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

		<guid isPermaLink="false">http://hale.quate.net/?p=41</guid>
		<description><![CDATA[This week I present some of my prototype work for a very simple platformer. Tech demos have evolved from &#8220;very little at all&#8221; to &#8220;not much more&#8221; and have been used as a tool to learn both the C++ programming language and the SDL multimedia library.
Lazyfoo has a set of SDL tutorials that served as [...]]]></description>
			<content:encoded><![CDATA[<p>This week I present some of my prototype work for a very simple platformer. Tech demos have evolved from &#8220;very little at all&#8221; to &#8220;not much more&#8221; and have been used as a tool to learn both the C++ programming language and the <a href="http://en.wikipedia.org/wiki/Simple_DirectMedia_Layer">SDL multimedia library</a>.</p>
<p>Lazyfoo has <a href="http://lazyfoo.net/SDL_tutorials/index.php">a set of SDL tutorials</a> that served as a starting point for the very first prototype. <a href="http://www.tonypa.pri.ee/tbw/tut05.html">Tonypa&#8217;s</a> and <a href="http://oos.moxiecode.com/">OutsideOfSociety&#8217;s</a> tile-based game tutorials for Adobe Flash were also aiding in this development process. The first demo featured a red block that could move collide with black tiles.</p>
<div id="attachment_43" class="wp-caption aligncenter" style="width: 330px"><img src="http://hale.quate.net/wp-content/uploads/2009/05/platformer-demo1.png" alt="Initial demo" title="platformer-demo1" width="320" height="320" class="size-full wp-image-43" /><p class="wp-caption-text">Initial demo</p></div>
<p>A revision was made to make use of smaller sprite sizes to test how it scaled with a larger number of objects/tiles.</p>
<div id="attachment_44" class="wp-caption aligncenter" style="width: 310px"><img src="http://hale.quate.net/wp-content/uploads/2009/05/platformer-demo2-300x300.png" alt="Larger (320x320) platformer demo" title="platformer-demo2" width="300" height="300" class="size-medium wp-image-44" /><p class="wp-caption-text">Larger (320x320) platformer demo</p></div>
<p>As I began to get a better grasp of C++, I wanted to recreate what I had done. The demo was recreated with the inclusion of a level editor using point and click. Left click places a tiles and right click toggles between available tiles.</p>
<div id="attachment_45" class="wp-caption aligncenter" style="width: 266px"><img src="http://hale.quate.net/wp-content/uploads/2009/05/platformer-demo3.png" alt="Platformer editor" title="platformer-demo3" width="256" height="128" class="size-full wp-image-45" /><p class="wp-caption-text">Platformer editor</p></div>
<div id="attachment_46" class="wp-caption aligncenter" style="width: 266px"><img src="http://hale.quate.net/wp-content/uploads/2009/05/platformer-demo4.png" alt="Editor with a modified level" title="platformer-demo4" width="256" height="128" class="size-full wp-image-46" /><p class="wp-caption-text">Editor with a modified level</p></div>
<p>The next step was to place a character in the level and add collision detection with the tiles. This next screenshot shows a character that is controllable by the user. The red box indicates where a collision has occurred. The collision method was based off of the <a href="http://jnrdev.72dpiarmy.com/">jnrdev tutorials</a>. (In the process, I came across <a href="http://forum.72dpiarmy.com/viewtopic.php?f=3&#038;t=9927">some issues</a> with the tile collision method described by the tutorials.)</p>
<div id="attachment_47" class="wp-caption aligncenter" style="width: 310px"><a href="http://hale.quate.net/wp-content/uploads/2009/05/platformer-demo5.png"><img src="http://hale.quate.net/wp-content/uploads/2009/05/platformer-demo5-300x150.png" alt="The red box show environment collision" title="platformer-demo5" width="300" height="150" class="size-medium wp-image-47" /></a><p class="wp-caption-text">The red box show environment collision</p></div>
<p>This project has been abandoned for the time being to work on a top-down game called BAMA. The latest source code for this platformer is <a href="http://github.com/slythfox/platformer/tree/master">available via github</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://hale.quate.net/?feed=rss2&amp;p=41</wfw:commentRss>
		</item>
		<item>
		<title>Hello, Bama</title>
		<link>http://hale.quate.net/?p=26</link>
		<comments>http://hale.quate.net/?p=26#comments</comments>
		<pubDate>Sun, 03 May 2009 03:31:17 +0000</pubDate>
		<dc:creator>chale</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

		<guid isPermaLink="false">http://hale.quate.net/?p=26</guid>
		<description><![CDATA[I wanted to get involved in game programming.  This meant not using any engine that would make game development simplified because it would take away the very fundamentals I wanted to learn.
The browser-based games I have done in the past have been directed towards the design.  Since my focus this time is on [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to get involved in game programming.  This meant not using any engine that would make game development simplified because it would take away the very fundamentals I wanted to learn.</p>
<p>The browser-based games I have done in the past have been directed towards the design.  Since my focus this time is on game mechanics, I had to find something that is simple and fun.  (An RPG would be a bad example because it needs to be content rich.)  Many people might start their <a href="http://web.archive.org/web/20051104034215/www.lupinegames.com/articles/path_to_dev.html">first game with a Tetris clone</a>, but I feel this game has been overdone.  Still, modeling after another game would require less game design work.</p>
<p>Let me introduce one of my several game mockups:  Bama, or Bam Arena, is top-down <a href="http://en.wikipedia.org/wiki/Bomberman">Bomberman</a>-style game.</p>
<div id="attachment_27" class="wp-caption aligncenter" style="width: 394px"><img src="http://hale.quate.net/wp-content/uploads/2009/05/titlescreen.png" alt="Bama title screen mockup" title="titlescreen" width="384" height="256" class="size-full wp-image-27" /><p class="wp-caption-text">Bama title screen mockup</p></div>
<p>The basic functionality is simple enough.  The player moves through the level placing bombs.  Bombs destroy tiles and other bombs.  Destroyed titles may reveal power ups to increase bomb count or flame strength.  The player must complete a task in a set amount of time, such as reaching a door.  Later possibilities include additional power ups, enemies, multiplayer, and specialized tiles like teleporters and pads that force the player in one direction.</p>
<p><Proposal image><br />
<div id="attachment_28" class="wp-caption aligncenter" style="width: 310px"><a href="http://hale.quate.net/wp-content/uploads/2009/05/proposal.png"><img src="http://hale.quate.net/wp-content/uploads/2009/05/proposal-300x300.png" alt="Bama proposal document" title="proposal" width="300" height="300" class="size-medium wp-image-28" /></a><p class="wp-caption-text">Game proposal document - Click for larger</p></div></p>
<p>I like to keep things simple and yet visually appealing whenever possible.  I&#8217;m not a graphic artist, but I can pull a few things off.  As you can see in the gameplay mockup, everything is one solid color.</p>
<div id="attachment_29" class="wp-caption aligncenter" style="width: 310px"><a href="http://hale.quate.net/wp-content/uploads/2009/05/gameplay-mockup.png"><img src="http://hale.quate.net/wp-content/uploads/2009/05/gameplay-mockup-300x300.png" alt="Bama gameplay mockup" title="gameplay-mockup" width="300" height="300" class="size-medium wp-image-29" /></a><p class="wp-caption-text">Bama gameplay mockup</p></div>
]]></content:encoded>
			<wfw:commentRss>http://hale.quate.net/?feed=rss2&amp;p=26</wfw:commentRss>
		</item>
		<item>
		<title>Launching The Folio</title>
		<link>http://hale.quate.net/?p=1</link>
		<comments>http://hale.quate.net/?p=1#comments</comments>
		<pubDate>Fri, 01 May 2009 06:30:23 +0000</pubDate>
		<dc:creator>chale</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

		<guid isPermaLink="false">http://hale.quate.net/?p=1</guid>
		<description><![CDATA[My portfolio website, dubbed “Hale’s Folio,” has been launched into the real world like a young frog taking its first step on land. (Please excuse the horrible simile.) I thought I’d take a moment and explain the process behind how I came up with this portfolio layout.
All layouts spring from some sort of inspiration. For [...]]]></description>
			<content:encoded><![CDATA[<p>My portfolio website, dubbed “Hale’s Folio,” has been launched into the real world like a young frog taking its first step on land. (Please excuse the horrible simile.) I thought I’d take a moment and explain the process behind how I came up with this portfolio layout.</p>
<p>All layouts spring from some sort of inspiration. For this one, I came across <a href="http://stopdesign.com/">Douglas Bowman’s stopdesign</a>. The design used several color schemes of the same layout for different pages. His brown rendition was particularly interesting because brown is not a common primary color, and yet it worked very well.</p>
<div id="attachment_4" class="wp-caption aligncenter" style="width: 310px"><a href="http://stopdesign.com/"><img class="size-medium wp-image-4" title="stopdesign" src="http://hale.quate.net/wp-content/uploads/2009/05/stopdesign-300x182.png" alt="stopdesign" width="300" height="182" /></a><p class="wp-caption-text">Douglas Bowman’s stopdesign</p></div>
<p>As I was playing around with my own take of a brown layout, I recalled having taken a picture of a gourmet French dark chocolate bar. The chocolate wrapper provides many of the colors as well as the logo design employed in this layout.</p>
<div id="attachment_5" class="wp-caption aligncenter" style="width: 310px"><a href="http://hale.quate.net/wp-content/uploads/2009/05/choco2.png"><img class="size-medium wp-image-5" title="choco2" src="http://hale.quate.net/wp-content/uploads/2009/05/choco2-300x225.png" alt="French chocolate bar used as design inspiration" width="300" height="225" /></a><p class="wp-caption-text">French chocolate bar used as design inspiration</p></div>
<p>The following is the final design as it appeared before its conversion as a WordPress theme:</p>
<div id="attachment_6" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-6" title="hale_folio_original" src="http://hale.quate.net/wp-content/uploads/2009/05/hale_folio_original-300x172.png" alt="Final layout design" width="300" height="172" /><p class="wp-caption-text">Final layout design</p></div>
<p>Reflecting upon the design, my primary criticism is that it isn’t as sharp/bright as it should be. This layout may evolve in the precedent to address this and other small issues I have yet to iron out.</p>
]]></content:encoded>
			<wfw:commentRss>http://hale.quate.net/?feed=rss2&amp;p=1</wfw:commentRss>
		</item>
	</channel>
</rss>
