<?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>Thousand Thoughts</title>
	<atom:link href="http://www.thousand-thoughts.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thousand-thoughts.com</link>
	<description></description>
	<lastBuildDate>Fri, 20 Apr 2012 11:19:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>As a Guest at About:Games</title>
		<link>http://www.thousand-thoughts.com/2012/04/as-a-guest-at-aboutgames/</link>
		<comments>http://www.thousand-thoughts.com/2012/04/as-a-guest-at-aboutgames/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 10:41:36 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://www.thousand-thoughts.com/?p=934</guid>
		<description><![CDATA[Tobias and Ralf from about:games invited me to a podcast (in German). We talk about game development as a profession and the game industry. You can listen to it here.]]></description>
			<content:encoded><![CDATA[<p>Tobias and Ralf from <a href="http://www.about-gamescast.de/" target="_blank">about:games</a> invited me to a podcast (in German). We talk about game development as a profession and the game industry.</p>
<p>You can listen to it <a href="http://www.about-gamescast.de/2012/04/02/folge-11-spielentwicklung-als-beruf/" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thousand-thoughts.com/2012/04/as-a-guest-at-aboutgames/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Sensor Fusion Tutorial</title>
		<link>http://www.thousand-thoughts.com/2012/03/android-sensor-fusion-tutorial/</link>
		<comments>http://www.thousand-thoughts.com/2012/03/android-sensor-fusion-tutorial/#comments</comments>
		<pubDate>Fri, 16 Mar 2012 12:47:53 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[complementary filter]]></category>
		<category><![CDATA[Sensor Fusion]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.thousand-thoughts.com/?p=804</guid>
		<description><![CDATA[While working on my master thesis, I&#8217;ve made some experiences with sensors in Android devices and I thought  I&#8217;d share them with other Android developers stumbling over my blog. In my work I was developing a head tracking component for &#8230; <a href="http://www.thousand-thoughts.com/2012/03/android-sensor-fusion-tutorial/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>While working on my <a title="Publications" href="http://www.thousand-thoughts.com/publications/">master thesis</a>, I&#8217;ve made some experiences with sensors in Android devices and I thought  I&#8217;d share them with other Android developers stumbling over my blog. In my work I was developing a head tracking component for a prototype system. Since it had to adapt audio output to the orientation of the users head, it required to respond quickly and be accurate at the same time.</p>
<p>I used my Samsung Galaxy S2 and decided to use its gyroscope in conjunction with the accelerometer and the magnetic field sensor in order to measure the user&#8217;s head rotations both, quickly and accurately. To acheive this I implemented a complementary filter to get rid of the gyro drift and the signal noise of the accelerometer and magnetometer. The following tutorial describes in detail how it&#8217;s done.</p>
<p><span id="more-804"></span></p>
<p>There are already several tutorials on how to get sensor data from the Android API, so I&#8217;ll skip the details on android sensor basics and focus on the sensor fusion algorithm. The <a href="http://developer.android.com/reference/android/hardware/SensorManager.html" target="_blank">Android API Reference </a>is also a very helpful entry point regarding the acquisition of sensor data. This tutorial is based on the Android API version 10 (platform 2.3.3), by the way.</p>
<p>This article is divided into two parts. The first part covers the theoretical background of a complementary filter for sensor signals as described by Shane Colton <a href="http://web.mit.edu/scolton/www/filter.pdf">here</a>. The second part describes the implementation in the Java programming laguage. Everybody who thinks the theory is boring and wants to start programing right away can skip directly to the second part. The first part is interesting for people who develop on other platforms than Android, iOS for example, and want to get better results out of the sensors of their devices.</p>
<p><strong>Update (March 22, 2012):</strong><br />
I&#8217;ve created a small Android project which contains the whole runnable code from this tutorial. You can download it here:<br />
<a href="http://www.thousand-thoughts.com/wp-content/uploads/SensorFusion1.zip">SensorFusion1.zip</a></p>
<p><strong>Update (April 4, 2012):</strong><br />
Added a small bugfix in the examples GUI code.</p>
<h2>Sensor Fusion via Complementary Filter</h2>
<p>Before we start programming, I want to explain briefly how our sensor fusion approach works. The common way to get the attitude of an Android device is to use the <em>SensorManager.getOrientation()</em> method to get the three orientation angles. These two angles are based on the accelerometer and magenotmeter output. In simple terms, the acceletometer provides the gravitiy vector (the vector pointing towards the centre of the earth) and the magnetometer works as a compass. The Information from both sensors suffice to calculate the device&#8217;s orientation. However both sensor outputs are inacurate, expecially the output from the magnetic field sensor which includes a lot of noise.</p>
<p>The gyroscope in the device is far more accurate and has a very short response time. Its downside is the dreaded gyro drift. The gyro provides the angular rotation speeds for all three axes. To get the actual orientation those speed values need to be integrated over time.  This is done by multiplying the angular speeds with the time interval between the last and the current sensor output. This yields a rotation increment. The sum of all rotation increments yields the absolut orientation of the device. During this process small errors are introduced in each iteration. These small errors add up over time resulting in a constant slow rotation of the calculated orientation, the gyro drift.</p>
<p>To avoid both, gyro drift and noisy orientation, the gyroscope output is applied only for orientation changes in short time intervals, while the magnetometer/acceletometer data is used as support information over long periods of time. This is equivalent to low-pass filtering of the accelerometer and magnetic field sensor signals and high-pass filtering of the gyroscope signals. The overall sensor fusion and filtering looks like this:</p>
<p><a href="http://www.thousand-thoughts.com/wp-content/uploads/sensor_fusion.png"><img class="aligncenter size-full wp-image-846" title="sensor_fusion" src="http://www.thousand-thoughts.com/wp-content/uploads/sensor_fusion.png" alt="" width="600" height="205" /></a></p>
<p>So what exactly does high-pass and low-pass filtering of the sensor data mean? The sensors provide their data at (more or less) regular time intervals. Their values can be shown as signals in a graph with the time as the x-axis, similar to an audio signal. The low-pass filtering of the noisy accelerometer/magnetometer signal (<em>accMagOrientation</em> in the above figure) are orientation angles averaged over time within a constant time window.</p>
<p>Later in the implementation, this is accomplished by slowly introducing new values from the accelerometer/magnetometer to the absolute orientation:</p>
<pre class="brush: java; gutter: true">// low-pass filtering: every time a new sensor value is available
// it is weighted with a factor and added to the absolute orientation
accMagOrientation = accMagOrientation + factor * newAccMagValue;</pre>
<p>The high-pass filtering of the integrated gyroscope data is done by replacing the filtered high-frequency component from <em>accMagOrientation</em> with the corresponding gyroscope orientation values:</p>
<pre class="brush: java; gutter: true">fusedOrientation =
    (1 - factor) * newGyroValue;    // high-frequency component
    + factor * newAccMagValue;      // low-frequency component</pre>
<p>In fact, this is already our finished comlementary filter.</p>
<p>Assuming that the device is turned 90° in one direction and after a short time turned back to its initial position, the intermediate signals in the filtering process would look something like this:</p>
<p style="text-align: left;"><a href="http://www.thousand-thoughts.com/wp-content/uploads/sensor_data.png"><img class="aligncenter size-full wp-image-888" title="sensor_data" src="http://www.thousand-thoughts.com/wp-content/uploads/sensor_data.png" alt="" width="600" height="389" /></a></p>
<p style="text-align: left;">
<p style="text-align: left;">Notice the gyro drift in the integrated gyroscope signal. It results from the small irregularities in the original angular speed. Those little deviations add up during the integration and cause an additional undesireable slow rotation of the gyroscope based orientation.</p>
<p style="text-align: left;">
<p style="text-align: left;">
]]></content:encoded>
			<wfw:commentRss>http://www.thousand-thoughts.com/2012/03/android-sensor-fusion-tutorial/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Master Thesis &#8230; Printed</title>
		<link>http://www.thousand-thoughts.com/2012/03/master-thesis-printed/</link>
		<comments>http://www.thousand-thoughts.com/2012/03/master-thesis-printed/#comments</comments>
		<pubDate>Sat, 03 Mar 2012 17:13:16 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[Master Thesis]]></category>
		<category><![CDATA[monolith]]></category>
		<category><![CDATA[print]]></category>

		<guid isPermaLink="false">http://www.thousand-thoughts.com/?p=759</guid>
		<description><![CDATA[Finally, here it is. My finished thesis&#8230; &#8230;in print&#8230; Actually&#8230; &#8230;looking at it this way&#8230; &#8230; &#8230; &#8230;Whoa!]]></description>
			<content:encoded><![CDATA[<table border="0" align="center">
<tbody>
<tr>
<td><a href="http://www.thousand-thoughts.com/wp-content/uploads/20120303_134655.jpg"><img class="alignright size-full wp-image-768" title="20120303_134655" src="http://www.thousand-thoughts.com/wp-content/uploads/20120303_134655.jpg" alt="" width="250" height="188" /></a></td>
<td><a href="http://www.thousand-thoughts.com/wp-content/uploads/20120303_134720.jpg"><img class="alignright size-full wp-image-770" title="20120303_134720" src="http://www.thousand-thoughts.com/wp-content/uploads/20120303_134720.jpg" alt="" width="250" height="188" /></a></td>
</tr>
<tr>
<td align="center"><strong>Finally, here it is. My finished thesis&#8230;</strong></td>
<td align="center"><strong>&#8230;in print&#8230;</strong></td>
</tr>
</tbody>
</table>
<p><span id="more-759"></span></p>
<table style="margin-top: 10px;" border="0" align="center">
<tbody>
<tr>
<td><a href="http://www.thousand-thoughts.com/wp-content/uploads/20120303_134813.jpg"><img class="alignright size-full wp-image-771" title="20120303_134813" src="http://www.thousand-thoughts.com/wp-content/uploads/20120303_134813.jpg" alt="" width="250" height="188" /></a></td>
<td><a href="http://www.thousand-thoughts.com/wp-content/uploads/20120303_134833.jpg"><img class="alignright size-full wp-image-772" title="20120303_134833" src="http://www.thousand-thoughts.com/wp-content/uploads/20120303_134833.jpg" alt="" width="250" height="188" /></a></td>
</tr>
<tr>
<td align="center"><strong>Actually&#8230;</strong></td>
<td align="center"><strong>&#8230;looking at it this way&#8230;</strong></td>
</tr>
</tbody>
</table>
<table style="margin-top: 10px;" border="0" align="center">
<tbody>
<tr>
<td><a href="http://www.thousand-thoughts.com/wp-content/uploads/20120303_134845.jpg"><img class="alignright size-full wp-image-773" title="20120303_134845" src="http://www.thousand-thoughts.com/wp-content/uploads/20120303_134845.jpg" alt="" width="250" height="188" /></a></td>
<td><a href="http://www.thousand-thoughts.com/wp-content/uploads/20120303_135145.jpg"><img class="alignright size-full wp-image-774" title="20120303_135145" src="http://www.thousand-thoughts.com/wp-content/uploads/20120303_135145.jpg" alt="" width="250" height="188" /></a></td>
</tr>
<tr>
<td align="center"><strong>&#8230;</strong></td>
<td align="center"><strong>&#8230;</strong></td>
</tr>
</tbody>
</table>
<table style="margin-top: 10px;" width="640" border="0" align="center">
<tbody>
<tr>
<td><a href="http://www.thousand-thoughts.com/wp-content/uploads/thesis_monolith.png"><img class="size-full wp-image-775 aligncenter" title="thesis_monolith" src="http://www.thousand-thoughts.com/wp-content/uploads/thesis_monolith.png" alt="" width="250" height="188" /></a></td>
</tr>
<tr>
<td align="center"><strong>&#8230;Whoa!</strong></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.thousand-thoughts.com/2012/03/master-thesis-printed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Podcast: About Games</title>
		<link>http://www.thousand-thoughts.com/2012/02/podcast-about-games/</link>
		<comments>http://www.thousand-thoughts.com/2012/02/podcast-about-games/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 14:59:08 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[about:games]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[Ralf Zimmer]]></category>
		<category><![CDATA[Tobias Knoll]]></category>

		<guid isPermaLink="false">http://www.thousand-thoughts.com/?p=753</guid>
		<description><![CDATA[This is for the German speaking people with deeper interest in games: Just a few week ago, Tobias Knoll, a freind of mine, and Ralf Zimmer started a German podcast on games. They talk about game topics on a quite &#8230; <a href="http://www.thousand-thoughts.com/2012/02/podcast-about-games/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This is for the German speaking people with deeper interest in games:</p>
<p>Just a few week ago, Tobias Knoll, a freind of mine, and Ralf Zimmer started a German podcast on games. They talk about game topics on a quite regular basis and cover them more deeply in my oppinion than the mainstream formats in Germany do. Their talks are particularly interesting due to the fact that both of them have so different backgrounds. While Ralf is an independent software developer and game designer, Tobias has recently finished his thesis in study of religions and aims for a Ph.D. in his field.</p>
<p>The podcast is issued every Monday at 0:00 am on <a title="about:games" href="http://www.about-gamescast.de/" target="_blank">www.about-gamescast.de</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thousand-thoughts.com/2012/02/podcast-about-games/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Big Time Monkey chosen for Best Fan-Adventure of 2011</title>
		<link>http://www.thousand-thoughts.com/2012/02/big-time-monkey-zum-besten-fan-adventure-2011-gekurt/</link>
		<comments>http://www.thousand-thoughts.com/2012/02/big-time-monkey-zum-besten-fan-adventure-2011-gekurt/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 11:20:10 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[adventure-treff.de]]></category>
		<category><![CDATA[Big Time Monkey]]></category>

		<guid isPermaLink="false">http://www.thousand-thoughts.com/?p=744</guid>
		<description><![CDATA[Big Time Monkey has been chosen for the best Fan-Adventure in the year 2011 by the German site adventure-treff.de. We are very proud of it and we want to thank all people who voted for our game. Thanks a lot, &#8230; <a href="http://www.thousand-thoughts.com/2012/02/big-time-monkey-zum-besten-fan-adventure-2011-gekurt/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.thousand-thoughts.com/wp-content/uploads/adv11_fanadv.gif"><img class="alignright size-medium wp-image-745" title="adv11_fanadv" src="http://www.thousand-thoughts.com/wp-content/uploads/adv11_fanadv-300x187.gif" alt="" width="300" height="187" /></a></p>
<p>Big Time Monkey has been chosen for the best Fan-Adventure in the year 2011 by the German site <a title="Adventure Treff" href="http://www.adventure-treff.de" target="_blank">adventure-treff.de</a>. We are very proud of it and we want to thank all people who voted for our game. Thanks a lot, guys!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thousand-thoughts.com/2012/02/big-time-monkey-zum-besten-fan-adventure-2011-gekurt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Head Orientation Tracking Prototype</title>
		<link>http://www.thousand-thoughts.com/2011/12/prototyp-fur-kopflage-messung/</link>
		<comments>http://www.thousand-thoughts.com/2011/12/prototyp-fur-kopflage-messung/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 14:45:02 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[head tracking]]></category>
		<category><![CDATA[headphones]]></category>
		<category><![CDATA[Master Thesis]]></category>
		<category><![CDATA[phone]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[Sensor Fusion]]></category>

		<guid isPermaLink="false">http://www.thousand-thoughts.com/?p=728</guid>
		<description><![CDATA[That&#8217;s what I had in mind when I previously wrote about head tracking with an Android device. This contraption is a smaller part of the whole system (which consists mainly of software). The communication between host machine and the phone &#8230; <a href="http://www.thousand-thoughts.com/2011/12/prototyp-fur-kopflage-messung/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.thousand-thoughts.com/wp-content/uploads/prototype.jpg"><img class="alignright size-medium wp-image-729" title="prototype" src="http://www.thousand-thoughts.com/wp-content/uploads/prototype-300x240.jpg" alt="" width="300" height="240" /></a></p>
<p>That&#8217;s what I had in mind when I previously wrote about head tracking with an Android device.</p>
<p>This contraption is a smaller part of the whole system (which consists mainly of software). The communication between host machine and the phone is already working. The main application running on the host is receiving sensor data from the phone&#8217;s accelerometer, magnetometer and gyroscope. The refinement of the sensor data is happening on the phone itself. That&#8217;s what I&#8217;m actually working on at the moment. The information is still quite inacurate and I&#8217;m trying to improve it with a complementary filter.</p>
<p>When it&#8217;s done and working, I&#8217;ll write some details about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thousand-thoughts.com/2011/12/prototyp-fur-kopflage-messung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A New Toy</title>
		<link>http://www.thousand-thoughts.com/2011/12/a-new-toy/</link>
		<comments>http://www.thousand-thoughts.com/2011/12/a-new-toy/#comments</comments>
		<pubDate>Sun, 25 Dec 2011 18:10:53 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[christmas]]></category>
		<category><![CDATA[Master Thesis]]></category>
		<category><![CDATA[phone]]></category>
		<category><![CDATA[Sensor Fusion]]></category>

		<guid isPermaLink="false">http://www.thousand-thoughts.com/?p=716</guid>
		<description><![CDATA[I&#8217;ve struggled a long time with this. Almost everyone of my close friends (including my brother) got in possession of one of those fancy new smartphones. Half of them have an iPhone. Very early, it was quite obvious that this &#8230; <a href="http://www.thousand-thoughts.com/2011/12/a-new-toy/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.thousand-thoughts.com/wp-content/uploads/android_phone.jpg"><img class="alignright size-medium wp-image-726" title="Android Phone" src="http://www.thousand-thoughts.com/wp-content/uploads/android_phone-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>I&#8217;ve struggled a long time with this. Almost everyone of my close friends (including my brother) got in possession of one of those fancy new smartphones. Half of them have an iPhone. Very early, it was quite obvious that this wasn&#8217;t just a fad. It was the future. The capabilities of those things are quickly converging towards what the clumsy boxes we used to put beneath our desks did. Nevertheless, I avoided this next generation of devices like I avoid facebook (no, you won&#8217;t finde me there). I don&#8217;t like how people show off with them. It was just another status symbol at  first. And I do not care much about status sybols.</p>
<p>However, as a developer I eventually had to confront those things. Sure, you could make cool games with them. Java programming became also more and more interesting for me, due to it&#8217;s shorter development cycles. For a long time I was convinced that programming with C/C++ was the real deal. Later, I realized that the end justifies the means in this regard. And then, I started with my Master Thesis and realized that head tracking will become an integral part of my work (more on this in a later post). An employee at the University refered to a <a title="Sensor Fusion on Android Devices: A Revolution in Motion Processing " href="http://www.youtube.com/watch?v=C7JQ7Rpwn2k" target="_blank">talk on Sensor Fusion on Android Devices</a> as a possible approach for this problem.</p>
<p>Long story short: This plus chrismas and I got myself my own Android powerded device.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thousand-thoughts.com/2011/12/a-new-toy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Master Thesis</title>
		<link>http://www.thousand-thoughts.com/2011/10/master-thesis/</link>
		<comments>http://www.thousand-thoughts.com/2011/10/master-thesis/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 11:08:00 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[binaural synthesis]]></category>
		<category><![CDATA[Blindside]]></category>
		<category><![CDATA[Master Thesis]]></category>
		<category><![CDATA[Sound Based Games]]></category>

		<guid isPermaLink="false">http://www.thousand-thoughts.com/?p=687</guid>
		<description><![CDATA[I started to work on my final thesis for my master&#8217;s degree. The thesis is about &#8220;Binaural Synthesis in Interactive Media&#8221;. I discovered that the title is not self explanatory, so here come some explanatory words : Binaural hearing is &#8230; <a href="http://www.thousand-thoughts.com/2011/10/master-thesis/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.thousand-thoughts.com/wp-content/uploads/BinauralLogo.png"><img class="size-full wp-image-697 alignright" title="BinauralLogo" src="http://www.thousand-thoughts.com/wp-content/uploads/BinauralLogo.png" alt="" width="300" height="284" /></a></p>
<p>I started to work on my final thesis for my master&#8217;s degree. The thesis is about &#8220;Binaural Synthesis in Interactive Media&#8221;. I discovered that the title is not self explanatory, so here come some explanatory words <img src='http://www.thousand-thoughts.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  :</p>
<p><em>Binaural hearing</em> is the ability of humans and animals to use both ears in order to determine from which direction a sound they are hearing originated from. Without binaural hearing your expensive Dolby 5.1 sound system would be useless to you because you couldn&#8217;t tell the difference between 5.1 sound and mono sound. Also, binaural hearing makes the <a title="cocktail party effect" href="http://en.wikipedia.org/wiki/Cocktail_party_effect" target="_blank">cocktail party effect</a> possible.</p>
<p><em>Binaural synthesis</em> is the process of synthetically generating a two channel singnal (i.e. a stereo signal, one channel per ear) out of a mono signal which can be perceived by a human in a spatial manner &#8212; creating a &#8220;binaurally hearable&#8221; signal as one might say. So, you do not need 5 channels to make 3D-sound possible. Everyone has just two ears, ergo: two channels should suffice &#8212; when using headphones, of course.</p>
<p>The choice of this topic for my master thesis originated from an <a title="sound based games" href="http://www.thousand-thoughts.com/2011/02/sound-based-games/">earlier interest for sound based games</a>. I was fascinated by the idea of creating a game whith no graphics at all. But in my opinion today&#8217;s sound technology is still missing some capabilities which are necessary for a proper sound-only-experience. Well, let&#8217;s see what we can do about it <img src='http://www.thousand-thoughts.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . Of course there already have been many scientific investigations and approaches to this problem. I&#8217;m by far not the first one to work on this topic.</p>
<p>By the way: recently I found this via <a title="RockPaperShotgun - Not Alone In The Dark: Blindside" href="http://www.rockpapershotgun.com/2011/10/19/not-alone-in-the-dark-blindside/#more-78486">RockPaperShotgun</a>. There are two developers who are working on a sound based adventure game called <a title="Blindside: The Audio Adventure Video Game" href="http://www.kickstarter.com/projects/600219258/blindside-the-audio-adventure-video-game" target="_blank">Blindside</a>. It&#8217;s comforting to know that the subject is still up to date and that you&#8217;re not the only one who&#8217;s working on it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thousand-thoughts.com/2011/10/master-thesis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Big Time Monkey Retrospective</title>
		<link>http://www.thousand-thoughts.com/2011/10/big-time-monkey-retrospective/</link>
		<comments>http://www.thousand-thoughts.com/2011/10/big-time-monkey-retrospective/#comments</comments>
		<pubDate>Sun, 02 Oct 2011 15:11:24 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[art]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.thousand-thoughts.com/?p=658</guid>
		<description><![CDATA[My fellow developers and I we had a great time developing Big Time Monkey. Two months have passed since the release and we got quite good responses from the people who played our game. Now it is time to look &#8230; <a href="http://www.thousand-thoughts.com/2011/10/big-time-monkey-retrospective/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My fellow developers and I we had a great time developing Big Time Monkey. Two months have passed since the release and we got quite good responses from the people who played our game. Now it is time to look back on the whole project and to realize what lessons we have learned. I&#8217;m writing this not only to make a final stroke but also to record those experiences for future projects.</p>
<p>Also, if you want to read the short version of my gibberish, scroll down until you see &#8220;Concluson&#8221; written in big letters <img src='http://www.thousand-thoughts.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . As the title suggests, it <em>concludes</em> the previously written text in a handy set of bullet points.</p>
<p>So, sit down, have a tea and let me answer following questions:</p>
<ul>
<li>What went wrong?</li>
<li>What went well?</li>
</ul>
<p><span id="more-658"></span></p>
<h2>What went wrong</h2>
<p>Just to make it clear: Big Time Monkey was a success. It even surpassed our expectations. However, there are always things which could have been made better for the sake of optimization. Those things are mentioned here.</p>
<h3>Workload</h3>
<p>For three people Big Time Monkey was a hell lot of work. In our first meeting in October 2010 we recognized that four months were far too short to realize all our concepts. Also, most concepts were not written, yet. It was clear that we had to cut away a lot of stuff if we wanted to finish the game. And still, it was not enough. We did not finish the final game in time. But we managed to deliver a demo version of the game and present it at the <em>MediaNight</em>.</p>
<h3>Product Language</h3>
<p>Big Time Monkey is a German game. That&#8217;s good for Germans but not so good for the rest of the world. We would have increased the number of people playing our game by making it international. If we&#8217;d had developed the game in English it would have increased the audience drastically.</p>
<p>Then again, we had not enough experience to write all the jokes and wordplays in English. And finding professional native speakers who fit the characters in the game and did not charge a cent for a day in the recording studio would have been impossible. So actually we had no other choice. The game would not have the same quality if it had been developed in English.</p>
<h3>Technology</h3>
<p>We have chosen Visionaire Studio to develop Big Time Monkey. It helped a lot and it took away much work from us. But as every technology it needs to be evaluated and understood properly before it can be useful in its whole extend. We didn&#8217;t use features of Visionaire which would have made our lifes much easier simply because we didn&#8217;t know they existed. For instance: We didn&#8217;t know about the debug console inside of Visionaire&#8217;s testplayer until I discovered it by accident&#8230; after the release.</p>
<p>Visionaire also had it&#8217;s own bugs and problems (like every software) we did not encounter until we used an affected feature. Some of those problems were not documented by the developers of Visionaire. Some I believe weren&#8217;t even known at all.</p>
<p>To mention an example: We used certain types of actions (provided by Visionaire) to trigger voice-over playbacks throughout the entire game. In the Testplayer of Visionaire  those voice-overs were played correctly. But in the release build of the game those voice-overs did not play. It was a bug in the deploy function of Visinaire Studio. This bug has been discovered by another user of Visionaire about one week before we encountered it. He reproted it in the Visionaire forum. The developers fixed it but the fix would have been applied in the next release of Visionaire which was one month in the future. But we had our release date in two weeks. So we had to sit down and apply workaround solutions in the entire game. We had to move all affected actions into another area. But the Visionaire GUI did not support copy and paste for list of actions, only for individual actions. This has worsened the entire situation. We had to copy one action at a time, navigate though the whole GUI, paste it, go back and proceed with the next action. It was quite an ordeal.</p>
<p>Another point was platform dependency. I&#8217;m a PC guy, it was ok for me that Visionaire was a Windows-only solution at that time. But we have a lot of Mac users walking around at our university who were quite interested in the Big Time Monkey. I ended up putting all of them off saying it would be possible to play the game on a Mac in a distant future. And I didn&#8217;t like that. I wanted to see as many people as possible playing our game.</p>
<p>I&#8217;m still struggling with the thought of developing an own engine for Big Time Monkey. But then, I&#8217;m sure it would have meant much more work which would have resulted in an unfinished product.</p>
<h3>Legal Stuff</h3>
<p>One month after we released we were contacted by a games magazine. They wanted to release our game on a DVD with their next issue. That was a big deal for us. But it included signing a license agreement with them. The problem was, I was not the only one who owned rights on Big Time Monkey. There was one musician and six voice actors who owned the rights on their individual parts because we didn&#8217;t sign any contracts with them. It was a student project and nobody had seen the necessity to do this. We had to cantact each of them in retrospect to obtain their permissions. Next time I would handle such things in advance.</p>
<h2>What went well</h2>
<p>Quite a lot! To begin with: the constelation of the team.</p>
<h3>Team</h3>
<p>I would have never expected that the three of us would complement one another so well. Frankly, I expected tensions inside of the team at some point in the project progress. Not because I thought the team members were tension prone but there are always some sorts of conflicts and misunderstandings among people. Maybe two people want to take the lead at the same time or somebody is unsatisfied with the work of another team member. But not in our team. Everybody was in charge in the same way. Every decision has been talked over with the team and in the end everybody was satisfied with the result.</p>
<p>Why? The first advantage we had: we were a small sized team. So this is about the upsides of a small team. You don&#8217;t have to introduce complex structures. The probability that two individuals conflict is much lower in a group of three people. It is easier to stick the heads together and sort things out. It&#8217;s easier to define milestones and come to an end with a discussion.</p>
<p>Last but not least we were lucky. Somehow we were a good match. Each of us is open to criticism. Nobody tried to force through his own ideas and contributed constructively to the product. This is not always the case and it is almost never controllable what type of people come together to accomplish something. During the development of Big Time Monkey I&#8217;ve heard of other student projects which suffered of problematic team constelations.</p>
<h3>Conception</h3>
<p>Our conception phases were fun. And that&#8217;s the point! If you have fun doing your work you most certainly to it right. It was like sitting at a round table and throwing hilarious ideas and catchphrases at each other trying to make the other laugh. And if they laughed you knew it could work. If not, you tried at least and maybe you inspired a similar but working idea. Of course, we always had to take our time management into account. But the best ideas emerged from such discussions.</p>
<p>Also, during work it occured that one of us stuck his head out and came up with something the others had to evaluate. If it was good, it has been included into the concept.</p>
<p>Beside brainstorming, we had to record and structure our output somehow. So we used a graph to visualize the scenes of the game and how they were connected. Marius who was mainly responsible for story and concepts maintained all concept documents and wrote dialogs. He used simple screenplay writing for static dialogs and flow charts for interactive ones.</p>
<h3>Voice Acting and Music</h3>
<p>It really paid off to take some time searching for voice talents. Our first thought was to do the voice overs by ourselves but now we are glad we didn&#8217;t do that. It would have destroyed the whole experience. The voice actors gave a fair amount of depth to the characters in Big Time Monkey. They also incorporated own ideas into the characters and made them more alive.</p>
<p>The first people we were casting for character voices were professionals who did moderation, ads, documentaries etc. We quickly realized that we need real actors&#8230; like in theatres! And after some searching we actually found people who were able to understand and impersonate a character. Especially Torsten who did our main character Gordo was a perfect match.</p>
<p>Marius knew everything about every character in the game. Even stuff which is never being mentioned in the game. He developed elaborate background stories and played with stereotypes to add depth to them. Most characters in the game have less then two pages of dialogue. But they were so well developed that those lines sufficed to transport their depth to the player. Marius&#8217; knowledge about every single fictive individual inside of But Time Monkey made him an essential source of information and inspiration for each voice actor.</p>
<p>As for the music, well, that was another case of luck. I don&#8217;t know how Marius found our musician and sound designer Ingmar. But what I can tell is that the process we established between Ingmar and the rest of the project was a good one. At first, we described the moods of the different scenes in the game as good as possible and provided mood pictures to Ingmar. He then came up with some demo bits of music and athmospheric sound and we told him what to change. It was quite straightforward.</p>
<h2>Conclusion</h2>
<p>Here come the promised conclusive bullet points:</p>
<h3>Workload</h3>
<ul>
<li>Always define milestones. Having the roughest plan helps.</li>
<li>Get sure to have enough people to get the work done in time or cut the concept down to the essential parts</li>
<li>Try to get stuff done on a regular basis; one small finished piece a day. It&#8217;s not easy to have a constant productivity level but once established it&#8217;s one of the most precious things you can have in a project.</li>
<li>Getting things done and presenting progress to the team increases overall motivation and thus productivity.</li>
<li>Grant yourself breaks! You won&#8217;t come far when you&#8217;re overworked.</li>
</ul>
<h3>Product Language</h3>
<ul>
<li>If you want an international product do it in English first.</li>
<li>If your English isn&#8217;t good find somebody whose English is good and who would understand your project (and your humor if necessary).</li>
<li>A bad translation of your game can destroy the whole game experience.</li>
</ul>
<h3>Technology</h3>
<ul>
<li>Know the technology you&#8217;re using.</li>
<li>Build prototypes to try out features and workflows.</li>
<li>Familiarize yourself with the technologies documentation.</li>
<li>Never use undocumented technology.</li>
</ul>
<h3>Legal Stuff</h3>
<ul>
<li>When working with external contributors, always work out some sort of contract to define who owns which rights over the product (even when the product will be free of charge)</li>
<li>Even if you intend to do a non-commercial product, think about the sitiuation when your product gets commercial; just to be prepared. There are many legal cases where a free product becomes commercial without the creator having thought of it (e.g. release on a print magazine&#8217;s DVD)</li>
</ul>
<h3>Team</h3>
<ul>
<li>Try to keep your team small as long as it is able to get the work done.</li>
<li>Don&#8217;t make your team <em>too</em> small. Recognize when you need another pair of helping hands.</li>
<li>Meet your team on a daily basis.</li>
<li>Try to be on a par with everyone. Show respect.</li>
<li>When working, try to sit close to each other (e.g. not in seperate rooms).</li>
<li>Always know and understand what the others are working on and inform them about your own work. That&#8217;s good for both motivation and organization.</li>
</ul>
<h3>Conception</h3>
<ul>
<li>&#8220;Kill your babies&#8221;: throw away ideas which you can&#8217;t convince your team members of, even if you think <em>&#8220;this is the best idea i&#8217;ve ever had&#8221;</em>. Maybe your team members have a different point of view on things and see weak points you don&#8217;t see. Also, if your team is not convinced of an idea it most probably won&#8217;t be satisfied with the implementation.</li>
<li>Cut parts of the concept away if you realize you won&#8217;t make it in time. Even if the parts of the concept were promising.</li>
<li>Try to understand how ideas of your team members work. Listen to them! Give them a chance to convince you! You&#8217;re not the only creative mind in the universe.</li>
<li>Express your doubts, but do it politely.</li>
<li>Discuss details. It&#8217;s good for the product and for the motivation. But always return to the big picture.</li>
</ul>
<h3>Voice Acting and Music</h3>
<ul>
<li>Never underestimate voice acting. Trained people are always better than laymen.</li>
<li>Prefer actors. Professional speakers are ok as long as they can act (e.g. change their voice, impersonate characters)</li>
<li>Choose your main character&#8217;s voice very well. An inapropriate voice can annoy players and make them quit the game after the first few bits.</li>
<li>Know your characters well! You need to understand them and how they actually think.</li>
<li>Know the mood in your game. You need this knowledge to choose the music. Without the music the mood will remain in your head and never reach through to the player. Music is a very important and often underestimated component.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.thousand-thoughts.com/2011/10/big-time-monkey-retrospective/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Big Time Monkey Appears in Print Media</title>
		<link>http://www.thousand-thoughts.com/2011/08/big-time-monkey-erscheint-in-den-printmedien/</link>
		<comments>http://www.thousand-thoughts.com/2011/08/big-time-monkey-erscheint-in-den-printmedien/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 21:30:59 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[Big Time Monkey]]></category>
		<category><![CDATA[Computerbild Spiele]]></category>

		<guid isPermaLink="false">http://www.thousand-thoughts.com/?p=631</guid>
		<description><![CDATA[As Asamak already pointed out in the comments of the previous post: Big Time Monkey is being mentioned in the current issue 9/2011 of German games magazine COMPUTERBILD SPIELE. It also appears on the Silver-DVD attached to the magazine among 100 &#8230; <a href="http://www.thousand-thoughts.com/2011/08/big-time-monkey-erscheint-in-den-printmedien/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.thousand-thoughts.com/wp-content/uploads/SNC00086.jpg"><img class="size-medium wp-image-632 alignright" title="BTM in print" src="http://www.thousand-thoughts.com/wp-content/uploads/SNC00086-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>As <a href="http://www.asamakabino.de/" target="_blank">Asamak</a> already pointed out in the comments of the previous post:</p>
<p>Big Time Monkey is being mentioned in the current issue 9/2011 of German games magazine COMPUTERBILD SPIELE. It also appears on the Silver-DVD attached to the magazine among 100 other freeware titles.</p>
<p>It&#8217;s also very pleasing that Gordo is printed highly visible on page 95. We all who participated in the creation of the game are glad to hear so much positive feedback on the game.  Finding our own game in one of Europe&#8217;s biggest games magazines makes our work feel particularly appreciated.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thousand-thoughts.com/2011/08/big-time-monkey-erscheint-in-den-printmedien/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

