<?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>www.sjwaller.com &#187; Projects</title>
	<atom:link href="http://www.sjwaller.com/category/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sjwaller.com</link>
	<description></description>
	<lastBuildDate>Wed, 07 Dec 2011 18:40:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Itchy Interactive</title>
		<link>http://www.sjwaller.com/projects/iphone/itchy-interactive/</link>
		<comments>http://www.sjwaller.com/projects/iphone/itchy-interactive/#comments</comments>
		<pubDate>Mon, 07 Mar 2011 15:28:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.sjwaller.com/?p=468</guid>
		<description><![CDATA[<a href="http://www.sjwaller.com/projects/iphone/itchy-interactive/"><img align="right" hspace="5" width="85" height="85" src="http://www.sjwaller.com/wp-content/uploads/2011/03/logo-150x150.png" class="alignright tfe wp-post-image" alt="logo" title="logo" /></a>Itchy Interactive is a company I set up as an outlet/support website for all my iPhone projects. So if you are interested in my mobile/iPhone developments then perhaps you might want to check it out: http://www.itchyinteractive.com There is also a blog that I keep up to date while developing new products.]]></description>
			<content:encoded><![CDATA[<p>Itchy Interactive is a company I set up as an outlet/support website for all my iPhone projects. So if you are interested in my mobile/iPhone developments then perhaps you might want to check it out: </p>
<p><a href="http://www.itchyinteractive.com">http://www.itchyinteractive.com</a></p>
<p>There is also a <a href="http://www.itchyinteractive.com/blog">blog</a> that I keep up to date while developing new products.</p>

<a href='http://www.sjwaller.com/projects/iphone/itchy-interactive/attachment/logo/' title='logo'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2011/03/logo-150x150.png" class="attachment-thumbnail" alt="logo" title="logo" /></a>

<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.sjwaller.com/projects/iphone/itchy-interactive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Poker Yourself!</title>
		<link>http://www.sjwaller.com/projects/iphone/poker-yourself/</link>
		<comments>http://www.sjwaller.com/projects/iphone/poker-yourself/#comments</comments>
		<pubDate>Wed, 27 Oct 2010 16:46:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.sjwaller.com/?p=454</guid>
		<description><![CDATA[<a href="http://www.sjwaller.com/projects/iphone/poker-yourself/"><img align="right" hspace="5" width="85" height="85" src="http://www.sjwaller.com/wp-content/uploads/2010/10/mzl.aocqikhr.320x480-75-150x150.jpg" class="alignright tfe wp-post-image" alt="mzl.aocqikhr.320x480-75" title="mzl.aocqikhr.320x480-75" /></a><b>On a train, in the car or waiting for your loved one to come home from work? Then why not try and Poker Yourself!</b>

Poker Yourself is an Open Feint enabled Texas Hold ‘Em style poker solitaire game for the iPhone. Featuring online leaderboards, tons of achievements and customization, Poker Yourself will keep you amused for hours. ]]></description>
			<content:encoded><![CDATA[<p><b>On a train, in the car or waiting for your loved one to come<br />
home from work? Then why not try and Poker Yourself!</b></p>
<p>Poker Yourself is an Open Feint enabled Texas Hold ‘Em style poker solitaire game for the iPhone. </p>
<p>Featuring online leaderboards, tons of achievements and customization, Poker Yourself will keep you amused for hours. </p>
<h4>Features</h4>
<ul>
<li>Unlock achievement awards using OpenFeint.</li>
<li>Biggest Banks leaderboard and Historic Highs using OpenFeint.</li>
<li>Supports portrait and landscape autorotation.</li>
<li>Compatible with iPhone and iPod Touch.</li>
<li>Battery friendly.</li>
</ul>
<p>You can check it out here: <a href="http://www.itchyinteractive.com/poker-yourself/">http://www.itchyinteractive.com/poker-yourself/</a></p>

<a href='http://www.sjwaller.com/projects/iphone/poker-yourself/attachment/mzl-aocqikhr-320x480-75/' title='mzl.aocqikhr.320x480-75'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/10/mzl.aocqikhr.320x480-75-150x150.jpg" class="attachment-thumbnail" alt="mzl.aocqikhr.320x480-75" title="mzl.aocqikhr.320x480-75" /></a>
<a href='http://www.sjwaller.com/projects/iphone/poker-yourself/attachment/mzl-rhhfzfcq-320x480-75/' title='mzl.rhhfzfcq.320x480-75'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/10/mzl.rhhfzfcq.320x480-75-150x150.jpg" class="attachment-thumbnail" alt="mzl.rhhfzfcq.320x480-75" title="mzl.rhhfzfcq.320x480-75" /></a>
<a href='http://www.sjwaller.com/projects/iphone/poker-yourself/attachment/mzl-hslddunn-320x480-75/' title='mzl.hslddunn.320x480-75'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/10/mzl.hslddunn.320x480-75-150x150.jpg" class="attachment-thumbnail" alt="mzl.hslddunn.320x480-75" title="mzl.hslddunn.320x480-75" /></a>
<a href='http://www.sjwaller.com/projects/iphone/poker-yourself/attachment/mzl-gdruvjnw-320x480-75/' title='mzl.gdruvjnw.320x480-75'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/10/mzl.gdruvjnw.320x480-75-150x150.jpg" class="attachment-thumbnail" alt="mzl.gdruvjnw.320x480-75" title="mzl.gdruvjnw.320x480-75" /></a>
<a href='http://www.sjwaller.com/projects/iphone/poker-yourself/attachment/mzl-mcpvrbnc-320x480-75/' title='mzl.mcpvrbnc.320x480-75'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/10/mzl.mcpvrbnc.320x480-75-150x150.jpg" class="attachment-thumbnail" alt="mzl.mcpvrbnc.320x480-75" title="mzl.mcpvrbnc.320x480-75" /></a>

<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.sjwaller.com/projects/iphone/poker-yourself/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>1st iPhone app &#8211; Part 3 &#8211; 3D Shoot &#8216;Em Up</title>
		<link>http://www.sjwaller.com/projects/iphone/1st-iphone-app-part-3-3d-shoot-em-up/</link>
		<comments>http://www.sjwaller.com/projects/iphone/1st-iphone-app-part-3-3d-shoot-em-up/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 00:44:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.sjwaller.com/?p=369</guid>
		<description><![CDATA[<a href="http://www.sjwaller.com/projects/iphone/1st-iphone-app-part-3-3d-shoot-em-up/"><img align="right" hspace="5" width="85" height="85" src="http://www.sjwaller.com/wp-content/uploads/2010/03/last_stand_a-150x150.jpg" class="alignright tfe wp-post-image" alt="last_stand_a" title="last_stand_a" /></a>Things have progressed somewhat from the previous installment and it is starting to really look like a playable game. The major new code includes a SkyBox for rendering the backdrop, enemy cubes to shoot at, collision detection to register a hit and also MP3 playback and SFX.
]]></description>
			<content:encoded><![CDATA[<p><span style="float: right; margin-left: 20px;"><span class="youtube">
<object type="application/x-shockwave-flash" width="425" height="355" data="http://www.youtube.com/v/JoejeOnRzGg?color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;rel=1">
<param name="movie" value="http://www.youtube.com/v/JoejeOnRzGg?color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;rel=1" />
<param name="allowFullScreen" value="true" />
<param name="wmode" value="transparent" />
</object>
</span><p><a href="http://www.youtube.com/watch?v=JoejeOnRzGg">www.youtube.com/watch?v=JoejeOnRzGg</a></p></span></p>
<p>Now I&#8217;m &#8220;in-between&#8221; jobs &#8230; I&#8217;ve had a few days to put some effort into iPhone development again &#8230; and here&#8217;s a video of where things stand.</p>
<p>As you can see things have progressed somewhat from the previous installment and it is starting to really look like a playable game. The major new code includes a SkyBox for rendering the backdrop, enemy cubes to shoot at, collision detection to register a hit and also MP3 playback and SFX.</p>
<h4>SkyBox</h4>
<p>The SkyBox routine is basically as simple as rendering a large cube around the whole scene and applying a texture on the inside. This gives the effect of a nice backdrop whichever way you turn. For the time-being, I&#8217;ve used a jpg that I found on t&#8217;interwebs that was pre-prepared for use as a SkyBox in CounterStrike.</p>
<h4>Collision Detection</h4>
<p>There are a total of 10 enemy cubes rendered at any one time. Enemies are randomly scattered in front of you and gradually make there way toward you. If you shoot them, a SFX is played, your score increases by 10 and an explosion routine ensues. Once the explosion is over, the enemy re-spawns randomly somewhere in front of you and again makes it&#8217;s way toward you. The explosion routine is basically 10 small cubes which get assigned a random direction vector from the point of impact. These &#8216;explode&#8217; away for about 100 frames. Well, I think it&#8217;s pretty sweet effect! If the enemy gets too close to you a red flash appears on the screen, your score is lowered by 100 and the enemy re-spawns.</p>
<p>The collision detection routine is a basic Bounding Sphere as described here: <a title="http://www.gamedev.net/reference/articles/article1234.asp" href="http://www.gamedev.net/reference/articles/article1234.asp" target="_blank">http://www.gamedev.net/reference/articles/article1234.asp</a>. As the bullets move pretty fast, I used the advanced version to pick up collisions if say a bullet passes &#8216;through&#8217; the bounding sphere over two frames.</p>
<h4>Sound</h4>
<p>For MP3 playback, I used the audio queue service in the Apple AudioKit framework. At the moment, I start my favourite Rob Hubbard C64 &#8216;Lightforce&#8217; MP3 playing in the game initialization method. The SFX comprise and explosion and a gunshot wavefile I downloaded from <a title="www.freesound.org" href="www.freesound.org" target="_blank">www.freesound.org</a>. These are played using the SoundEffect class found in the BubbleLevel SDK example.</p>
<h4>Next time &#8230;</h4>
<p>My next installment should see a variety of enemies with different routines such as weeving about and firing back, a shield to deflect enemy fire, a level system and possibly some kind of terrain (I&#8217;m working on a simple heightmap terrain routine but didn&#8217;t get it looking satisfactory for this update).</p>
<p>Anyway -- sorry about the hectic sound if you listened to the video on headphones &#8230; oh and I gave the game a work-in-progress title of &#8230; &#8220;Last Stand&#8221;  but it seems there&#8217;s already an iPod touch game called that &#8230; anyone have any other ideas feel free to leave a comment?</p>

<a href='http://www.sjwaller.com/projects/iphone/1st-iphone-app-part-3-3d-shoot-em-up/attachment/last_stand_a/' title='last_stand_a'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/03/last_stand_a-150x150.jpg" class="attachment-thumbnail" alt="last_stand_a" title="last_stand_a" /></a>

<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.sjwaller.com/projects/iphone/1st-iphone-app-part-3-3d-shoot-em-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>1st iPhone app &#8211; Part 2 &#8211; bullets</title>
		<link>http://www.sjwaller.com/projects/iphone/1st-iphone-app-part-2-bullets/</link>
		<comments>http://www.sjwaller.com/projects/iphone/1st-iphone-app-part-2-bullets/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 16:41:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://robots.sjwaller.com/?p=261</guid>
		<description><![CDATA[<a href="http://www.sjwaller.com/projects/iphone/1st-iphone-app-part-2-bullets/"><img align="right" hspace="5" width="85" height="85" src="http://www.sjwaller.com/wp-content/uploads/2010/03/1stiphonept2-150x150.jpg" class="alignright tfe wp-post-image" alt="1stiphonept2" title="1stiphonept2" /></a>I've spent the last few weeks busying myself for the move to Brighton in December so not really had a great deal of time to dedicate to iPhone development. What I have done though is to tidy up my source code quite a bit.]]></description>
			<content:encoded><![CDATA[<p><span style="float: right; margin-left: 20px;"><span class="youtube">
<object type="application/x-shockwave-flash" width="425" height="355" data="http://www.youtube.com/v/1wAro0uvFaU?color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;rel=1">
<param name="movie" value="http://www.youtube.com/v/1wAro0uvFaU?color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;rel=1" />
<param name="allowFullScreen" value="true" />
<param name="wmode" value="transparent" />
</object>
</span><p><a href="http://www.youtube.com/watch?v=1wAro0uvFaU">www.youtube.com/watch?v=1wAro0uvFaU</a></p></span></p>
<p>Still not really what you might call a &#8216;game&#8217; but it&#8217;s starting to take shape &#8230; I think!</p>
<p>I&#8217;ve spent the last few weeks busying myself for the move to Brighton in December so not really had a great deal of time to dedicate to iPhone development. What I have done though is to tidy up my source code quite a bit.</p>
<p>Objective-C is quite a bit different to what I&#8217;m used to, so I&#8217;ve split the code in two. Basically, all interaction with the iPhone is handled by Objective-C which passes off the update/rendering work to the C++/OpenGL game code: The current state of inputs such as accelerometer and touch is sent to the C++ gameUpdate method which updates the game state. The gameDraw routine just handles OpenGL rendering as you would expect.</p>
<p>Hopefully I can get some more work done as soon as possible &#8230; For the third installment, I&#8217;m planning to get some kind of enemy to shoot at -- which will involve basic collision detection. Part four will probably be taking stock and sketching out a game concept etc.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.sjwaller.com/projects/iphone/1st-iphone-app-part-2-bullets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>1st iPhone app &#8211; Part 1 &#8211; introduction</title>
		<link>http://www.sjwaller.com/projects/iphone/1st-iphone-app-part-1-introduction/</link>
		<comments>http://www.sjwaller.com/projects/iphone/1st-iphone-app-part-1-introduction/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 16:40:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://robots.sjwaller.com/?p=259</guid>
		<description><![CDATA[<a href="http://www.sjwaller.com/projects/iphone/1st-iphone-app-part-1-introduction/"><img align="right" hspace="5" width="85" height="85" src="http://www.sjwaller.com/wp-content/uploads/2010/03/1stiphonept1-150x150.jpg" class="alignright tfe wp-post-image" alt="1stiphonept1" title="1stiphonept1" /></a>Here is a quick video of my 1st iPhone app. In terms of functionality, there's nothing much at the moment - but the fundamentals are at least in place.]]></description>
			<content:encoded><![CDATA[<p><span style="float: right; margin-left: 20px;"><span class="youtube">
<object type="application/x-shockwave-flash" width="425" height="355" data="http://www.youtube.com/v/gsQhGDtZhVE?color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;rel=1">
<param name="movie" value="http://www.youtube.com/v/gsQhGDtZhVE?color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;rel=1" />
<param name="allowFullScreen" value="true" />
<param name="wmode" value="transparent" />
</object>
</span><p><a href="http://www.youtube.com/watch?v=gsQhGDtZhVE">www.youtube.com/watch?v=gsQhGDtZhVE</a></p></span></p>
<p>Here is a quick video of my 1st iPhone app. In terms of functionality, there&#8217;s nothing much at the moment -- but the fundamentals are at least in place:</p>
<p>You may recognise my &#8216;signature&#8217; blue vector grid on a dark blue background &#8230; which is basically my starting point for nearly all my OpenGl based projects. The app was written using Apple&#8217;s X-Code IDE and uses OpenGl ES to render a 3D grid. I&#8217;m adjusting the &#8216;look-at&#8217; position of the camera using 2 of the 3 accelerometers. The 2D elements comprise a dragable yellow square which in turn updates the x and y values rendered using the Texture2D class.</p>
<p>So it&#8217;s nothing much at the moment but hopefully it will develop into a fun 3D iPhone game &#8230; I&#8217;ll be keeping a blog of developments here on my website.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.sjwaller.com/projects/iphone/1st-iphone-app-part-1-introduction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Poker Yourself &#8211; Facebook</title>
		<link>http://www.sjwaller.com/projects/facebook/poker-yourself-facebook/</link>
		<comments>http://www.sjwaller.com/projects/facebook/poker-yourself-facebook/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 16:38:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Facebook]]></category>

		<guid isPermaLink="false">http://robots.sjwaller.com/?p=257</guid>
		<description><![CDATA[<a href="http://www.sjwaller.com/projects/facebook/poker-yourself-facebook/"><img align="right" hspace="5" width="85" height="85" src="http://www.sjwaller.com/wp-content/uploads/2010/03/PokerYourself3-150x150.jpg" class="alignright tfe wp-post-image" alt="PokerYourself3" title="PokerYourself3" /></a>Poker Yourself is a simple Texas Hold-Em style poker solitaire game. I originally released the game in 2008 when it was called 'crap poker'. However, now I have a new host I decided to fix it up using the latest Facebook API and give it a more acceptable name.]]></description>
			<content:encoded><![CDATA[<table>
<tbody>
<tr>
<th>current version</th>
<td>1.0</td>
</tr>
<tr>
<th>link</th>
<td><a href="http://apps.facebook.com/pokeryourself">facebook</a></td>
</tr>
<tr>
<th>sourcecode</th>
<td>not available</td>
</tr>
<tr>
<th>release date</th>
<td>September, 2009</td>
</tr>
<tr>
<th>platform</th>
<td>Facebook</td>
</tr>
<tr>
<th>language</th>
<td>Java JSP/JPA</td>
</tr>
<tr>
<th>description</th>
<td colspan="2">Bored at work? Why not waste your time with this implementation of a Texas Hold-Em style poker solitaire game?</td>
</tr>
</tbody>
</table>
<div>
<h3>What is it?</h3>
<p>Poker Yourself is a simple Texas Hold-Em style poker solitaire game. I originally released the game in 2008 when it was called &#8216;crap poker&#8217;. However, now I have a new host I decided to fix it up using the latest Facebook API and give it a more acceptable name.</p>
<p>The card engine was actually one of my first exercises in learning Object Oriented Java programming. The gameplay was based on some source code I found on the internet while investigating card game systems.</p>
<h3>What do I do?</h3>
<p>The &#8216;Pre-flop&#8217; lets you place £4 of bets across your 4 hands. After the &#8216;River&#8217; you earn the total bet for the winning hand but lose the others.</p>

<a href='http://www.sjwaller.com/projects/facebook/poker-yourself-facebook/attachment/pokeryourself1/' title='PokerYourself1'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/03/PokerYourself1-150x150.jpg" class="attachment-thumbnail" alt="PokerYourself1" title="PokerYourself1" /></a>
<a href='http://www.sjwaller.com/projects/facebook/poker-yourself-facebook/attachment/pokeryourself2/' title='PokerYourself2'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/03/PokerYourself2-150x150.jpg" class="attachment-thumbnail" alt="PokerYourself2" title="PokerYourself2" /></a>
<a href='http://www.sjwaller.com/projects/facebook/poker-yourself-facebook/attachment/pokeryourself3/' title='PokerYourself3'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/03/PokerYourself3-150x150.jpg" class="attachment-thumbnail" alt="PokerYourself3" title="PokerYourself3" /></a>

</div>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.sjwaller.com/projects/facebook/poker-yourself-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>blockShifter</title>
		<link>http://www.sjwaller.com/projects/open-gl/blockshifter/</link>
		<comments>http://www.sjwaller.com/projects/open-gl/blockshifter/#comments</comments>
		<pubDate>Wed, 03 Jan 2007 16:32:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Open GL]]></category>

		<guid isPermaLink="false">http://robots.sjwaller.com/?p=249</guid>
		<description><![CDATA[<a href="http://www.sjwaller.com/projects/open-gl/blockshifter/"><img align="right" hspace="5" width="85" height="85" src="http://www.sjwaller.com/wp-content/uploads/2010/03/blockShifter1-150x150.jpg" class="alignright tfe wp-post-image" alt="blockShifter1" title="blockShifter1" /></a>An OpenGL based application written in C++. The main idea is you have to shift the blocks around a grid to match the pattern outlined on the floor.]]></description>
			<content:encoded><![CDATA[<table>
<tbody>
<tr>
<th>current version</th>
<td>0.1.6</td>
</tr>
<tr>
<th>binary</th>
<td><a href="http://www.sjwaller.com/resources/projects/blockShifter/binary/blockShifter016.zip">download</a>(149kb)</td>
</tr>
<tr>
<th>sourcecode</th>
<td>not available</td>
</tr>
<tr>
<th>start date</th>
<td>January, 2007</td>
</tr>
<tr>
<th>platform</th>
<td>Windows</td>
</tr>
<tr>
<th>language</th>
<td>C++ (OpenGL)</td>
</tr>
<tr>
<th>description</th>
<td colspan="2">An OpenGL based application written in C++. The main idea is you have to shift the blocks around a grid to match the pattern outlined on the floor.</td>
</tr>
</tbody>
</table>
<div>
<h3>What is it?</h3>
<p>My first attempt at making a game in OpenGL and C++. This took me about a month to realise, learn and program &#8211; I spent most of the Christmas break doing this while visiting my mum. The game isn&#8217;t supposed to be amazing and it only has eight levels. It was in fact an exercise in putting together a game with multiple levels etc. Funnily enough the hardest thing I found wasn&#8217;t so much getting my head around OpenGL or C++, but trying to work out a good control mechanism.</p>
<p>Anyway, feel free to download and have a play.</p>
<h3>Where can I get it?</h3>
<p>Click the link next to &#8216;binary&#8217; in the project information box. I haven&#8217;t made the sourcecode available yet as it&#8217;s much too buggy in its current state. However, if I ever go back to fix the issues previously mentioned then I may well take the time to clean it up and make it available.</p>
<h3>What do I do?</h3>
<p>The basic gameplay involves moving blocks around the grid to fill up the pattern outlined in blue.</p>
<h3>What are the controls?</h3>
<ul>
<li>Q &#8211; rotate selected piece left</li>
<li>W &#8211; rotate selected piece right</li>
<li>A and S &#8211; cycle pieces</li>
<li>Cursor Keys &#8211; move selected piece</li>
</ul>
</div>
<div>

<a href='http://www.sjwaller.com/projects/open-gl/blockshifter/attachment/blockshifter1/' title='blockShifter1'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/03/blockShifter1-150x150.jpg" class="attachment-thumbnail" alt="blockShifter1" title="blockShifter1" /></a>
<a href='http://www.sjwaller.com/projects/open-gl/blockshifter/attachment/blockshifter2/' title='blockShifter2'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/03/blockShifter2-150x150.jpg" class="attachment-thumbnail" alt="blockShifter2" title="blockShifter2" /></a>
<a href='http://www.sjwaller.com/projects/open-gl/blockshifter/attachment/blockshifter3/' title='blockShifter3'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/03/blockShifter3-150x150.jpg" class="attachment-thumbnail" alt="blockShifter3" title="blockShifter3" /></a>
<a href='http://www.sjwaller.com/projects/open-gl/blockshifter/attachment/blockshifter4/' title='blockShifter4'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/03/blockShifter4-150x150.jpg" class="attachment-thumbnail" alt="blockShifter4" title="blockShifter4" /></a>
<a href='http://www.sjwaller.com/projects/open-gl/blockshifter/attachment/blockshifter5/' title='blockShifter5'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/03/blockShifter5-150x150.jpg" class="attachment-thumbnail" alt="blockShifter5" title="blockShifter5" /></a>
<a href='http://www.sjwaller.com/projects/open-gl/blockshifter/attachment/blockshifter6/' title='blockShifter6'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/03/blockShifter6-150x150.jpg" class="attachment-thumbnail" alt="blockShifter6" title="blockShifter6" /></a>

</div>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.sjwaller.com/projects/open-gl/blockshifter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Island</title>
		<link>http://www.sjwaller.com/projects/open-gl/island/</link>
		<comments>http://www.sjwaller.com/projects/open-gl/island/#comments</comments>
		<pubDate>Wed, 12 Apr 2006 16:26:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Open GL]]></category>

		<guid isPermaLink="false">http://robots.sjwaller.com/?p=245</guid>
		<description><![CDATA[<a href="http://www.sjwaller.com/projects/open-gl/island/"><img align="right" hspace="5" width="85" height="85" src="http://www.sjwaller.com/wp-content/uploads/2010/03/island2-150x150.jpg" class="alignright tfe wp-post-image" alt="island2" title="island2" /></a>An OpenGL based application written in C++. An Ogre calculates a path to locate a target within randomly generated islands.]]></description>
			<content:encoded><![CDATA[<table>
<tbody>
<tr>
<th>current version</th>
<td>0.0.7</td>
</tr>
<tr>
<th>binary</th>
<td><a href="http://www.sjwaller.com/resources/projects/island/binary/island.0.0.7.zip">download</a> (561kb)</td>
</tr>
<tr>
<th>sourcecode</th>
<td>not available</td>
</tr>
<tr>
<th>start date</th>
<td>April, 2006</td>
</tr>
<tr>
<th>platform</th>
<td>Windows</td>
</tr>
<tr>
<th>language</th>
<td>C++ (OpenGL)</td>
</tr>
<tr>
<th>description</th>
<td>An OpenGL based application written in C++. An Ogre calculates a path to locate a target within randomly generated islands.</td>
</tr>
</tbody>
</table>
<h3>What is it?</h3>
<div>
<p>This demo combines various techniques including: loading/animating a 3D model (MD2 mesh), A* pathfinding algorithm, finite state machine, dynamic landscape generation.</p>
<h3>Overview:</h3>
<h4>A* PathFinding:</h4>
<p>After a few weeks of head scratching, I finally managed to get my head around the A* PathFinding algorithm &#8211; now I can successfully get my game entities to calculate a path to a target and avoid any &#8216;unwalkable&#8217; terrain/object.</p>
<p>I used the following tutorial to help understand this really helpful technique: <a title="A* Pathfinding for Beginners" href="http://www.policyalmanac.org/games/aStarTutorial.htm">A* Pathfinding for Beginners</a></p>
<h4>MD2 model animation:</h4>
<p>You may recognise the Ogre from that old chestnut that is Quake II. Well, you&#8217;re right &#8211; it is the same guy! Basically I&#8217;m not very good at modelling &#8211; or really I&#8217;m more interested in other aspects of game programming at the moment <img src='http://www.sjwaller.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  so I used this.</p>
<p>Also, the MD2 model format is really easy to deal with &#8211; and is covered extensively in the following book: <a title="OpenGL Game Programming" href="http://www.amazon.co.uk/exec/obidos/ASIN/0761533303/026-4825230-2818000">OpenGL Game Programming</a></p>
<h4>Finite State Machine (FSM):</h4>
<p>For the first time I&#8217;ve implemented a finite state machine (FSM). This makes it much easier to manage the different actions my game entities can be doing. In this demo the Ogre can be either Searching, Travelling, Resting or Wandering.</p>
<p>For more information on state machines and other AI techniques, I highly recommend reading through this site: <a title="ai-junkie" href="http://www.ai-junkie.com/">ai-junkie</a></p>
<h4>Dynamic Landscape:</h4>
<p>Finally, the dynamic landscape generation is based on a fractal generated heightmap feeding a triangle-strip mesh. This is textured with a simple bitmap filtered with different colours depending on height. The water is again a simple bitmap with a degree of transparency. The landscape isn&#8217;t really dynamic (although it is based on the destructabe landscape I used in my tank demo) &#8211; but it is randomly generated each time the map is reset. However, I am thinking of trying to get to grips with &#8216;Level of Detail&#8217; techniques to speed up the landscape rendering.</p>
<h3>Where can I get it?</h3>
<p>Click the link next to &#8216;binary&#8217; in the project information box. No sourcecode yet until it&#8217;s much tidier. You can however follow the links I mentioned earlier to find some great examples of the various techniques.</p>
<h3>What do I do?</h3>
<p>Just sit and watch the Ogre follow the path to the target &#8230; Joy! You can also interact to some extent:</p>
<h3>What are the controls?</h3>
<ul>
<li>SPACEBAR &#8211; regenerate map</li>
<li>M &#8211; overhead map on/off</li>
<li>I &#8211; information box on/off</li>
<li>C &#8211; mini-cam on/off</li>
<li>T &#8211; landscape texture on/off</li>
<li>1 &#8211; Search/Travel state</li>
<li>2 &#8211; Work state</li>
<li>3 &#8211; Wander state &#8211; use cursors to move</li>
</ul>
<h3>What next?</h3>
<ul>
<li>Find a better way to calculate the rotation toward the next waypoint!</li>
<li>Make the landscape render faster &#8211; implement LOD?</li>
<li>Create more actions depending on state. Want to get him doiong more interesting things than just finding a target.</li>
<li>Introduce more objects into the scene &#8211; trees, boulders etc. Use a secondary obstacle avoidance routine to work with the pathfinding to avoid these.</li>
<li>Get some sleep ..?</li>
</ul>
</div>

<a href='http://www.sjwaller.com/projects/open-gl/island/attachment/island1/' title='island1'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/03/island1-150x150.jpg" class="attachment-thumbnail" alt="island1" title="island1" /></a>
<a href='http://www.sjwaller.com/projects/open-gl/island/attachment/island2/' title='island2'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/03/island2-150x150.jpg" class="attachment-thumbnail" alt="island2" title="island2" /></a>
<a href='http://www.sjwaller.com/projects/open-gl/island/attachment/island3/' title='island3'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/03/island3-150x150.jpg" class="attachment-thumbnail" alt="island3" title="island3" /></a>
<a href='http://www.sjwaller.com/projects/open-gl/island/attachment/island4/' title='island4'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/03/island4-150x150.jpg" class="attachment-thumbnail" alt="island4" title="island4" /></a>
<a href='http://www.sjwaller.com/projects/open-gl/island/attachment/island5/' title='island5'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/03/island5-150x150.jpg" class="attachment-thumbnail" alt="island5" title="island5" /></a>
<a href='http://www.sjwaller.com/projects/open-gl/island/attachment/island6/' title='island6'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/03/island6-150x150.jpg" class="attachment-thumbnail" alt="island6" title="island6" /></a>

<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.sjwaller.com/projects/open-gl/island/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tanks</title>
		<link>http://www.sjwaller.com/projects/open-gl/tanks/</link>
		<comments>http://www.sjwaller.com/projects/open-gl/tanks/#comments</comments>
		<pubDate>Fri, 10 Mar 2006 16:20:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Open GL]]></category>

		<guid isPermaLink="false">http://robots.sjwaller.com/?p=226</guid>
		<description><![CDATA[<a href="http://www.sjwaller.com/projects/open-gl/tanks/"><img align="right" hspace="5" width="85" height="85" src="http://www.sjwaller.com/wp-content/uploads/2010/03/tanks1-150x150.jpg" class="alignright tfe wp-post-image" alt="tanks1" title="tanks1" /></a>Tanks is an attempt at using various techniques such as basic AI algorithms and projectile physics, destructable terrain etc.]]></description>
			<content:encoded><![CDATA[<table>
<tbody>
<tr>
<th>current version</th>
<td>0.4.2</td>
</tr>
<tr>
<th>binary</th>
<td><a href="http://www.sjwaller.com/resources/projects/tanks/binary/tanks.0.4.2.zip">download</a>(143kb)</td>
</tr>
<tr>
<th>sourcecode</th>
<td>not available</td>
</tr>
<tr>
<th>start date</th>
<td>March, 2006</td>
</tr>
<tr>
<th>platform</th>
<td>Windows</td>
</tr>
<tr>
<th>language</th>
<td>C++ (OpenGL)</td>
</tr>
<tr>
<th>description</th>
<td>Tanks is an attempt at using various techniques such as basic AI algorithms and projectile physics, destructable terrain etc.</td>
</tr>
</tbody>
</table>
<h3>What is it?</h3>
<p>Currently nothing much!</p>
<h3>Where can I get it?</h3>
<p>Click the link next to &#8216;binary&#8217; in the project information box.</p>
<h3>What do I do?</h3>
<p>Watch as the landscape becomes demolished as the fighting machines wreck their havoc. Gape in awe as the tanks locate their nearest neighbour, turn and shoot :-/</p>
<h3>What are the controls?</h3>
<ul>
<li> TAB &#8211; cycle tanks</li>
</ul>

<a href='http://www.sjwaller.com/projects/open-gl/tanks/attachment/tanks1/' title='tanks1'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/03/tanks1-150x150.jpg" class="attachment-thumbnail" alt="tanks1" title="tanks1" /></a>
<a href='http://www.sjwaller.com/projects/open-gl/tanks/attachment/tanks2/' title='tanks2'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/03/tanks2-150x150.jpg" class="attachment-thumbnail" alt="tanks2" title="tanks2" /></a>
<a href='http://www.sjwaller.com/projects/open-gl/tanks/attachment/tanks3/' title='tanks3'><img width="150" height="150" src="http://www.sjwaller.com/wp-content/uploads/2010/03/tanks3-150x150.jpg" class="attachment-thumbnail" alt="tanks3" title="tanks3" /></a>

<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.sjwaller.com/projects/open-gl/tanks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

