<?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>Intermediaware &#187; Uncategorized</title>
	<atom:link href="http://intermediaware.com/blog/category/uncategorized/feed" rel="self" type="application/rss+xml" />
	<link>http://intermediaware.com/blog</link>
	<description>indie video game developer blgo</description>
	<lastBuildDate>Fri, 29 Mar 2013 19:18:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>A big adventure is coming to your tablet!</title>
		<link>http://intermediaware.com/blog/a-big-adventure-is-coming-to-your-tablet</link>
		<comments>http://intermediaware.com/blog/a-big-adventure-is-coming-to-your-tablet#comments</comments>
		<pubDate>Fri, 13 Jul 2012 18:03:51 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://intermediaware.com/blog/?p=304</guid>
		<description><![CDATA[Captain Backwater is coming to your iPhone/iPad/Android devices (as well as Windows Phone, Blackberry, Playstation Mobile and hopefully OUYA). Watch the trailer.]]></description>
			<content:encoded><![CDATA[<p><a href="http://intermediaware.com/games/CaptainBackwater">Captain Backwater</a> is coming to your iPhone/iPad/Android devices (as well as Windows Phone, Blackberry, Playstation Mobile and hopefully OUYA).<br />
<img alt="" src="http://a1.sphotos.ak.fbcdn.net/hphotos-ak-ash3/534984_348506401892486_692059543_n.jpg" title="Captain Backwater" class="alignnone" width="500" /></p>
<p><a href='http://vimeo.com/30516551'>Watch the trailer</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://intermediaware.com/blog/a-big-adventure-is-coming-to-your-tablet/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WAT? MySql and NULL values.</title>
		<link>http://intermediaware.com/blog/wat-mysql-and-null-values</link>
		<comments>http://intermediaware.com/blog/wat-mysql-and-null-values#comments</comments>
		<pubDate>Fri, 13 Jul 2012 08:18:31 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://intermediaware.com/blog/?p=291</guid>
		<description><![CDATA[This is a quote from the MySql Manual: The NULL value can be surprising until you get used to it. And yes, the documentation is right. Yesterday we encountered a strange bug on a project at Gameforge because of a wrong sql statement. Here is what happened. .gist { font-size: .8em; }]]></description>
			<content:encoded><![CDATA[This is a quote from the MySql Manual: 

<blockquote><a href="http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html">The NULL value can be surprising until you get used to it.</a></blockquote>

And yes, the documentation is right. Yesterday we encountered a strange bug on a project at <a href="http://www.gameforge.com">Gameforge</a> because of a <em>wrong</em> sql statement. Here is what happened.
<br/><br/>
<span id="more-291"></span>

<style>
.gist { font-size: .8em; }
</style>
<script src="https://gist.github.com/3103522.js?file=main.cpp"></script>]]></content:encoded>
			<wfw:commentRss>http://intermediaware.com/blog/wat-mysql-and-null-values/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Game-Development-Tool: SpriteSheetGenerator</title>
		<link>http://intermediaware.com/blog/game-development-tool-spritesheetgenerator</link>
		<comments>http://intermediaware.com/blog/game-development-tool-spritesheetgenerator#comments</comments>
		<pubDate>Sat, 02 Apr 2011 19:53:47 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://intermediaware.com/blog/?p=9</guid>
		<description><![CDATA[Sprite sheets are very important in game development (and they can also be very useful in web development). With the right tool creating them is a no-brainer. My good friend @dennisosimon wrote an easy-to-use generator in Java (full source is available at gitHub). I used it to generate all the sprite sheets for my current [...]]]></description>
			<content:encoded><![CDATA[
    Sprite sheets are very important in game development (and they can also be very useful in web development). With the right tool creating them is a no-brainer.<span id="more-9"></span>

My good friend <a href="http://twitter.com/#!/dennisosimon">@dennisosimon</a> wrote an easy-to-use generator in Java (full source is available at <a href="https://github.com/dennissimon/SpriteSheetGenerator">gitHub</a>). I used it to generate all the sprite sheets for my current game <em>Captain Backwater</em>. Here is a screenshot of the tool:
<div class='p_embed p_image_embed'>
<img alt="Media_httpwwwintermed_dyrfc" height="632" src="http://intermediaware.com/blog/wp-content/uploads/2011/04/media_httpwwwintermed_dyrFC.png.scaled500-196x300.png" width="413" />
</div>


It's easy to use, supports drag and drop and various alignments. I love it! And here's how a generated sprite sheet looks like:
<div class='p_embed p_image_embed'>
<img alt="Media_httpwwwintermed_kvmzf" height="300" src="http://intermediaware.com/blog/wp-content/uploads/2011/04/media_httpwwwintermed_kvmzf.png.scaled500.png" width="288" />
</div>
<br /><span style="font-size: 11px;">Captain Backwater speaking to the player (graphics by <a href="http://twitter.com/#!/Emme73">@Emme73</a>)</span>
<ul>
	<li><a href="https://github.com/dennissimon/SpriteSheetGenerator/zipball/master">ZIP-Download from GitHub</a></li>
</ul>
  ]]></content:encoded>
			<wfw:commentRss>http://intermediaware.com/blog/game-development-tool-spritesheetgenerator/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Hellbreed</title>
		<link>http://intermediaware.com/blog/hellbreed</link>
		<comments>http://intermediaware.com/blog/hellbreed#comments</comments>
		<pubDate>Fri, 01 Apr 2011 02:37:02 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://intermediaware.com/blog/?p=10</guid>
		<description><![CDATA[Gameforge, the company I'm working for, will release a new browser-based action-RPG very soon, called Hellbreed. The free hack and slay browser game Hellbreed offers both a multiplayer as well as a single player mode. The players will have three characters to choose from. It is developed by Inflammables and uses Flash as front end [...]]]></description>
			<content:encoded><![CDATA[
    <a href="http://www.gameforge.com">Gameforge</a>, the company I'm working for, will release a new browser-based action-RPG very soon, called Hellbreed.<span id="more-10"></span>

The free hack and slay browser game Hellbreed offers both a multiplayer as well as a single player mode. The players will have three characters to choose from.

It is developed by <a href="http://www.inflammables.de/">Inflammables</a> and uses Flash as front end technology. The game looks stunning and has some very nice particle and lightning-effects.

 <iframe title="YouTube video player" src="http://www.youtube.com/embed/05FStb8nGho" allowfullscreen="" frameborder="0" height="390" width="640"></iframe>
  ]]></content:encoded>
			<wfw:commentRss>http://intermediaware.com/blog/hellbreed/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Classic of the week: Indiana Jones and the Fate of Atlantis</title>
		<link>http://intermediaware.com/blog/classic-of-the-week-indiana-jones-and-the-fate-of-atlantis</link>
		<comments>http://intermediaware.com/blog/classic-of-the-week-indiana-jones-and-the-fate-of-atlantis#comments</comments>
		<pubDate>Mon, 14 Mar 2011 03:54:31 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Classic Games]]></category>

		<guid isPermaLink="false">http://intermediaware.com/blog/?p=11</guid>
		<description><![CDATA[One of the best adventure games of all time is without a doubt Lucas Arts' Indiana Jones and the Fate of Atlantis. Lucas Arts has done a lot of great adventure games in the 80s and 90s. And I could also have choose Zak McKracken, Maniac Mansion, Day of the Tentacle or Monkey Island as [...]]]></description>
			<content:encoded><![CDATA[
    One of the best adventure games of all time is without a doubt Lucas Arts' <em>Indiana Jones and the Fate of Atlantis</em>.<span id="more-11"></span>

<em>Lucas Arts</em> has done a lot of great adventure games in the 80s and 90s. And I could also have choose <strong><em>Zak McKracken</em>, <em>Maniac Mansion</em>, <em>Day of the Tentacle</em> or <em>Monkey Island</em></strong> as classic game of the week.

I've chosen <em>Indy 4</em>, because I think it was the first adventure game that let the player decide to play one of three different plots each with unique cutscenes, puzzles and locations. The story was incredible, too. I asked myself very often, why they didn't made a movie out of it. And it had a lot of very funny scenes.

I really hope that after the Special Editions of Monkey Island (which I really LOVE) that more Lucas Arts classic adventures will come in a new version to desktop PC's and mobile phones.
<div class='p_embed p_image_embed'>
<img alt="Media_httpwwwintermed_cnfth" height="200" src="http://intermediaware.com/blog/wp-content/uploads/2011/03/media_httpwwwintermed_Cnfth.png.scaled500-300x187.png" width="320" />
</div>

  ]]></content:encoded>
			<wfw:commentRss>http://intermediaware.com/blog/classic-of-the-week-indiana-jones-and-the-fate-of-atlantis/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hack of the day: Render circles without trigonometry</title>
		<link>http://intermediaware.com/blog/hack-of-the-day-render-circles-without-trigonometry</link>
		<comments>http://intermediaware.com/blog/hack-of-the-day-render-circles-without-trigonometry#comments</comments>
		<pubDate>Sat, 12 Mar 2011 22:12:34 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[Beautiful hacks]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://intermediaware.com/blog/?p=12</guid>
		<description><![CDATA[The Bresenham line algorithm avoids trigonometry and uses integer math to calculate the points of a line, circle or ellipse. Here is a small example (implemented in C++ / SFML): #include &#60;SFML/Graphics.hpp&#62; void drawEllipse(sf::RenderWindow &#38;w, int cx, int cy, int r1, int r2) { sf::Shape point = sf::Shape::Circle(0, 0, 1, sf::Color::White); int x = -r1, [...]]]></description>
			<content:encoded><![CDATA[
    The Bresenham line algorithm avoids trigonometry and uses integer math to calculate the points of a line, circle or ellipse.<span id="more-12"></span>

Here is a small example (implemented in C++ / SFML):


  <pre>#include &lt;SFML/Graphics.hpp&gt;

void drawEllipse(sf::RenderWindow &amp;w, int cx, int cy, int r1, int r2) {
    sf::Shape point = sf::Shape::Circle(0, 0, 1, sf::Color::White);
    
    int x = -r1, y = 0;
    int err = r1 * r1 - (2 * r1 - 1) * r2 * r2, e2;
    
    do {
        point.SetPosition(cx - x, cy + y) ; w.Draw(point);
        point.SetPosition(cx + x, cy + y) ; w.Draw(point);
        point.SetPosition(cx + x, cy - y) ; w.Draw(point);
        point.SetPosition(cx - x, cy - y) ; w.Draw(point);
    
        e2 = 2 * err;
        
        if (e2 &gt;= (x * 2 + 1) * r2 * r2)
            err += (++x * 2 + 1) * r2 * r2;
        
        if (e2 

To learn more about the theory behind the algorithm, please have a look at the Midpoint Circle Algorithm at Wikipedia.</pre>

  ]]></content:encoded>
			<wfw:commentRss>http://intermediaware.com/blog/hack-of-the-day-render-circles-without-trigonometry/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A HTML5 game written in 4 hours</title>
		<link>http://intermediaware.com/blog/a-html5-game-written-in-4-hours</link>
		<comments>http://intermediaware.com/blog/a-html5-game-written-in-4-hours#comments</comments>
		<pubDate>Sun, 06 Mar 2011 22:41:05 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://intermediaware.com/blog/?p=13</guid>
		<description><![CDATA[Yesterday I started to play around with monkey. A language that allows you to create apps on multiple platforms. At the moment the following targets are supported: HTML5, Flash, Native OpenGL/OpenAL (Windows/Mac), Android, iOS, XNA. The concept of the language is very good, so I'm sure there will be more targets and libs created by [...]]]></description>
			<content:encoded><![CDATA[    Yesterday I started to play around with <a href="http://www.monkeycoder.co.nz/">monkey</a>. A language that allows you to <strong>create apps on multiple platforms</strong>.<span id="more-13"></span>

At the moment the following targets are supported: HTML5, Flash, Native OpenGL/OpenAL (Windows/Mac), Android, iOS, XNA.

The <strong>concept of the language is very good</strong>, so I'm sure there will be more targets and libs created by the community soon.

Today, I started to work on a small asteroids-like game to get more used to the language, and <a href="http://intermediaware.com/Games/AsteroidFighter">this</a> little game is the result that I achieved in around 4 hours.

The full <a href="https://github.com/JochenHeizmann/asteroidgame"> source code is available at GitHub</a>. If you have any questions, don't hesitate to ask. If you've made any improvements, please let me know.
  ]]></content:encoded>
			<wfw:commentRss>http://intermediaware.com/blog/a-html5-game-written-in-4-hours/feed</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>Hack of the day: Array-like access to fields</title>
		<link>http://intermediaware.com/blog/hack-of-the-day-array-like-access-to-fields</link>
		<comments>http://intermediaware.com/blog/hack-of-the-day-array-like-access-to-fields#comments</comments>
		<pubDate>Sat, 26 Feb 2011 02:12:23 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[Beautiful hacks]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://intermediaware.com/blog/?p=14</guid>
		<description><![CDATA[Sometimes it is useful if you are able to access fields of a struct or class as an array. For example, if you have the following struct: struct Point3D { float x,y,z; }; but you require to access the x,y and z-fields as an array, you can use an union: union Point3D { float coord[3]; [...]]]></description>
			<content:encoded><![CDATA[
    Sometimes it is useful if you are able to <strong>access fields</strong> of a <em>struct</em> or <em>class</em> <strong>as an array</strong>.<span id="more-14"></span>

For example, if you have the following <em>struct</em>:
<div class="CodeRay">
  <div class="code"><pre>struct Point3D {
    float x,y,z;
};</pre></div>
</div>


but you require to access the x,y and z-fields as an array, you can use an union:

<div class="CodeRay">
  <div class="code"><pre>union Point3D {
    float coord[3];
    struct {
        float x,y,z;
    };
};

Point3D p;
p.x = 1;
p.coord[1] = 2; // the same as  p.y = 2;
p.z = 3;</pre></div>
</div>


Another possibility is to create a class and overload the []-operator:

<div class="CodeRay">
  <div class="code"><pre>class Point3D {
public:
    float&amp; operator[](int x) { 
        assert(x &lt;= 2 &amp;&amp; x &gt;= 0); 
        if (x == 0) return this-&gt;x; 
        if (x == 1) return this-&gt;y; 
        return this-&gt;z;
    }

    float x,y,z;
};

Point3D p;
p.x = 1;
p[1] = 2;
p.z = 3;</pre></div>
</div>
  ]]></content:encoded>
			<wfw:commentRss>http://intermediaware.com/blog/hack-of-the-day-array-like-access-to-fields/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Hack of the day: Use references for parameter passing</title>
		<link>http://intermediaware.com/blog/hack-of-the-day-use-references-for-parameter-passing</link>
		<comments>http://intermediaware.com/blog/hack-of-the-day-use-references-for-parameter-passing#comments</comments>
		<pubDate>Fri, 25 Feb 2011 04:33:03 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[Beautiful hacks]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://intermediaware.com/blog/?p=15</guid>
		<description><![CDATA[If you have functions with lots of parameters you should consider using a struct or class and pass the parameters by reference. A reference or pointer is 4 bytes (on 32Bit systems). A function or method with a lot of parameters passed by value is more expansive than passing by reference because each parameter is [...]]]></description>
			<content:encoded><![CDATA[
    If you have functions with lots of parameters you should consider using a <em>struct</em> or <em>class</em> and pass the parameters by reference.<span id="more-15"></span>

A reference or pointer is 4 bytes (on 32Bit systems). A function or method with a lot of parameters passed by value is more expansive than passing by reference because <strong>each parameter is copied on the stack</strong>.

If you have complex parameters like classes you should never pass them by value, because the constructors and destructors will be invoked.

Pass by value:
<div class="CodeRay">
  <div class="code"><pre>int doStuff(int a, int b) {
    return a + b;
}

doStuff(1, 2);</pre></div>
</div>


<br />

Pass by reference:
<div class="CodeRay">
  <div class="code"><pre>struct someData {
    int a, b;
};

int doStuff(const someData &amp;foo) {
    return foo.a + foo.b;
}

someData foo;
foo.a = 1;
foo.b = 2;

doStuff(foo);</pre></div>
</div>
  ]]></content:encoded>
			<wfw:commentRss>http://intermediaware.com/blog/hack-of-the-day-use-references-for-parameter-passing/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Classic of the week: Defender Of The Crown</title>
		<link>http://intermediaware.com/blog/classic-of-the-week-defender-of-the-crown</link>
		<comments>http://intermediaware.com/blog/classic-of-the-week-defender-of-the-crown#comments</comments>
		<pubDate>Mon, 21 Feb 2011 02:37:59 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Classic Games]]></category>

		<guid isPermaLink="false">http://intermediaware.com/blog/?p=16</guid>
		<description><![CDATA[When Defender Of The Crown was released in 1986 it had the best graphics ever seen in a home computer game. It's a strategy game where the player assumes the role of a Saxon and tries to fight off the Norman hordes and wrestle for control of England. The main game is played on a [...]]]></description>
			<content:encoded><![CDATA[
    When <strong>Defender Of The Crown</strong> was released in 1986 it had the best graphics ever seen in a home computer game.<span id="more-16"></span>

It's a strategy game where the player assumes the role of a Saxon and tries to fight off the Norman hordes and wrestle for control of England. 

The main game is played on a map view where you can build your army, conquer new territories and attack other players. There were various sub games like rescue a princess, play a tournament or attack a castle.

The game's still worth playing today, although the controls of the action parts are quite difficult to handle.
<div class='p_embed p_image_embed'>
<img alt="Media_httpwwwintermed_ugabg" height="196" src="http://intermediaware.com/blog/wp-content/uploads/2011/02/media_httpwwwintermed_ugaBg.png.scaled500-300x187.png" width="314" />
</div>

  ]]></content:encoded>
			<wfw:commentRss>http://intermediaware.com/blog/classic-of-the-week-defender-of-the-crown/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
