<?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>kometbomb &#187; Games</title> <atom:link href="http://kometbomb.net/category/games/feed/" rel="self" type="application/rss+xml" /><link>http://kometbomb.net</link> <description>Journal of my adventures in Programming, the Internet and Life.</description> <lastBuildDate>Wed, 16 Jun 2010 14:56:50 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.0.1</generator> <item><title>Review: The Last Arcadian</title><link>http://kometbomb.net/2010/03/10/the-last-arcadian/</link> <comments>http://kometbomb.net/2010/03/10/the-last-arcadian/#comments</comments> <pubDate>Tue, 09 Mar 2010 22:00:37 +0000</pubDate> <dc:creator>kometbomb</dc:creator> <category><![CDATA[Games]]></category> <category><![CDATA[Atari]]></category> <category><![CDATA[Atari ST]]></category> <category><![CDATA[Review]]></category> <category><![CDATA[Video]]></category> <category><![CDATA[Video games]]></category><guid
isPermaLink="false">http://kometbomb.net/?p=710</guid> <description><![CDATA[<strong>The Last Arcadian</strong> is one of those games that in hindsight are pretty strange stuff for a public domain or shareware title. Considering even in the early 1990s a 3D shooter was automatically rather cool and thus profitable, The Last Arcadian makes you think why it wasn't released commercially.]]></description> <content:encoded><![CDATA[<p><strong>The Last Arcadian</strong> is one of those games that in hindsight are pretty strange stuff for a public domain or shareware title. Considering even in the early 1990s a 3D shooter was automatically rather cool and thus profitable, The Last Arcadian makes you think why it wasn&#8217;t released commercially. It looks a bit dated even for a 1992 3D title but you have to keep in mind it is a one man show. A bit of money would have made it look much nicer. It could be compared to <em>Epic</em> but I&#8217;m not sure if that&#8217;s a compliment. I have seen worse &#8212; I have <em>paid</em> for worse.</p><p><object
width="500" height="400"><param
name="movie" value="http://www.youtube.com/v/PEISJq0oY_I&#038;fs=1"></param><param
name="allowFullScreen" value="true"></param><param
name="allowscriptaccess" value="always"></param><embed
src="http://www.youtube.com/v/PEISJq0oY_I&#038;fs=1" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p><p><small>(Another video below.)</small></p><p>The main idea is to go and destroy enemy bases while the enemy tries to do the same to you. The game is over if your base is destroyed. If you, flying a fighter, are killed, you will simply find yourself piloting a nearby fighter that was previously computer controlled. There are multiple wingmen flying around and if you watch the first video, they sometimes manage to win the game for you.</p><p>The enemy fighters are killed with lasers and homing rockets and the enemy base needs to be bombed. When you return to your base, you need to make sure nobody else is trying to dock at the same time; you have to request permission to land. You can also repair your fighter in the base and then return to the battle (to save the computer controlled fighters.) The bases can also fire cruise missiles that travel slowly and you need to escort them and also keep the enemy missiles away from your base.</p><p><object
width="500" height="400"><param
name="movie" value="http://www.youtube.com/v/9_YVTprBo8M&#038;fs=1"></param><param
name="allowFullScreen" value="true"></param><param
name="allowscriptaccess" value="always"></param><embed
src="http://www.youtube.com/v/9_YVTprBo8M&#038;fs=1" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p><p>Overall, the game is very nice. It is simple but has some quirky features and also some quite modern stuff like the zoom in your ship at the start of each level and the fact everything is three-dimensional. There is a feeling of immersion as the rest of the war goes on around you while you&#8217;re being resupplied &#8212; quite well done as I no longer have the imagination of a kid. If you&#8217;re a fan of the old 3D Star Wars shooters, you probably should check this out if you have an Atari ST lying around.</p><p>The game can be found on the ST Format 42 cover disk <a
href="http://stos.atari.st/stf.htm">available on this page</a>.</p><h3  class="related_post_title">You might also like...</h3><ul
class="related_post"><li><a
href="http://kometbomb.net/2010/03/03/review-starball/" title="Review: Starball">Review: Starball</a></li><li><a
href="http://kometbomb.net/2008/06/18/thrustlikes/" title="Thrustlikes">Thrustlikes</a></li><li><a
href="http://kometbomb.net/2008/03/09/dev-stories-from-the-past/" title="Dev Stories from the Past">Dev Stories from the Past</a></li><li><a
href="http://kometbomb.net/2009/09/22/introducing-my-latest-projects/" title="Introducing My Latest Projects">Introducing My Latest Projects</a></li><li><a
href="http://kometbomb.net/2008/04/10/rom-check-fail/" title="ROM CHECK FAIL">ROM CHECK FAIL</a></li></ul>]]></content:encoded> <wfw:commentRss>http://kometbomb.net/2010/03/10/the-last-arcadian/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Review: Starball</title><link>http://kometbomb.net/2010/03/03/review-starball/</link> <comments>http://kometbomb.net/2010/03/03/review-starball/#comments</comments> <pubDate>Tue, 02 Mar 2010 21:00:41 +0000</pubDate> <dc:creator>kometbomb</dc:creator> <category><![CDATA[Games]]></category> <category><![CDATA[Atari]]></category> <category><![CDATA[Atari ST]]></category> <category><![CDATA[Nostalgy]]></category> <category><![CDATA[Pinball]]></category> <category><![CDATA[Review]]></category> <category><![CDATA[Video]]></category> <category><![CDATA[Video games]]></category><guid
isPermaLink="false">http://kometbomb.net/?p=706</guid> <description><![CDATA[I used to read ST Format back when I had an Atari ST. Later in its existence the magazine started to include better and more complete games and other software on its cover disk, probably because of the Atari was dying and publishers decided to give away their assets (or more like the actual developers [...]]]></description> <content:encoded><![CDATA[<p>I used to read <em>ST Format</em> back when I had an Atari ST. Later in its existence the magazine started to include better and more complete games and other software on its cover disk, probably because of the Atari was dying and publishers decided to give away their assets (or more like the actual developers were able to secure rights to the software from the publishers and then give it away so the work wouldn&#8217;t be in vain.) Also, back in the day shareware meant you got the full software to play with and only then you had to decide whether to pay or not to pay for it &#8212; it wasn&#8217;t uncommon for that to be actually profitable. Whatever the reason, I wouldn&#8217;t have probably ever heard of some pretty awesome games.</p><p><object
width="500" height="400"><param
name="movie" value="http://www.youtube.com/v/j0jVAa5_e5I&#038;fs=1"></param><param
name="allowFullScreen" value="true"></param><param
name="allowscriptaccess" value="always"></param><embed
src="http://www.youtube.com/v/j0jVAa5_e5I&#038;fs=1" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p><p><strong>Starball</strong> was one of those games.</p><p>On the Amiga, there were a few excellent pinball games by <em>Digital Illusions</em>, including <em>Pinball Dreams</em> and <em>Pinball Fantasies</em>. On the Atari ST, there were practically no modern pinball games apart from the STE title <em>Obsession</em> which was most likely created to cash in thanks to the surging interest in pinball games thanks to DI and also because the STE was capable to give the same smoothness as on the Amiga. But for the plain vanilla ST users, there still were none. At least until Starball, that is.</p><p>Starball is a modern pinball game &#8212; as in the screen scrolls and it was made in the 1990s &#8212; but it&#8217;s very different from the look and feel of the relatively realistic pinball games on the Amiga. The gameplay and the table is very similar to the <em>Crush</em> series on the PC Engine (Turbografx-16) which realized a pinball video game doesn&#8217;t have to simulate a real pinball table and added common elements from video games in general. While Pinball Dreams had very smooth gameplay based on getting accurate chains of ramp runs, in Starball the ball is used to smash flying spaceships, cultists and Jimmy Hill&#8217;s chin. In addition, Starball has three smaller areas with their own set of flippers and even graphical theme and when you miss and the ball will simply fall down, it will only move your one area down. Unless you are already in the bottom area.</p><p>In the middle area, you are building a space ship one part at a time and trying to stop turrets destroying the spaceship parts. On top level, you try to crush little guys walking in circles and there&#8217;s a slimy face in the center. And the face will get slimier each time you kill all the little guys. And the bottom area has a huge fly-eyed alien and more explosions. The fly alien thing also contributes to the game in that its mouth takes you to a bonus level. There are at least two different bonus levels, in general they are much like the small Mario level in NES <em>Pinball</em> keeping in the overall pinball theme.</p><p>While the game is very enjoyable at least as a nostalgy trip, there are some faults. First, the gameplay isn&#8217;t nearly as fluid as what the standard set by Dreams was at the time. The flippers feel sluggish and sometimes the ball bounces all weird. However, you can easily adapt to the slight delay in the flipper hit. The table area isn&#8217;t terribly interesting in that there are no huge ramps and other stuff the Amiga games did well but the grimy graphics and the self-awareness of the limitations makes the game stand out.</p><p>The game can be found on the ST Format 64 cover disk <a
href="http://stos.atari.st/stf.htm">available on this page</a>.</p><h3  class="related_post_title">You might also like...</h3><ul
class="related_post"><li><a
href="http://kometbomb.net/2010/03/10/the-last-arcadian/" title="Review: The Last Arcadian">Review: The Last Arcadian</a></li><li><a
href="http://kometbomb.net/2008/06/18/thrustlikes/" title="Thrustlikes">Thrustlikes</a></li><li><a
href="http://kometbomb.net/2008/03/09/dev-stories-from-the-past/" title="Dev Stories from the Past">Dev Stories from the Past</a></li><li><a
href="http://kometbomb.net/2008/04/10/rom-check-fail/" title="ROM CHECK FAIL">ROM CHECK FAIL</a></li><li><a
href="http://kometbomb.net/2009/09/22/introducing-my-latest-projects/" title="Introducing My Latest Projects">Introducing My Latest Projects</a></li></ul>]]></content:encoded> <wfw:commentRss>http://kometbomb.net/2010/03/03/review-starball/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Introducing My Latest Projects</title><link>http://kometbomb.net/2009/09/22/introducing-my-latest-projects/</link> <comments>http://kometbomb.net/2009/09/22/introducing-my-latest-projects/#comments</comments> <pubDate>Mon, 21 Sep 2009 22:34:30 +0000</pubDate> <dc:creator>kometbomb</dc:creator> <category><![CDATA[Games]]></category> <category><![CDATA[Nonsense]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[API]]></category> <category><![CDATA[Game programming]]></category> <category><![CDATA[Retro gaming]]></category> <category><![CDATA[SDL]]></category> <category><![CDATA[Source code]]></category> <category><![CDATA[Video]]></category> <category><![CDATA[Video games]]></category><guid
isPermaLink="false">http://kometbomb.net/?p=611</guid> <description><![CDATA[<em>... Or, How to Procrastinate Productively.</em> <a
href="http://kometbomb.net/wp-content/uploads/2009/09/klystrack3.png"><img
src="http://kometbomb.net/wp-content/uploads/2009/09/klystrack3-250x187.png" alt="klystrack3" title="klystrack3" width="192" height="144" class="alignright size-thumbnail wp-image-628" style="width:192px;height:144px" /></a>I decided to make one of my current projects open source and post them on Google Code just for fun. The project is a toolchain that I'm using to remake <em>Thrust</em>. In reality, I decided to divide the project into two separate projects: <a
href="http://code.google.com/p/klystron/">the actual game engine</a> and related tools, and <a
href="http://code.google.com/p/klystrack/">a music editor</a> that uses the engine. ]]></description> <content:encoded><![CDATA[<p><em>&#8230; Or, How to Procrastinate Productively.</em></p><p><a
href="http://kometbomb.net/wp-content/uploads/2009/09/klystrack3.png"><img
src="http://kometbomb.net/wp-content/uploads/2009/09/klystrack3-250x187.png" alt="klystrack3" title="klystrack3" width="250" height="187" class="alignright size-thumbnail wp-image-628" /></a></p><p>I decided to make one of my current projects open source and post them on Google Code just for fun. The project is a tool chain that I&#8217;m using to remake <em>Thrust</em>. In reality, I decided to divide the project into two separate projects: <a
href="http://code.google.com/p/klystron/">the actual game engine</a> (called <em>klystron</em>) and related tools, and <a
href="http://code.google.com/p/klystrack/">a music editor</a> that uses the engine.</p><p>Here are two videos I made a while ago that demonstrate the engine. The first is the music editor (called <em>klystrack</em>) &#8212; it&#8217;s much less ugly at the moment but the sound synthesis is the same, and that&#8217;s what matters:</p><p
class="aligncenter" style="text-align:center"><object
width="480" height="385"><param
name="movie" value="http://www.youtube.com/v/mJewnkOW42I&#038;hl=en&#038;fs=1&#038;rel=0&#038;color1=0xe1600f&#038;color2=0xfebd01"></param><param
name="allowFullScreen" value="true"></param><param
name="allowscriptaccess" value="always"></param><embed
src="http://www.youtube.com/v/mJewnkOW42I&#038;hl=en&#038;fs=1&#038;rel=0&#038;color1=0xe1600f&#038;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p><p>The sound engine (&#8220;Cyd&#8221;) is basically a very simple software synthesizer with capabilities comparable to the SID or any 8-bit machine from the 80s. The editor is a fairly standard tracker, much like <a
href="http://en.wikipedia.org/wiki/GoatTracker">GoatTracker</a>.</p><p>The graphics half of the engine is basically a wrapper around a quite fast collision detection system (pixel-accurate, or it wouldn&#8217;t be much good for a thrustlike) built on <a
href="http://www.libsdl.org">SDL</a>. It also does background collisions and drawing as well. As you may have guessed, the whole point is to provide a limited but still helpful set of routines that are useful for creating 2D games not unlike what video games were in 1991.</p><p>And, here&#8217;s a proof I&#8217;m actually working on the actual game (the sound effects are created in real time by the sound engine):</p><p
class="aligncenter" style="text-align:center"><object
width="640" height="505"><param
name="movie" value="http://www.youtube.com/v/Yt1LtVSv5gw&#038;hl=en&#038;fs=1&#038;rel=0&#038;color1=0xe1600f&#038;color2=0xfebd01"></param><param
name="allowFullScreen" value="true"></param><param
name="allowscriptaccess" value="always"></param><embed
src="http://www.youtube.com/v/Yt1LtVSv5gw&#038;hl=en&#038;fs=1&#038;rel=0&#038;color1=0xe1600f&#038;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"></embed></object></p><p>A note on <a
href="http://code.google.com/">Google Code</a>: it&#8217;s rather nice. It provides the standard open source development stuff like source control an such but I really like how clean and hassle-free it is. Adding a project takes a minute and after that it&#8217;s simply coding and some quick documentation on the project wiki. The project wiki is good example of how simple but elegant the system is: the wiki pages actually exists inside the source control as files, just like your source code.</p><p>Go check Google Code out and while you&#8217;re at it, contribute on my projects. :)</p><h3  class="related_post_title">You might also like...</h3><ul
class="related_post"><li><a
href="http://kometbomb.net/2008/07/23/collision-detection-with-occlusion-queries-redux/" title="Collision Detection with Occlusion Queries Redux">Collision Detection with Occlusion Queries Redux</a></li><li><a
href="http://kometbomb.net/2008/06/18/thrustlikes/" title="Thrustlikes">Thrustlikes</a></li><li><a
href="http://kometbomb.net/2008/04/10/rom-check-fail/" title="ROM CHECK FAIL">ROM CHECK FAIL</a></li><li><a
href="http://kometbomb.net/2008/03/24/show-me-yours-and-ill-show-you-mine/" title="Show Me Yours and I&#8217;ll Show You Mine">Show Me Yours and I&#8217;ll Show You Mine</a></li><li><a
href="http://kometbomb.net/2008/03/09/dev-stories-from-the-past/" title="Dev Stories from the Past">Dev Stories from the Past</a></li></ul>]]></content:encoded> <wfw:commentRss>http://kometbomb.net/2009/09/22/introducing-my-latest-projects/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Wordle and 30 Years of Games</title><link>http://kometbomb.net/2009/07/01/wordle-and-30-years-of-games/</link> <comments>http://kometbomb.net/2009/07/01/wordle-and-30-years-of-games/#comments</comments> <pubDate>Wed, 01 Jul 2009 13:54:22 +0000</pubDate> <dc:creator>kometbomb</dc:creator> <category><![CDATA[Games]]></category> <category><![CDATA[Nonsense]]></category> <category><![CDATA[Video games]]></category> <category><![CDATA[Word cloud]]></category> <category><![CDATA[Wordle]]></category><guid
isPermaLink="false">http://kometbomb.net/?p=480</guid> <description><![CDATA[<img
src="http://kometbomb.net/wp-content/uploads/2009/07/small.png" alt="small" style="margin: 8px 8px 8px 8px" title="small" width="85" height="87" class="alignright size-full wp-image-485" /> Here's a superficial analysis on game titles. I have used <a
href="http://www.wordle.net/">Wordle</a> to generate a word cloud from lists of recurring phrases in game titles.What the word clouds show are very generic words like "space" or "super", the number two (a game series is more likely to be two than three games long) and multiple word phrases which usually are popular game series, or games with many expansion packs. It is interesting that the generic words tend to be the same across 30 years -- all generations of gamers seem to prefer dragons. Another point of interest is that a phrase from a 1980s game title is much less likely an established brand as it most likely is in the 1990s. Also, in the 1990s is became common that a game title has the release year attached to it, since EA et al started to churn out minor updates to their sports games as brand new releases.]]></description> <content:encoded><![CDATA[<p>Here&#8217;s a superficial analysis on game titles. I have used <a
href="http://www.wordle.net/">Wordle</a> to generate a word cloud from lists of recurring phrases in game titles. What I generally wanted to know is how a generic title from 1985 would differ from a generic title from 2009. The size of a word or phrase is relative to how many different titles contain the text and also how complex the phrase is (so one word long &#8220;phrases&#8221; won&#8217;t dominate the more interesting, relatively rare phrases).</p><p>What the word clouds show are very generic words like &#8220;space&#8221; or &#8220;super&#8221;, the number two (a game series is more likely to be two than three games long) and multiple word phrases which usually are popular game series, clichés (Foobar <em>of Doom</em>) or games with many versions or expansion packs. It is interesting that the generic words tend to be the same across 30 years &#8212; all generations of gamers seem to love dragons. Another point of interest is that a phrase from a 1980s game title is much less likely an established brand as it most likely is in the 1990s. Also, in the 1990s is became common that a game title has the release year attached to it, since EA et al started to churn out minor updates to their sports games as brand new releases.</p><p>30 years of games. Find your favorites!</p><div
style="float:left"><h3 id="toc-1980-2009">1980-2009</h3><p><a
href="http://kometbomb.net/wp-content/uploads/2009/07/1980-2009.png"><img
style="border:0" src="http://kometbomb.net/wp-content/uploads/2009/07/1980-2009-550x285.png" alt="1980-2009" title="1980-2009" width="550" height="285" class="aligncenter size-medium wp-image-491" /></a></div><div
style="float:left"><h3 id="toc-1980-1989">1980-1989</h3><p><a
href="http://kometbomb.net/wp-content/uploads/2009/07/1980-1989.png"><img
style="border:0" src="http://kometbomb.net/wp-content/uploads/2009/07/1980-1989-550x321.png" alt="1980-1989" title="1980-1989" width="550" height="321" class="aligncenter size-medium wp-image-482" /></a></div><div
style="float:left"><h3 id="toc-1990-1999">1990-1999</h3><p><a
href="http://kometbomb.net/wp-content/uploads/2009/07/1990-1999.png"><img
style="border:0" src="http://kometbomb.net/wp-content/uploads/2009/07/1990-1999-550x286.png" alt="1990-1999" title="1990-1999" width="550" height="286" class="aligncenter size-medium wp-image-484" /></a></div><div
style="float:left"><h3 id="toc-2000-2009">2000-2009</h3><p><a
href="http://kometbomb.net/wp-content/uploads/2009/07/2000-2009.png"><img
style="border:0" src="http://kometbomb.net/wp-content/uploads/2009/07/2000-2009-550x267.png" alt="2000-2009" title="2000-2009" width="550" height="267" class="aligncenter size-medium wp-image-483" /></a></div><h3  class="related_post_title">You might also like...</h3><ul
class="related_post"><li><a
href="http://kometbomb.net/2010/03/10/the-last-arcadian/" title="Review: The Last Arcadian">Review: The Last Arcadian</a></li><li><a
href="http://kometbomb.net/2010/03/03/review-starball/" title="Review: Starball">Review: Starball</a></li><li><a
href="http://kometbomb.net/2009/09/22/introducing-my-latest-projects/" title="Introducing My Latest Projects">Introducing My Latest Projects</a></li><li><a
href="http://kometbomb.net/2009/07/19/wordle-and-classics/" title="Wordle and Classics">Wordle and Classics</a></li><li><a
href="http://kometbomb.net/2008/07/23/collision-detection-with-occlusion-queries-redux/" title="Collision Detection with Occlusion Queries Redux">Collision Detection with Occlusion Queries Redux</a></li></ul>]]></content:encoded> <wfw:commentRss>http://kometbomb.net/2009/07/01/wordle-and-30-years-of-games/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Collision Detection with Occlusion Queries Redux</title><link>http://kometbomb.net/2008/07/23/collision-detection-with-occlusion-queries-redux/</link> <comments>http://kometbomb.net/2008/07/23/collision-detection-with-occlusion-queries-redux/#comments</comments> <pubDate>Wed, 23 Jul 2008 15:37:41 +0000</pubDate> <dc:creator>kometbomb</dc:creator> <category><![CDATA[Games]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[Algorithms]]></category> <category><![CDATA[Collision detection]]></category> <category><![CDATA[Game programming]]></category> <category><![CDATA[OpenGL]]></category> <category><![CDATA[Source code]]></category> <category><![CDATA[Video games]]></category><guid
isPermaLink="false">http://kometbomb.net/?p=317</guid> <description><![CDATA[Here we describe a method for checking collisions between arbitrary objects drawn by the GPU. The objects are not limited to any shape, complexity or orientation. The objects that are checked for collisions can be the same objects that are drawn on the screen. The algorithm is pixel perfect but without further refining is limited to 2D collisions.]]></description> <content:encoded><![CDATA[<div
class="toc"><ol><li><a
href="http://kometbomb.net/2008/07/23/collision-detection-with-occlusion-queries-redux/#toc-introduction">Introduction</a></li><li><a
href="http://kometbomb.net/2008/07/23/collision-detection-with-occlusion-queries-redux/#toc-description">Description</a><ol><li><a
href="http://kometbomb.net/2008/07/23/collision-detection-with-occlusion-queries-redux/#toc-determining-objects-that-need-to-be-tested">Determining objects that need to be tested</a></li><li><a
href="http://kometbomb.net/2008/07/23/collision-detection-with-occlusion-queries-redux/#toc-drawing-objects">Drawing objects</a><ol><li><a
href="http://kometbomb.net/2008/07/23/collision-detection-with-occlusion-queries-redux/#toc-sprites">Sprites</a></li></ol></li></ol></li><li><a
href="http://kometbomb.net/2008/07/23/collision-detection-with-occlusion-queries-redux/#toc-optimizations">Optimizations</a></li><li><a
href="http://kometbomb.net/2008/07/23/collision-detection-with-occlusion-queries-redux/#toc-caveats">Caveats</a></li><li><a
href="http://kometbomb.net/2008/07/23/collision-detection-with-occlusion-queries-redux/#toc-appendix-a-source-code-for-opengl">Appendix A. Source code for OpenGL</a></li><li><a
href="http://kometbomb.net/2008/07/23/collision-detection-with-occlusion-queries-redux/#toc-links">Links</a></li></ol></div><h3 id="toc-introduction">Introduction</h3><p>Here we describe a method for checking collisions between arbitrary objects drawn by the GPU. The objects are not limited to any shape, complexity or orientation. The objects that are checked for collisions can be the same objects that are drawn on the screen. The algorithm is pixel perfect but without further refining is limited to 2D collisions.</p><h3 id="toc-description">Description</h3><p>The algorithm can be divided in three separate steps:</p><ol><li><p>Determine which objects need testing</p></li><li><p>Set up the GPU buffers and draw the first object so the stencil buffer is set</p></li><li><p>Make an occlusion query using the and using the stencil from the previous buffer</p></li></ol><p>If the occlusion query returns any pixels were drawn, the two objects overlap.</p><h4 id="toc-determining-objects-that-need-to-be-tested">Determining objects that need to be tested</h4><div
class="alignright" style="font-size:12px"><a
href="http://kometbomb.net/wp-content/uploads/2008/07/col1.png"><img
alt="Figure 1." src="http://kometbomb.net/wp-content/uploads/2008/07/col1thumb.png" style="border:0"></a><br/>Figure 1.</div><p> To speed up the algorithm, we need to eliminate object pairs that can&#8217;t overlap. This can be done by projecting the object bounding volumes in screen space. Then, we can quickly check which 2D polygons overlap and do further checking. Choosing the shape of the bounding volumes/polygons is not relevant. In this document we will use rectangles for the simplicity.</p><p>The example case in figure 1 shows two colliding objects (overlapping bounding rectangles shown red), one near hit (green overlap) and one object with no collisions or bounding rectangle overlap. To determine the collisions (and non-collisions) we need checks for every bounding rectangle (15 checks) and two checks using the GPU<sup
class='footnote'><a
href='#fn-317-1' id='fnref-317-1'>1</a></sup>. Without the use of the bounding rectangles, we would need 13 more checks on the GPU.</p><p>The bounding rectangles in the example can be generated by finding the maximum and minimum coordinates and using them as the corner points of the rectangle. Since the algorithm finds collisions as seen from the camera, we need first project the object coordinates (or the object bounding volume coordinates) on the screen and find the minima and maxima using those coordinates. Most 3D frameworks provide functions for projecting a 3D point to screen coordinates using the same transformations as seen on screen<sup
class='footnote'><a
href='#fn-317-2' id='fnref-317-2'>2</a></sup>.</p><h4 id="toc-drawing-objects">Drawing objects</h4><p>Before we start drawing the objects on the graphics buffer, we need to clear the stencil buffer. After that, the GPU should be set to draw only to the stencil buffer, that is we don&#8217;t need the color buffer or depth buffer to be updated.</p><p>Now, the first object can be drawn. After that, we will draw the second object. Before we start we need to set up the occlusion query to count the drawn pixels. We also need to use the stencil buffer created in the previous step and set the GPU to draw only if the stencil buffer is non-zero. We don&#8217;t need to update any buffers at this point.</p><p>After the second object is drawn, the pixel count returned by the occlusion query tells how many pixels overlap. For most purposes, we can assume a non-zero value means the two objects collide<sup
class='footnote'><a
href='#fn-317-3' id='fnref-317-3'>3</a></sup>.</p><p><center><br
/><table><tr><td><img
src="http://kometbomb.net/wp-content/uploads/2008/07/col4.png" width="144" height="96" /><br/>Figure 2.</td><td><img
src="http://kometbomb.net/wp-content/uploads/2008/07/col5.png" width="144" height="96" /><br/>Figure 3.</td><td><img
src="http://kometbomb.net/wp-content/uploads/2008/07/col6.png" width="144" height="96" /><br/>Figure 4.</td></tr></table><p></center></p><p>Consider the above example. Figure 2 shows two objects as seen on screen. Figure 3 shows the stencil derived by drawing only the green (right) object. Figure 4 shows what will be drawn of the red (left) object if we limit the rendering to drawing on the stencil (the occlusion query will tell us six  pixels were drawn).</p><h5 id="toc-sprites">Sprites</h5><p>For sprite objects that consist of only one quad and an alpha blended texture with transparent area representing the area that cannot collide with anything, the same result can be achieved by setting the alpha testing to discard pixels below a certain tolerance. This will then avoid updating the stencil buffer on the whole area of the quad.</p><h3 id="toc-optimizations">Optimizations</h3><p>The stencil buffer can be created to contain the collision area of e.g. every enemy currently on the screen and then testing with the player object. This avoids the necessity to test between every object individually, which can be costly since the occlusion query has to finish before the next query can start. If the objects on the screen can be grouped to a handful of categories, such as the player, the enemies, player bullets and so on, multiple objects can be tested simultaneously where it is not important to know exactly which two objects collided (e.g. when deciding whether to kill the player which in a shooter game generally is because the player collides with the background, an enemy bullet or an enemy &#8212; all of which would be drawn in the same stencil buffer).</p><p>Ideally, the above can be done so that every object group has its own stencil buffer. This then makes it possible to create the stencil and start the queries in their respective buffers, do something useful while they execute and then query for the occlusion query results.</p><h3 id="toc-caveats">Caveats</h3><p>Most of all, doing collision detection with occlusion queries is admittedly a curiosity. There are many, many ways to do collisions faster and most likely with less technicalities. Using a simple rectangle (a cube or a sphere in 3D applications) to test collisions between complex objects has been used since the first video games and it still provides acceptable accuracy. Indeed, some games even use an extremely small collision area (e.g. a single pixel) to test collisions with larger objects with great success. Additionally, the algorithm is potentially a bottleneck, especially when triple buffering etc. are used since occlusion queries generally are started after the previous frame is drawn and then read when the next frame is drawn (i.e. it&#8217;s asyncronous). This limits either the algorithm accuracy for real time (frame accuracy) or the framerate since we may have to wait for the query to finish for a relatively long time.</p><p>A serious consideration is to use the occlusion query algorithm to test between a complex object, e.g. with a large end of level boss with a complex, changing shape and use a simpler geometry based algoritm to test between hundreds of bullets. A hybrid algorithm could even first make an occlusion query to know which objects collide and then use a different algorithm to find out more about the collision.</p><p>This is inherently a 2D algorithm. The GPU sees any situations in which two objects overlap as a collision, as seen from the location of the camera. This if fine for side-scrollers et cetera, which also benefit from pixel perfect (fair, predictable) collisions, and other situations in which all the objects to be tested are on the same plane. Multiple depth levels (e.g. foreground objects never collide with background items) improve the situation and so does drawing only the parts of the objects that are between specified depth levels<sup
class='footnote'><a
href='#fn-317-4' id='fnref-317-4'>4</a></sup>.</p><p>Another possible problem is that the screen resolution may be different between systems, which makes the algorithm have different levels of accuracy. This can be avoided by doing the checks in a fixed resolution. Limiting the collision buffer resolution also improves the algorithm speed in cases the GPU fillrate is a bottleneck.</p><p>Finally, some older systems may not support occlusion queries or stencil buffers. As of 2008, this is increasingly rare but should be taken into consideration.</p><h3 id="toc-appendix-a-source-code-for-opengl">Appendix A. Source code for OpenGL</h3><p>The following is source code extracted from a proof of a concept/prototype game written in C++ using OpenGL. The source code should be self explanatory.</p><p>The following builds the bounding rectangle for a object:</p><pre><code>BoundBox box=object-&gt;GetBoundingBox();

object-&gt;DoObjectTranslations();

glGetDoublev(GL_MODELVIEW_MATRIX, modelViewMatrix);
glGetDoublev(GL_PROJECTION_MATRIX, projectionMatrix);
glGetIntegerv(GL_VIEWPORT, viewport);

for (int i=0;i&lt;8;i++)
{
    GLdouble screenX, screenY, screenZ;

    vec3 c=box.Corner(i);

    gluProject(c.x(), c.y(), c.z(),
        modelViewMatrix, projectionMatrix, viewport,
        &amp;screenX, &amp;screenY, &amp;screenZ);

    maxX=max((int)screenX,maxY);
    maxY=max((int)screenY,maxY);
    minX=min((int)screenX,minX);
    minY=min((int)screenY,minY);
}

rect = Rect(minX,minY,maxX-minX, maxY-minY);</code></pre><p>The following can be used to set the rendering mode before drawing the object on the screen, on the stencil buffer or when making the occlusion query (note how we disable most of the rendering when drawing something that will not be visible to the player, also notice how the stencil buffer is cleared if we enable stencil drawing mode &#8212; using scissor makes this efficient):</p><pre><code>void GfxManager::SetRenderMode(RenderMode mode) {
  if (mode==STENCIL) {
    glDepthFunc(GL_ALWAYS);
    glDisable(GL_LIGHTING);
    glClear(GL_STENCIL_BUFFER_BIT);
    glEnable(GL_STENCIL_TEST);
    glDisable(GL_DEPTH_TEST);
    glStencilFunc(GL_ALWAYS, 1, 1);
    glStencilOp(GL_REPLACE, GL_REPLACE, GL_REPLACE);
    glColorMask(0,0,0,0);
  } else if (mode==OCCLUSION) {
    glDepthFunc(GL_ALWAYS);
    glDisable(GL_DEPTH_TEST);
    glDisable(GL_LIGHTING);
    glEnable(GL_SCISSOR_TEST);
    glEnable(GL_STENCIL_TEST);
    glStencilFunc(GL_EQUAL, 1, 1);
    glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
    glColorMask(0,0,0,0);
    glBeginQueryARB(GL_SAMPLES_PASSED_ARB, m_OccId);
  } else {
    // Set normal rendering mode here (enable lighting etc.)
  }
}</code></pre><p>Similarly, the following is used to end drawing (specifically to end the collision testing, at which the function returns the number of pixels drawn)&#8230;</p><pre><code>int GfxManager::FinishRenderMode(RenderMode mode) {
  if (mode==OCCLUSION) {
    glEndQueryARB( GL_SAMPLES_PASSED_ARB );
    GLuint occ=0;
    glGetQueryObjectuivARB( m_OccId, GL_QUERY_RESULT_ARB, &amp;occ);
    return (int)occ;
  } else {
    return 0;
  }
}</code></pre><p>&#8230; using something like this:</p><pre><code>int GfxManager::DrawObject(int oid,vec3 pos,vec3 rot,RenderMode mode) {
  SetRenderMode(mode);
  Draw3DObject(oid, pos, rot);
  return FinishRenderMode(mode);
}</code></pre><p>This is from the main loop, it simply goes through all objects in the game. Notice how we first prepare the collision checking for the first object to be tested (i.e. create the stencil as in step 2 of the algorithm).</p><pre><code>for (unsigned int a=0;a&lt;m_Objects.size();a++) {
  m_Objects[a]-&gt;PrepareCollide();
  for (unsigned int b=a+1;b&lt;m_Objects.size();b++) {
    if (m_Objects[a]-&gt;TestCollide(m_Objects[b])) {
      // We have a collision
    }
  }
  m_Objects[a]-&gt;FinishCollide();
}</code></pre><p>Note that DrawObject is the same method as we use to draw the visible object on the screen. The only thing that differs is that the drawing mode is set to stencil or occlusion query. Also worth noting is how we use the rectangle to set the scissor to further reduce the workload.</p><pre><code>void GfxObject::PrepareCollide() {
  GetGfxManager()-&gt;SetScissor(this-&gt;GetBoundingRect());
  GetGfxManager()-&gt;DrawObject(m_GfxId,GetPosition(),GetRotation(),STENCIL);
}

void GfxObject::FinishCollide() {
  // We simply reset the scissor
  GetGfxManager()-&gt;SetScissor();
}

int GfxObject::DrawCollide() {
  // We could set the scissor here to even smaller area, the overlapping area
  return GetGfxManager()-&gt;DrawObject(m_GfxId,GetPosition(),GetRotation(),OCCLUSION);
}

bool GfxObject::TestCollide(Object *obj) {
  Rect a=GetBoundingRect();
  Rect b=obj-&gt;GetBoundingRect();

  // No need for further collision testing if the rectangles
  // don't overlap
  if (!a.TestCollide(b)) return false;

  // We have a collision if any pixels were drawn
  return obj-&gt;DrawCollide() &gt; 0;
}</code></pre><h3 id="toc-links">Links</h3><ul><li><a
href="http://blogs.msdn.com/shawnhar/archive/2008/12/31/pixel-perfect-collision-detection-using-gpu-occlusion-queries.aspx">Shawn Hargreaves Blog: Pixel perfect collision detection using GPU occlusion queries</a> &#8211; seems to be exactly the same idea but this time using XNA</li></ul><div
class='footnotes'><div
class='footnotedivider'></div><ol><li
id='fn-317-1'> To speed up the checks done on the GPU, we can set the scissor rectangle to the overlapping area. This helps in cases in which the overlapping area is small compared to the complete area of the object. <span
class='footnotereverse'><a
href='#fnref-317-1'>&#8617;</a></span></li><li
id='fn-317-2'>OpenGL has <a
href="http://www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/glu/project.html">gluProject()</a>, DirectX has <a
href="http://msdn.microsoft.com/en-us/library/bb205516(VS.85).aspx">D3DXVecProject()</a> <span
class='footnotereverse'><a
href='#fnref-317-2'>&#8617;</a></span></li><li
id='fn-317-3'>It may be useful to consider a larger tolerance for fairness&#8217; sake <span
class='footnotereverse'><a
href='#fnref-317-3'>&#8617;</a></span></li><li
id='fn-317-4'>E.g. setting the near and far clipping planes to the distance of the second object (assuming it won&#8217;t be a problem that the clipping results in objects that have a hole) <span
class='footnotereverse'><a
href='#fnref-317-4'>&#8617;</a></span></li></ol></div><h3  class="related_post_title">You might also like...</h3><ul
class="related_post"><li><a
href="http://kometbomb.net/2009/09/22/introducing-my-latest-projects/" title="Introducing My Latest Projects">Introducing My Latest Projects</a></li><li><a
href="http://kometbomb.net/2009/11/09/plenty-of-room-part-ii/" title="Plenty of Room, Part II">Plenty of Room, Part II</a></li><li><a
href="http://kometbomb.net/2008/03/24/show-me-yours-and-ill-show-you-mine/" title="Show Me Yours and I&#8217;ll Show You Mine">Show Me Yours and I&#8217;ll Show You Mine</a></li><li><a
href="http://kometbomb.net/2007/09/04/image-retargeting/" title="Image retargeting">Image retargeting</a></li><li><a
href="http://kometbomb.net/2010/03/10/the-last-arcadian/" title="Review: The Last Arcadian">Review: The Last Arcadian</a></li></ul>]]></content:encoded> <wfw:commentRss>http://kometbomb.net/2008/07/23/collision-detection-with-occlusion-queries-redux/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Thrustlikes</title><link>http://kometbomb.net/2008/06/18/thrustlikes/</link> <comments>http://kometbomb.net/2008/06/18/thrustlikes/#comments</comments> <pubDate>Wed, 18 Jun 2008 19:52:14 +0000</pubDate> <dc:creator>kometbomb</dc:creator> <category><![CDATA[Games]]></category> <category><![CDATA[8-bit]]></category> <category><![CDATA[Asteroids]]></category> <category><![CDATA[Atari]]></category> <category><![CDATA[C64]]></category> <category><![CDATA[NES]]></category> <category><![CDATA[Nostalgy]]></category> <category><![CDATA[Retro gaming]]></category> <category><![CDATA[Reviews]]></category> <category><![CDATA[Video]]></category> <category><![CDATA[Video games]]></category><guid
isPermaLink="false">http://kometbomb.net/?p=268</guid> <description><![CDATA[<img
src="http://kometbomb.net/wp-content/uploads/2008/06/thrustlikes1.png" class="alignleft" /> Probably my most favorite video games are <em>thrustlike</em> games -- games that relate to <strong>Thrust</strong> similarly how Rogue relates to roguelikes. Here are some of the games I consider the best examples of this genre. ]]></description> <content:encoded><![CDATA[<p><img
src="http://kometbomb.net/wp-content/uploads/2008/06/thrustlikes.png" alt="" title="thrustlikes" class="alignright size-medium wp-image-270" height="168" width="192"> Probably my most favorite video games are <em>thrustlike</em> games &#8211; as in <a
href="http://www.roguetemple.com/">roguelikes</a> begat by <a
href="http://en.wikipedia.org/wiki/Rogue_%28computer_game%29">Rogue</a> (<strong><a
href="http://www.adom.de/" title="Ancient Domains of Mystery" rel="homepage" class="zem_slink">ADOM</a></strong>, <strong>Nethack</strong>, <strong>Angband</strong>, <strong><a
href="http://www-math.bgsu.edu/%7Egrabine/moria.html" title="Moria (computer game)" rel="homepage" class="zem_slink">Moria</a></strong> et al.). What I mean with a thrustlike is a game derivative of <strong><a
href="http://en.wikipedia.org/wiki/Asteroids_%28arcade_game%29" title="Asteroids (arcade game)" rel="wikipedia" class="zem_slink">Asteroids</a></strong>, <strong><a
href="http://en.wikipedia.org/wiki/Lunar_Lander_%28computer_game%29" title="Lunar Lander (computer game)" rel="wikipedia" class="zem_slink">Lunar Lander</a></strong>, <strong><a
href="http://en.wikipedia.org/wiki/Gravitar" title="Gravitar" rel="wikipedia" class="zem_slink">Gravitar</a></strong> and <strong>Spacewar</strong> that feature a simple physics model, a rotating spaceship and a button for <em>thrust</em>. Hence, &#8220;thrustlike&#8221; and not &#8220;gravitarlike&#8221;. Also, mostly because I <em>really</em> like <strong>Thrust</strong>.</p><p>Here are some of the games I consider the best examples of this genre.</p><h3 id="toc-thrust-1986">Thrust (1986)</h3><p>What I think <a
href="http://en.wikipedia.org/wiki/Thrust_%28video_game%29" title="Thrust (video game)" rel="wikipedia" class="zem_slink">Thrust</a> does that makes it so much better than Asteroids and other household names is that it takes the simple rule of motion and inertia, and adds another basic concept, counterforce. In Thrust, you not only maneuver the ship through narrow caves but you also have to lift a heavy load (a &#8220;klystron pod&#8221;) that swings under the ship. And, in most cases the roles are reversed when the heavy pod transfers its excess kinetic energy to your stationary ship, sending you both spinning towards the nearest wall. However, the whole gameplay doesn&#8217;t feel as random as it is with many modern physics based games that often require luck or endless trial and error. You are always in charge of the physics, if you are a good enough pilot.</p><p
style="text-align: center;"><object
height="344" width="425"><param
name="movie" value="http://www.youtube.com/v/dJpRdAQhBp0&amp;hl=en&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01"><embed
src="http://www.youtube.com/v/dJpRdAQhBp0&amp;hl=en&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" height="344" width="425"></object><br
/><small>Thrust on the BBC Micro.</small></p><p>Another thing that I like about Thrust is that the player is easily able to skip a few levels by activating the self-destruct sequence of the planet by shooting the power plant a few too many times. Why I like it is that in a way you feel like you cheated the game (although, you also lost a lot of bonus points). However, without a doubt this was added to make it easier to quickly get to and practice the later levels, it&#8217;s a very nice touch it&#8217;s built in the game world. It is also possible to get hefty bonus if you manage to both fetch the pod and also destroy the power plant.</p><p>Thrust has a reputation for being hard but I can&#8217;t really agree with that. The game has a handful of levels and the regular levels are quite easy to finish when you get the hang of it. However, after that the gravity is reversed and the levels loop from the beginning and after a successful completion, the walls turn invisible. And then I guess the game goes reversed-invisible<sup
class='footnote'><a
href='#fn-268-1' id='fnref-268-1'>1</a></sup>.</p><p></p><p>Another proof of the game&#8217;s excellence is that it&#8217;s probably one of the most ported (officially or not) games, when it comes to radically different platforms. There are equally playable versions for the BBC (also the original version), the C64 (with <a
href="http://www.youtube.com/watch?v=FTekIFu-HgQ">a rocking Hubbard tune</a>), the 8 and 16-bit Ataris and unofficial ports for <a
href="http://www.emix8.org/static.php?page=VectrexThrust">Vectrex</a> and <a
href="http://en.wikipedia.org/wiki/Atari_2600" title="Atari 2600" rel="wikipedia" class="zem_slink">Atari VCS</a><sup
class='footnote'><a
href='#fn-268-2' id='fnref-268-2'>2</a></sup>. There also is <a
href="http://www.lysator.liu.se/%7Epeda/thrust/">a C rewrite of the game engine</a> that is open source, which I guess ensures the game can be ported to any semi-modern platform.</p><p>There apparently was a sequel, that wasn&#8217;t so well received (proving more does not equal better) and I have never seen it.</p><h3 id="toc-gravitar-1982">Gravitar (1982)</h3><p>Gravitar, on the other hand, does much of the same. Thrust (1986) was obviously very influenced by Gravitar (1982)<sup
class='footnote'><a
href='#fn-268-3' id='fnref-268-3'>3</a></sup>, which was probably influenced by Asteroids (1979) and Lunar Lander (1973, 1979). Both Thrust and Gravitar have planets to visit, fuel to be beamed up, enemy bunkers that shoot back and, of course, gravity. But to me, Gravitar doesn&#8217;t have as crystallized gameplay as Thrust. Thrust is as solid as, uh, Gravitar&#8217;s vectors are, umm, sharp.</p><p
style="text-align: center;"><object
height="344" width="425"><param
name="movie" value="http://www.youtube.com/v/VZYW62S6TP0&amp;hl=en&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01"><embed
src="http://www.youtube.com/v/VZYW62S6TP0&amp;hl=en&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" height="344" width="425"></object><br
/><small>Gravitar. The graphics are so sharp you can&#8217;t see crap on Youtube videos.</small></p><p>What&#8217;s pretty neat in Gravitar is that you can select in which order you play the levels, the levels are simply presented as planets in a solar system and you have to fly the ship avoiding the star that is in the center of the solar system. This also gives another challenge (or a possibility to optimize your gameplay) since the star&#8217;s gravity can be exploited to save fuel. Each level also is quite different from the other levels.</p><h3 id="toc-oids-1987">Oids (1987)</h3><p
style="text-align: center;"><object
height="344" width="425"><param
name="movie" value="http://www.youtube.com/v/WxhmMGLVjQ4&amp;hl=en&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01"><embed
src="http://www.youtube.com/v/WxhmMGLVjQ4&amp;hl=en&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" height="344" width="425"></object><br
/><small>Oids on the Atari ST.</small></p><p>Another game I really liked was <strong><a
href="http://en.wikipedia.org/wiki/Oids" title="Oids" rel="wikipedia" class="zem_slink">Oids</a></strong>. It combines yet more favorites of mine with Thrust: <strong>Choplifter</strong> and <strong><a
href="http://en.wikipedia.org/wiki/Space_Taxi" title="Space Taxi" rel="wikipedia" class="zem_slink">Space Taxi</a></strong>, both outside the strictest requirements of the thrustlike genre. In Oids, the klystron pods are replaced with little guys (android slaves, or &#8216;oids) that you have to pick up, first of course having to land the ship carefully, and take up to the mothership. Oids is so loved that the Atari ST emulator Oidemu was made just to run the game, which wouldn&#8217;t run on other emulators &#8212; and Oidemu subsequently didn&#8217;t bother supporting any other games.</p><p>The saving the little guys idea is lifted from Choplifter (get it?) in which you use a chopper to demolish prisons and then land nearby and wait for the little men to climb aboard, making multiple runs as the chopper can carry a limited amount of men. The gameplay is much speedier in Oids, you constantly have to dodge incoming bullets and homing missiles and the levels generally are much more open than in Thrust or Gravitar. In all, Oids feels like very natural progression from Thrust.</p><p>Maybe one factor that made the game so special was the fact it shipped with a level editor.</p><h3 id="toc-space-taxi-1984">Space Taxi (1984)</h3><p><div
class="articleimage" style="float:right;clear:right"><img
class="corners iradius8" src="http://kometbomb.net/wp-content/uploads/2008/06/space-taxi.png" /><p>Hey, taxi!</p></div></p><p>If we bend the rules what makes a thrustlike, Space Taxi is more than a worthy addition to the genre. Especially so, if you think Lunar Lander fits in the genre &#8212; both games have similar controls (thrust up, down and to the sides) and also the common goal of landing quickly yet safely.</p><p>There was a nice clone of Space Taxi on the Amiga featuring a caveman flying a stone-age version of a helicopter (think Flintstones). The game was called <strong>Ugh!</strong> and it was later ported to the PC (it&#8217;s great) and C64 (it&#8217;s crap).</p><p>While Ugh! looks gorgeous and is fun to play, what Space Taxi does infinitely better is that <em>every</em> level in Space Taxi is very different from the other levels, and that is not just the layout that changes (on top of that Ugh! uses the same tiles over and over, <a
href="http://www.mobygames.com/game/ugh/screenshots">however nicely pixeled they might be</a>). The rules of the game are often deviated slightly. For example, one level has a beanstalk that slowly grows leaves on which you can land (and the passengers start appearing on) and others simply have disappearing walls or teleports. I guess that still makes the game quite unique, since even now games rarely have radically different levels.</p><p>There also is <a
href="http://www.twilightgames.com/spacetaxi/spacetaxi_info.htm"><strong>Space Taxi 2</strong></a>, which is a legit sequel but the tiny voice in my head says it can&#8217;t possibly measure up. It&#8217;s worth a check, though, as it has the same level designs as the original.</p><h3 id="toc-solar-jetman-hunt-for-the-golden-warpship-1990">Solar Jetman: Hunt for the Golden Warpship (1990)</h3><p><strong>Solar Jetman: Hunt for the Golden Warpship</strong> is pretty much exactly what Thrust was years earlier but with updated graphics. The only difference is that in each level you have to find a different object, each being a part of the Golden Warpship and various other items which upgrade the ship you pilot around. There&#8217;s also a bit of Oids in the game, as it features more shooting and has enemies that follow you around the level.</p><p
style="text-align: center;"><object
height="344" width="425"><param
name="movie" value="http://www.youtube.com/v/RULmoRNGtRs&amp;hl=en&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01"><embed
src="http://www.youtube.com/v/RULmoRNGtRs&amp;hl=en&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" height="344" width="425"></object><br
/><small>Solar Jetman: Hunt for the Golden Warpship on the NES.</small></p><p>The game provides welcome variation to NES games and I can see why it wasn&#8217;t a success among the younger gamers despite the great graphics (got to love the smooth rotation of the ship). The controls are smooth but as all games of this genre, Solar Jetman can be a handful. Especially, if you are looking for more straight-forward action.</p><p>The game is the successor to <a
href="http://en.wikipedia.org/wiki/Lunar_Jetman">Lunar Jetman</a> (which shares only half of the name and virtually no gameplay elements, except for the little spaceman that you have to get back to the mothership when your probe is destroyed, see above video) &#8212; Solar Jetman was developed by Rare who in fact were called Ultimate Play The Game who developed Lunar Jetman for the Speccy (and loads of other very successful games). Solar Jetman was also going to be released for most of the home computers of the time but the ports were canceled and only the <a
href="http://gtw64.retro-net.de/Pages/s/Review_Solarjetman.php">C64 port</a> is available to the public.</p><h3 id="toc-caveflyers">&#8220;Caveflyers&#8221;</h3><p>In the mid-1990s there was a boom for so called <em>caveflyers</em> (from Finnish <em>&#8220;luolalentely&#8221;</em>) here in Finland. The caveflyer genre probably owes more to Spacewar as it&#8217;s mainly about blowing up the other players. There were dozens of similar games that all featured hotseat multiplayer action (some even had computer controlled), various weapons and levels and most importantly destructible environments.</p><p><a
href="http://kometbomb.net/wp-content/uploads/2008/06/mayhem.png"><img
src="http://kometbomb.net/wp-content/uploads/2008/06/mayhem-t.png" alt="" title="A level from Mayhem" class="alignright size-thumbnail wp-image-272" height="196" width="250"></a> There had been a lot of similar games by hobbyists before the boom, the single game that started it all probably was Gravity Force on the Amiga. However, I think the flood of cavefliers (in Finland, at least) was triggered by <strong>Auts</strong> and <strong>Turboraketti</strong> on the PC. I am very sure different areas had a bit different ideas what was the hottest game but at least to me, Auts was it. After that more and more clones started appearing with constantly improving quality and broadening weapon arsenal. My favorite probably was <strong>Kaboom</strong>. On the Amiga, there was a bit older similar game called <strong>Mayhem</strong> (1993) which we played a lot. There&#8217;s <a
href="http://eab.abime.net/archive/index.php/t-2128.html">an abandoned PC conversion</a> that you can find in the linked thread.</p><p>This subgenre is still alive and there are many modern caveflyers that have Internet multiplayer features and so on.</p><h3 id="toc-3d-thrustlikes-and-other-oddities">3D thrustlikes and other oddities</h3><p><div
class="articleimage" style="float:right;clear:right"><img
class="corners iradius8" src="http://kometbomb.net/wp-content/uploads/2008/06/virus-spectrum-screenshot.gif" /><p>Virus on the Speccy</p></div></p><p>There have been various <a
href="" http:="" en.wikipedia.org="" wiki="" zarch=""><strong>Zarch</strong> (1987)</a> on the Acorn Archimedes (ported later in 1998 as Virus for the Amiga, Atari ST, ZX Spectrum and PC) features similar controls for the player ship except that there now are two rotation axes. The gameplay however features minimal interaction with the landscape as there are no caves. Later in 1999, Psygnosis released <a
href="http://www.mobygames.com/game/lander"><strong>Lander</strong></a> for the PC that featured closed levels, cargo hauling and teleporting fuel on the lander. So, Lander pretty much is Thrust in 3D.</p><p>&#8212;</p><p>So, were there any games I left out that you think should be here? Do leave a comment. Also, I&#8217;d like to thank the people who uploaded gameplay videos of Thrust, Gravitar and Oids to Youtube. I had only a NES emulator with AVI output handy.</p><h3 id="toc-links">Links</h3><ul><li><a
href="http://www.cooganphoto.com/gravitar">Dan Coogan&#8217;s Gravitar page</a> a lot of stuff from the world champion</li><li><a
href="http://moonlander.eu/">More Lunar Lander clones you will ever need</a> (including Flash games)</li><li><a
href="http://thom.best.vwh.net/software.html">Zarch for Linux</a></li><li><a
href="http://one.xthost.info/zelko/opengl.html">Zarch for Windows</a></li><li><a
href="http://everything2.com/e2node/Cave%2520flyer">More about caveflyers</a></li><li><a
href="http://www.jonneweb.net/pelit/category/4/">A lot of caveflyers</a> (reviews in Finnish)</li></ul><div
style="margin-top: 10px; height: 15px;" class="zemanta-pixie"><a
class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/5210351e-19fa-4cd7-9118-d396bda8ea5b/" title="Zemified by Zemanta"><img
style="border: medium none ; float: right;" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_a.png?x-id=5210351e-19fa-4cd7-9118-d396bda8ea5b" alt="Zemanta Pixie"></a></div><div
class='footnotes'><div
class='footnotedivider'></div><ol><li
id='fn-268-1'>Gravitar and loads of other games, including some Pac-Man sequels, do this as well. <span
class='footnotereverse'><a
href='#fnref-268-1'>&#8617;</a></span></li><li
id='fn-268-2'>Including scrolling and everything&#8230; even <a
href="http://www.biglist.com/lists/stella/archives/199911/msg00029.html">drawing the rod that connects the klystron pod to the spacecraft</a> was a potential project killer on the VCS. <span
class='footnotereverse'><a
href='#fnref-268-2'>&#8617;</a></span></li><li
id='fn-268-3'>Maybe the creator of Thrust saw <a
href="http://www.mobygames.com/game/gauntlet__"><strong>Gauntlet</strong> (1984) on the Atari</a> as well. <span
class='footnotereverse'><a
href='#fnref-268-3'>&#8617;</a></span></li></ol></div><h3  class="related_post_title">You might also like...</h3><ul
class="related_post"><li><a
href="http://kometbomb.net/2008/04/10/rom-check-fail/" title="ROM CHECK FAIL">ROM CHECK FAIL</a></li><li><a
href="http://kometbomb.net/2008/03/09/dev-stories-from-the-past/" title="Dev Stories from the Past">Dev Stories from the Past</a></li><li><a
href="http://kometbomb.net/2010/03/03/review-starball/" title="Review: Starball">Review: Starball</a></li><li><a
href="http://kometbomb.net/2010/03/10/the-last-arcadian/" title="Review: The Last Arcadian">Review: The Last Arcadian</a></li><li><a
href="http://kometbomb.net/2009/09/22/introducing-my-latest-projects/" title="Introducing My Latest Projects">Introducing My Latest Projects</a></li></ul>]]></content:encoded> <wfw:commentRss>http://kometbomb.net/2008/06/18/thrustlikes/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>ROM CHECK FAIL</title><link>http://kometbomb.net/2008/04/10/rom-check-fail/</link> <comments>http://kometbomb.net/2008/04/10/rom-check-fail/#comments</comments> <pubDate>Thu, 10 Apr 2008 11:33:32 +0000</pubDate> <dc:creator>kometbomb</dc:creator> <category><![CDATA[Games]]></category> <category><![CDATA[Nostalgy]]></category> <category><![CDATA[Retro gaming]]></category> <category><![CDATA[Reviews]]></category> <category><![CDATA[Video]]></category> <category><![CDATA[Video games]]></category><guid
isPermaLink="false">http://kometbomb.net/?p=249</guid> <description><![CDATA[<a
href="http://www.farbs.org/games.html">ROM CHECK FAIL</a> is quite possibly the most original game I have seen in a while. That's saying a lot considering the game is a mishmash of classic arcade and video games. The main idea is that, for example, at one moment you are playing Zelda and after a few seconds the game randomly switches to Super Mario Bros. Or Asteroids. Or Spy Hunter. While you might still be Link or the tank from Space Invaders.]]></description> <content:encoded><![CDATA[<p
class="news"><strong>News:</strong> Farbs interview added</p><p
style="text-align:center"><object
width="425" height="355"><param
name="movie" value="http://www.youtube.com/v/OItcPVuIAJM&#038;hl=en"></param><param
name="wmode" value="transparent"></param><embed
src="http://www.youtube.com/v/OItcPVuIAJM&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object><br/><small>Thanks to whoever uploaded this video &#8212; ROM CHECK FAIL is a bitch to capture</small></p><p><div
class="articleimage" style="float:right;clear:right"><img
class="corners iradius8" src="http://kometbomb.net/wp-content/uploads/2008/04/romfail.png" /><p>The Legend of Zelda meets Arkanoid meets Asteroids</p></div></p><p><a
href="http://www.farbs.org/games.html">ROM CHECK FAIL</a> is quite possibly the most original game I have seen in a while. That&#8217;s saying a lot considering the game is a mishmash of classic arcade and video games. The main idea is that, for example, at one moment you are playing Zelda and after a few seconds the game randomly switches to Super Mario Bros. Or Asteroids. Or Spy Hunter. While you might still be Link or the tank from Space Invaders.</p><p>While the game is ruthless in that there are impossible situations (imagine the invaders from Space Invaders suddenly turning into Goombas which of course fall down on you), it is constantly amusing in its insanity. It&#8217;s like trying to play a failed download of Wario Ware, Inc. ROM CHECK FAIL is one of the few instances of <em>art games</em> that deliver.</p><p>I also found the game really funny in that after playing it for about ten seconds, you immediately realize how much potential crossovers have. After you have battled against the balloons from Pang as Pac-Man, playing Alien vs. Predator or the likes won&#8217;t really impress much.</p><h3 id="toc-links">Links</h3><ul><li><a
href="http://www.farbs.org/games.html">Download the game</a> from the official homepage</li><li>Hear Farbs in the <a
href="http://orangeloungeradio.com/phpnuke/">Orange Lounge Radio</a> interview (he&#8217;s on at 15:00 the mark) [<a
href="http://orangeloungeradio.com/podcast/OLR_275_B_041308.mp3">download</a>] (snatched from <a
href="http://www.indiegames.com/blog/2008/04/interview_dave_gilbert_farbs.html">IndieGames.com weblog</a>)</li></ul><h3  class="related_post_title">You might also like...</h3><ul
class="related_post"><li><a
href="http://kometbomb.net/2008/06/18/thrustlikes/" title="Thrustlikes">Thrustlikes</a></li><li><a
href="http://kometbomb.net/2008/03/09/dev-stories-from-the-past/" title="Dev Stories from the Past">Dev Stories from the Past</a></li><li><a
href="http://kometbomb.net/2010/03/03/review-starball/" title="Review: Starball">Review: Starball</a></li><li><a
href="http://kometbomb.net/2009/09/22/introducing-my-latest-projects/" title="Introducing My Latest Projects">Introducing My Latest Projects</a></li><li><a
href="http://kometbomb.net/2008/02/21/awesome-games-that-are-also-free/" title="Awesome games that are also free">Awesome games that are also free</a></li></ul>]]></content:encoded> <wfw:commentRss>http://kometbomb.net/2008/04/10/rom-check-fail/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <enclosure
url="http://orangeloungeradio.com/podcast/OLR_275_B_041308.mp3" length="46840687" type="audio/mpeg" /> </item> <item><title>Stupid Computer Ramblings (and Ikaruga)</title><link>http://kometbomb.net/2008/03/30/stupid-computer-ramblings-and-ikaruga/</link> <comments>http://kometbomb.net/2008/03/30/stupid-computer-ramblings-and-ikaruga/#comments</comments> <pubDate>Sun, 30 Mar 2008 16:42:53 +0000</pubDate> <dc:creator>kometbomb</dc:creator> <category><![CDATA[Games]]></category> <category><![CDATA[Nonsense]]></category> <category><![CDATA[Wordpress]]></category> <category><![CDATA[Dreamcast]]></category> <category><![CDATA[Ikaruga]]></category> <category><![CDATA[LCD]]></category> <category><![CDATA[Shmup]]></category><guid
isPermaLink="false">http://kometbomb.net/?p=239</guid> <description><![CDATA[<img
style="width:100px;height:100px;margin:8px;float:left;" class="corners iradius8" src="http://kometbomb.net/wp-content/uploads/2008/03/ikaruga_01-250x250.jpg" />It only occured to me yesterday that there's a clear benefit in that I bought a new LCD screen a while ago. I leaned on the screen and realized the screen of course rotates 90 degrees flipping the vertical and horizontal axes. For me, realizing that old feature was a revelation: it allows playing vertically scrolling shmups properly.]]></description> <content:encoded><![CDATA[<p>It only occured to me yesterday that there&#8217;s a clear benefit in that I bought a new LCD screen a while ago. I leaned on the screen and realized the screen of course rotates 90 degrees flipping the vertical and horizontal axes.</p><p>Well, this is nothing new and I knew that was popular back in the days when screens were so small that there was a bona-fide benefit in a tilted screen: you could fit a preview of a A4 document on the screen with realistic dimensions.</p><p>I don&#8217;t do design work on my computer. But, for me realizing that old feature was a revelation: it allows playing vertically scrolling <a
href="http://www.shmups.com">shmups</a> properly. I it never occured to me that you could do that even though I knew some people simply tilted their TV sets on their sides (which could be harmful).</p><p><a
href="http://kometbomb.net/wp-content/uploads/2008/03/ikaruga_01.jpg"><img
src="http://kometbomb.net/wp-content/uploads/2008/03/ikaruga_01.jpg" alt="" title="ikaruga_01" class="corners iradius8" style="border: 0pt none ; margin: 16px; float: right;" width="300" height="400"></a> Long story short, I can be stupid and most importantly: <a
href="http://en.wikipedia.org/wiki/Ikaruga">Ikaruga</a> kicks rear. It&#8217;s barely playable on <a
href="http://chanka.emulatronia.com/">Chankast</a> (the better Sega Dreamcast emulator out there, which is not saying a lot) but the game is so awesome that who cares. It&#8217;s quite hard in any case, some invisible sprites hardly make it any harder.</p><p>Everyone and their mother knows Ikaruga is the best thing out there etc. but it also occured to me just yesterday only four people are responsible of creating it. Similarly, the game is only about 20 megabytes in size and even the game mechanics are very simple even for a late 1980s shmup (<em>no</em> power-ups whatsoever). It&#8217;s somehow very reassuring for the bedroom game maker. It&#8217;s a real shame the game isn&#8217;t available on the PC (it should be <a
href="http://kotaku.com/376823/its-official-ikaruga-hitting-xbla-this-week">available for that Xbox Live Arcade thing this April</a> &#8212; maybe that gives hope it could eventually find its way to the remaining few).<div
id="zemanta-pixie" style="margin: 5px 0pt; width: 100%;"><a
id="zemanta-pixie-a" href="http://www.zemanta.com/" title="Zemified by Zemanta"><img
id="zemanta-pixie-img" src="http://img.zemanta.com/pixie.png?x-id=f4ac302e-d006-4333-af3f-8b9e4f154a78" style="border: medium none ; float: right;"></a></div><h3  class="related_post_title">You might also like...</h3><ul
class="related_post"><li>No Related Post</li></ul>]]></content:encoded> <wfw:commentRss>http://kometbomb.net/2008/03/30/stupid-computer-ramblings-and-ikaruga/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Show Me Yours and I&#8217;ll Show You Mine</title><link>http://kometbomb.net/2008/03/24/show-me-yours-and-ill-show-you-mine/</link> <comments>http://kometbomb.net/2008/03/24/show-me-yours-and-ill-show-you-mine/#comments</comments> <pubDate>Mon, 24 Mar 2008 16:40:51 +0000</pubDate> <dc:creator>kometbomb</dc:creator> <category><![CDATA[Games]]></category> <category><![CDATA[Nonsense]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[Game development]]></category> <category><![CDATA[Game programming]]></category> <category><![CDATA[Video games]]></category><guid
isPermaLink="false">http://kometbomb.net/?p=231</guid> <description><![CDATA[The level editor for your games, that is. My personal experience of making games is that the behind the scenes tools such as level editors are at least half the work. If you're lucky, you can use existing tools for creating the data but I guess that is very specific to a genre.]]></description> <content:encoded><![CDATA[<p>The level editor for your games, that is. My personal experience of making games is that the behind the scenes tools such as level editors are at least half the work. If you&#8217;re lucky, you can use existing tools for creating the data but I guess that is very specific to a genre.</p><div
style="float:right; margin: 16px 0 16px 16px;"><object
width="253" height="200"><param
name="movie" value="http://www.youtube.com/v/qz2um6EFMU4&#038;rel=0&#038;color1=0xe1600f&#038;color2=0xfebd01&#038;hl=en"></param><param
name="wmode" value="transparent"></param><embed
src="http://www.youtube.com/v/qz2um6EFMU4&#038;rel=0&#038;color1=0xe1600f&#038;color2=0xfebd01&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="253" height="200"></embed></object></div><p>I have found that developing an editor is not only convenient but also allows you to polish the game mechanics a lot better than doing that purely in code. I guess many game developers think level editors and such are only for bigger projects where the programmer is not the guy who makes the levels. It is possible and manageable to create games by hardcoding the level data and object behavior but as mentioned, a proper editor is so much better.</p><p>Of course, if you have been smart, you will be able to share the code between the game and the editor. And if you are a bit smarter, you can build the editor inside the game so you have a perfect testing environment for the levels &#8212; as long as using dynamic level data is possible in your engine. An extremely good example is the <a
href="http://cubeengine.com/">Cube Engine</a> which allows multi-player level editing while playing.</p><p>Anyway, the original point of this post is that it can be very hard to imagine what&#8217;s a good editor like. Doubly so, if your game idea is different from the average game. I figured it could be helpful for some indie game devs if I show some of my level editors. I hope this inspires people to tell about their development environment.</p><p>Below is the level editor for my forthcoming Pac-Man clone. I couldn&#8217;t use any tile-based map editors, which probably would have been more than sufficient for a tile-based game. Mine uses linked nodes that can be moved freely in 2D space.</p><p><center><img
src="http://kometbomb.net/wp-content/uploads/2008/03/paced.png" alt="" class="corners iradius12" style="margin: 16px" /></center></p><p>The level editor does most of the work: the game only gets a crunched copy of the level data with precalculated splines and so on. Stuff like that makes it possible to keep the level rendering code intact while the editor gets more features. Originally, the editor and the game just did straight lines. When I added the splines to the editor, the game still got a list of straight lines and used the old code.</p><p>The game and the editor are both made using SDL and OpenGL. Using SDL means you have to reinvent the wheel a bit when it comes to GUI stuff but it is manageable. If you can figure out how to implement dragging with the mouse (SDL only provided events for mouse clicks, releases and motion), you are able to create a GUI that will be good enough for your project.</p><p>This is a level editor for an untitled shmup project of mine. All the attack wave movement is defined by Catmull-Rom splines (unless the object is of special type, e.g. a homing missile).</p><p><center><img
src="http://kometbomb.net/wp-content/uploads/2008/03/shmuped.png" alt="" title="shmuped" width="500" height="378" class="corners iradius16" style="margin: 16px" /></center></p><p>The editor imports all the object classes thus it is trivial to display the graphic for an object. The editor then exports the level data as C++ code by subclassing the level class and automatically writing code for events like &#8220;spawn object type Enemy when camera enters this node&#8221;.</p><p>The editor allows the user to &#8220;rewind&#8221; and &#8220;play&#8221; the level while editing. When F5 is pressed, the camera starts following the camera movement spline from the currently selected node and enemies move along their own paths. This is only an approximation since no AI code is available in the editor. That means you can only see spline based movement. It nonetheless makes it much nicer to plan attack waves.</p><p>The intermediate game level data for both editors is stored as an XML document. Most game data is representable as a tree, so XML is a natural choice for it. <a
href="/2008/03/21/a-tiny-xml-parser/">As recommended in an earlier post</a>, xmlParser is an excellent choice for a quick way to save your level data. Do not fear XML because of how clunky it can be from the perspective of a programmer &#8212; the mentioned library pretty much removes most of the friction. And, you can always write an XML to <your
data format> converter afterwards.</p><p>Condensing, here&#8217;s what I have learned:</p><ul><li>Writing an editor can be <strong>a lot of work</strong> but you can make it fun and it will pay off in the end</li><li><strong>Use existing frameworks</strong><ul><li>for displaying the game data in the editor</li><li>for saving the editor data</li></ul></li><li>If at all possible, <strong>allow gameplay</strong> inside the editor</li></ul><p>So, what do your editors look like? What have you learned about game development and how editors can make it more fun?</p><h3  class="related_post_title">You might also like...</h3><ul
class="related_post"><li><a
href="http://kometbomb.net/2009/09/22/introducing-my-latest-projects/" title="Introducing My Latest Projects">Introducing My Latest Projects</a></li><li><a
href="http://kometbomb.net/2008/07/23/collision-detection-with-occlusion-queries-redux/" title="Collision Detection with Occlusion Queries Redux">Collision Detection with Occlusion Queries Redux</a></li><li><a
href="http://kometbomb.net/2010/03/10/the-last-arcadian/" title="Review: The Last Arcadian">Review: The Last Arcadian</a></li><li><a
href="http://kometbomb.net/2010/03/03/review-starball/" title="Review: Starball">Review: Starball</a></li><li><a
href="http://kometbomb.net/2010/02/28/libconfig/" title="An Alternative to XML">An Alternative to XML</a></li></ul>]]></content:encoded> <wfw:commentRss>http://kometbomb.net/2008/03/24/show-me-yours-and-ill-show-you-mine/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Trackmania vs. HotWheels</title><link>http://kometbomb.net/2008/03/23/trackmania-vs-hotwheels/</link> <comments>http://kometbomb.net/2008/03/23/trackmania-vs-hotwheels/#comments</comments> <pubDate>Sun, 23 Mar 2008 09:51:43 +0000</pubDate> <dc:creator>kometbomb</dc:creator> <category><![CDATA[Games]]></category> <category><![CDATA[Nonsense]]></category> <category><![CDATA[Trackmania]]></category> <category><![CDATA[Video]]></category> <category><![CDATA[Video games]]></category><guid
isPermaLink="false">http://kometbomb.net/?p=230</guid> <description><![CDATA[Thanks to whoever uploaded these two videos. You might also like...Review: The Last ArcadianReview: StarballIntroducing My Latest ProjectsThrustlikesROM CHECK FAIL]]></description> <content:encoded><![CDATA[<p>Thanks to whoever uploaded these two videos.</p><p><center><object
width="425" height="355"><param
name="movie" value="http://www.youtube.com/v/bYVvd-TMB_M&#038;rel=0&#038;color1=0xe1600f&#038;color2=0xfebd01&#038;hl=en"></param><param
name="wmode" value="transparent"></param><embed
src="http://www.youtube.com/v/bYVvd-TMB_M&#038;rel=0&#038;color1=0xe1600f&#038;color2=0xfebd01&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></center></p><p><center><object
width="425" height="355"><param
name="movie" value="http://www.youtube.com/v/m4D_ssMZqew&#038;rel=0&#038;color1=0xe1600f&#038;color2=0xfebd01&#038;hl=en"></param><param
name="wmode" value="transparent"></param><embed
src="http://www.youtube.com/v/m4D_ssMZqew&#038;rel=0&#038;color1=0xe1600f&#038;color2=0xfebd01&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></center></p><h3  class="related_post_title">You might also like...</h3><ul
class="related_post"><li><a
href="http://kometbomb.net/2010/03/10/the-last-arcadian/" title="Review: The Last Arcadian">Review: The Last Arcadian</a></li><li><a
href="http://kometbomb.net/2010/03/03/review-starball/" title="Review: Starball">Review: Starball</a></li><li><a
href="http://kometbomb.net/2009/09/22/introducing-my-latest-projects/" title="Introducing My Latest Projects">Introducing My Latest Projects</a></li><li><a
href="http://kometbomb.net/2008/06/18/thrustlikes/" title="Thrustlikes">Thrustlikes</a></li><li><a
href="http://kometbomb.net/2008/04/10/rom-check-fail/" title="ROM CHECK FAIL">ROM CHECK FAIL</a></li></ul>]]></content:encoded> <wfw:commentRss>http://kometbomb.net/2008/03/23/trackmania-vs-hotwheels/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)

Served from: kometbomb.net @ 2010-09-09 17:36:41 -->