<?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>digitalbreed &#187; Game Development</title>
	<atom:link href="http://digitalbreed.com/category/game-development/feed" rel="self" type="application/rss+xml" />
	<link>http://digitalbreed.com</link>
	<description>matthias gall - product architect</description>
	<lastBuildDate>Sat, 31 Mar 2012 11:19:27 +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>10 years sechsta sinn</title>
		<link>http://digitalbreed.com/2010/10-years-sechsta-sinn</link>
		<comments>http://digitalbreed.com/2010/10-years-sechsta-sinn#comments</comments>
		<pubDate>Sat, 02 Oct 2010 02:07:39 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://digitalbreed.com/?p=934</guid>
		<description><![CDATA[Silently, we passed our 10th anniversary some days ago. As a little gift, here&#8217;s an older video right from the DVW game engine.]]></description>
		<wfw:commentRss>http://digitalbreed.com/2010/10-years-sechsta-sinn/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nice Concept: Blog A Day</title>
		<link>http://digitalbreed.com/2010/nice-concept-blog-a-day-2</link>
		<comments>http://digitalbreed.com/2010/nice-concept-blog-a-day-2#comments</comments>
		<pubDate>Fri, 16 Jul 2010 22:15:34 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Game Development]]></category>

		<guid isPermaLink="false">http://digitalbreed.com/?p=829</guid>
		<description><![CDATA[I stumbled across an interesting concept. 14 independent developers get one slot per week on iDevBlogADay.com to publish articles; if they don&#8217;t blog, the spot is given to the next developer on the waiting list.]]></description>
		<wfw:commentRss>http://digitalbreed.com/2010/nice-concept-blog-a-day-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Game Development (Day 6)</title>
		<link>http://digitalbreed.com/2010/android-game-development-day-6</link>
		<comments>http://digitalbreed.com/2010/android-game-development-day-6#comments</comments>
		<pubDate>Tue, 13 Jul 2010 00:21:55 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[gamedev]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://digitalbreed.com/?p=701</guid>
		<description><![CDATA[It took some time until I finally could get back to my little Android game and I must admit that this wasn&#8217;t really a &#8220;day&#8221; I worked on it. Instead, it were multiple, scattered and short sessions where I worked on the collision testing and response code, some effects and UI stuff. It&#8217;s simply too hot currently&#8230; so bear with me that there&#8217;s no cool video this time. Keep reading below if you’re interested in the recent progress. Comments are welcome! In case you missed it, also don’t forget to read the earlier reports on my steps in Android game development: Steps 1-3, Step 4, Step 5. All game objects are composed of several components for rendering, behavior, audio,&#8230; I&#8217;ve tried to make up these components to be as independent as possible, only accessing their owning game object to gather information. It would be natural to add components for collision testing, but it would have a pretty bad impact on performance if every component would independently check for collisions. Moreover, it would need to access all other game objects which I wanted to avoid as well. So instead I decided to keep the collision testing separate to do it once for all objects and then let those components who are interested in collisions access the gathered data. The collision testing is quite trivial at this point &#8211; simple bounding rectangle checks as I already used them in my old ProjectE tutorial &#8211; so I kept it in the GameObjectManager. Two nested loops check all possible combinations once per frame and store a colliding object into another and vice versa. Now on a different topic. The other day I had a discussion with one of my fellow #gamedev.ger residents regarding whether to use singletons or not &#8211; I do. The pattern ...]]></description>
		<wfw:commentRss>http://digitalbreed.com/2010/android-game-development-day-6/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Game Development (Day 5)</title>
		<link>http://digitalbreed.com/2010/android-game-development-day-5</link>
		<comments>http://digitalbreed.com/2010/android-game-development-day-5#comments</comments>
		<pubDate>Sun, 27 Jun 2010 12:43:19 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[gamedev]]></category>

		<guid isPermaLink="false">http://digitalbreed.com/?p=686</guid>
		<description><![CDATA[Day #5, Sunday, June 27th. Here&#8217;s the rough concept for timed events I already mentioned in my last posting. It&#8217;s working for now, but I&#8217;ll do some more tweaks to abstract this even further and make it more flexible. Android Game Development &#8211; Steps 4-5 from Matthias Gall on Vimeo. Keep reading below if you’re interested in today’s progress. Comments are welcome! In case you missed it, also don’t forget to read the reports on my steps in Android game development: Steps 1-3 and Step 4. The diagram shows how timed events integrate into the component system. There&#8217;s one dedicated component TimedEventHandlerComponent which allows attaching a list of events which itself contain a timestamp, denoting the time in the game when the event is to be executed. For level creation, I create an invisible GameObject for the active level, currently consisting only of the TimedEventHandlerComponent and a bunch of TimedSpawnEvents. These contain the name of the object to spawn and it&#8217;s starting position and velocity. Once an event is executed, it makes use of the GameObjectFactory to create the object to spawn and the GameObjectManager to add it into the object lifecycle. First, let&#8217;s look at the advantages of the status quo. One great thing is that you not only can spawn any game object any time you want, but also can make up events which temporarily disable player controls, display texts or dialogs, make the player move in a predefined way,&#8230; As intended, such time-based stuff is great for level and cutscene design where the order of events is predefined. But that&#8217;s just the first step. Binding an event to a certain time is only one way to trigger an event. An event could also be executed due to the player hitting a certain hotspot, the player reaching a ...]]></description>
		<wfw:commentRss>http://digitalbreed.com/2010/android-game-development-day-5/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Game Development (Day 4)</title>
		<link>http://digitalbreed.com/2010/android-game-development-day-4</link>
		<comments>http://digitalbreed.com/2010/android-game-development-day-4#comments</comments>
		<pubDate>Sun, 27 Jun 2010 01:16:05 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[gamedev]]></category>

		<guid isPermaLink="false">http://digitalbreed.com/?p=665</guid>
		<description><![CDATA[Day #4, Saturday, June 26th. Keep reading below if you&#8217;re interested in today&#8217;s progress. Comments are welcome! In case you missed it, also don&#8217;t forget to read the report on my first three steps in Android game development. Today, I studied the source code of Replica Island and I cannot deny that some bits and pieces were quite inspiring. Particularly, I liked how Chris sets up his pool of game object components and I reimplemented basically the same solution. This leaves a negative connotation for me but there&#8217;s really no better solution I could come up with myself. The only extension I would like to make in the future is to use a more data-driven system for building game objects (e.g. reading them from XMLs) in order to leave more freedom to a game designer who does not necessarily have to be the programmer at the same time. But that&#8217;s certainly nothing for a first, small Android game. I also found patterns I already used elsewhere, like wrapping the OpenGL state in order to avoid unnecessary calls to glBindTexture if the texture was already bound, etc. Besides the game object and component pooling, I worked on the player&#8217;s weapon system. I abstracted this into a component which queries the input system&#8217;s trackball state and creates a projectile game object in a given interval if the trackball is pressed. The different weapons now simply differ in parameters like projectile name, position offset and firing rate, but the underlying implementation is the same. The projectiles emitted by the weapons, however, may be very different since they may have different movement controllers attached later (already looking forward to implementing some kind of homing missile). Projectiles which don&#8217;t hit should be released to the game object pool, so I created a DestroyGameObjectComponent which checks ...]]></description>
		<wfw:commentRss>http://digitalbreed.com/2010/android-game-development-day-4/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Game Development</title>
		<link>http://digitalbreed.com/2010/android-game-development</link>
		<comments>http://digitalbreed.com/2010/android-game-development#comments</comments>
		<pubDate>Sat, 26 Jun 2010 01:10:38 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[gamedev]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://digitalbreed.com/?p=651</guid>
		<description><![CDATA[I&#8217;m building rather boring enterprise applications at work and I love creating more appealing things in my spare time, so I do a bit of game development whenever I can. The main problem for a programmer is to get some graphics, but fortunately I have some nice renderings from my old Project E tutorial and the even older Project D game by sechsta sinn on my harddisk that I could put into use (all done by my friend and favorite artist Martin Ernst, btw.). This is what I managed to do in three after work sessions so far, if you&#8217;re interested in the details, continue reading after the video. Android Game Development &#8211; Steps 1-3 from Matthias Gall on Vimeo. I was worrying about my HTC Hero for quite some time now since HTC has repeatedly postponed the overdue 2.1 update and announced that this one-year-old phone won&#8217;t ever receive an official 2.2 update from HTC at all. So, I was playing around with my mobile quite often in the last days. Moreover, I watched the Google I/O sessions, including Chris Pruett&#8217;s session on Android game development which I mentioned earlier in this blog. These are just two reasons why I finally started coding. Here&#8217;s how I made progress so far. 1. Evening #1, Tuesday, June 23rd. Development environment setup, project setup, starting Activity created, first deployment to Android phone. Read some articles regarding Android gamedev. Collected graphics to use. Decided not to separate rendering and game logic threads for a start. Hooray, let the fun begin. 2. Evening #2, Thursday, June 25th. Implemented a simple game object and component management system. Converted old BMP graphics to PNGs and applied true alpha-transparency. Implemented a scrolling sky and a static glider to have some eye candy. Recognized that the original HUD ...]]></description>
		<wfw:commentRss>http://digitalbreed.com/2010/android-game-development/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sculptris</title>
		<link>http://digitalbreed.com/2010/sculptris</link>
		<comments>http://digitalbreed.com/2010/sculptris#comments</comments>
		<pubDate>Sun, 13 Jun 2010 15:06:13 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[gamedev]]></category>

		<guid isPermaLink="false">http://digitalbreed.com/?p=644</guid>
		<description><![CDATA[There are a very few people who are genius, disciplined and focussed at the same time and thus can put their productivity to a maximum. One of the most talented guys in the Indie gamedev scene I&#8217;ve seen so far in that regard is Tomas &#8220;DrPetter&#8221; Pettersson. Late 2007 he already came up with a really useful little tool called SFXR (not to mention the even more impressive Musagi) and now it got even better. Within only six months he produced an amazing 3D mesh sculpting tool called Sculptris, now available as version 1.0. Check out his trailer and see for yourself. Isn&#8217;t that great?]]></description>
		<wfw:commentRss>http://digitalbreed.com/2010/sculptris/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t ever say it&#8217;s almost done.</title>
		<link>http://digitalbreed.com/2010/dont-ever-say-its-almost-done</link>
		<comments>http://digitalbreed.com/2010/dont-ever-say-its-almost-done#comments</comments>
		<pubDate>Sat, 12 Jun 2010 23:40:23 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[innovation]]></category>

		<guid isPermaLink="false">http://digitalbreed.com/?p=641</guid>
		<description><![CDATA[Chris Pruett at Google I/O on Android Game Development. Besides that quote I used as the post caption he shows some very interesting ideas how he analyzed the behavior of his users in order to improve their game experience. I love that hotspot idea, probably something useful for my friends working on Glow as well. And for the record, also watch the excellent day 2 keynote. I had a good laugh at all the Apple taunting. For example, Android 2.2 features tethering and portable hotspot mode and guess what they&#8217;re showcasing? They&#8217;re using a Nexus One as an AP for &#8220;&#8230; another device that doesn&#8217;t have connectivity. What about that iPad?&#8221; Apple, Google, whatever&#8230; they all have their downsides. But they bring so much innovation that I&#8217;m eagerly looking forward to seeing more cool things becoming reality in the next years and building cool things with them myself.]]></description>
		<wfw:commentRss>http://digitalbreed.com/2010/dont-ever-say-its-almost-done/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DVW Panorama</title>
		<link>http://digitalbreed.com/2009/dvw-panorama</link>
		<comments>http://digitalbreed.com/2009/dvw-panorama#comments</comments>
		<pubDate>Sun, 22 Nov 2009 19:05:31 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://digitalbreed.com/?p=575</guid>
		<description><![CDATA[Christopher, one of my highly-paid sechsta sinn colleagues, has spent some of his expensive hours to compile a panorama screenshot of a DVW map. But it all pays off when the fans are happy. Click here for the fully blown version.]]></description>
		<wfw:commentRss>http://digitalbreed.com/2009/dvw-panorama/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Android: Render OpenGL on top of camera preview</title>
		<link>http://digitalbreed.com/2009/android-render-opengl-on-top-of-camera-preview</link>
		<comments>http://digitalbreed.com/2009/android-render-opengl-on-top-of-camera-preview#comments</comments>
		<pubDate>Sat, 14 Nov 2009 14:10:13 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[camera]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://digitalbreed.com/?p=555</guid>
		<description><![CDATA[I was searching for that today and thought I could write a short wrap-up of what I ended up with. Particularly helpful was the Android TranslucentGLSurface sample code and a thread in the Android Beginners group. Keep reading below for the fully commented source code. Let&#8217;s start with the onCreate method of the main activity code. When I was writing this, I was wondering why I had to set the GL view first and then add the preview because actually I want to have the preview below the GL surface, so this looks a bit strange to me. I didn&#8217;t find an answer on that one yet, but it works that way. The rendering is implemented in a separate class GLClearRenderer which is pretty much like the one used in the GLSurfaceView introduction. It&#8217;s trivial since I&#8217;ve used it only for testing purposes. A real application would most likely subclass GLSurfaceView, too, in order overwrite onTouchEvent etc. If you comment out adding the camera view in onCreate, you will already be able to run the application and see the flashing screen. Now for the last part, the camera access. As you&#8217;ve seen that earlier, the whole logic is implemented in CameraView. Thanks to Androids easy-to-use camera API, rendering the preview into a surface is straightforward.]]></description>
		<wfw:commentRss>http://digitalbreed.com/2009/android-render-opengl-on-top-of-camera-preview/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

