<?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/"
	>

<channel>
	<title>Hemisphere Games</title>
	<atom:link href="http://www.hemispheregames.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hemispheregames.com</link>
	<description>Games for both sides of your brain.</description>
	<pubDate>Thu, 02 Sep 2010 07:10:22 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Smoothness</title>
		<link>http://www.hemispheregames.com/2010/08/10/smoothness/</link>
		<comments>http://www.hemispheregames.com/2010/08/10/smoothness/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 20:34:17 +0000</pubDate>
		<dc:creator>Curmudge</dc:creator>
		
		<category><![CDATA[Game Design]]></category>

		<category><![CDATA[Osmos]]></category>

		<category><![CDATA[iPhone/iPad]]></category>

		<guid isPermaLink="false">http://www.hemispheregames.com/?p=2802</guid>
		<description><![CDATA[Smoothness.  If there was one aspect of Osmos that we were psychotically obsessed with during development, it was smoothness.  Just like driving on freshly laid asphalt, skating on a rink just after the Zamboni has gone by, skiing through light untracked powder,  gliding down a trail on a mountain bike with 10 [...]]]></description>
			<content:encoded><![CDATA[<p>Smoothness.  If there was one aspect of Osmos that we were psychotically obsessed with during development, it was smoothness.  Just like driving on freshly laid asphalt, skating on a rink just after the Zamboni has gone by, skiing through light untracked powder,  gliding down a trail on a mountain bike with 10 inches of suspension, or gliding your Mote through the Blobiverse to gobble up an Ovarium, we knew that smooth travel brings joy to the human condition.</p>
<p>We strove for smoothness in our visual design; the slow pulsing glow in the motes, the hypnotic drifting particles inside your player that slowly tumble out into the Blobiverse, the growing and decaying starfield in the background, and gentle visual transitions between scenes.  We were careful too with audio.  There&#8217;s no game event that can cause the music to suddenly stop with a crash like a drunkard stumbling into the record player at a party.  We chose an ambient soundtrack without a dominant beat, so that the player doesn&#8217;t unintentionally speed up the Mote in response to the music.  And to keep the music a part of the background noise of the Blobiverse, rather than just a soundtrack playing along with the game, we had to change the speed of the music when the player changes the simulation speed of the Blobiverse.</p>
<p>Bringing this artistic vision to the iPhone was a tough technical challenge.  The phone is powered by a tiny lithium-ion battery about half the size of my thumb, and to make good use of this minuscule power source, the computing and graphics power of the phone are kept low.  If either the CPU (computing power for physics simulations, gameplay, sound, and user input) or the GPU (graphics power for drawing the scene) hit their limit, the animation starts to get choppy, like a pot-holed highway in New Jersey.  And so began a long two-pronged process of code optimization.</p>
<p>Seeing other iPhone games that have complex worlds full of people, buildings, cars, and guns you may wonder why it would be difficult to animate our 2D retro-style arcade game.  The performance secret for a 3D game is walls.  The player can&#8217;t see through walls, so once a portion of the screen is taken up by a barrier, the computer can just ignore everything that exists behind it.  In contrast, everything in Osmos is translucent, giving the soft, glowing, jellyfish atmosphere to the game, and so the computer has to draw everything within the player&#8217;s field of view every frame.</p>
<p>After a few months of work, we were starting to be satisfied with the game&#8217;s performance on the iPhone, when Apple announced the iPad.  We knew this large touch-screen computer would be the perfect device for Osmos.  Being lowly Canadians, we couldn&#8217;t get our hands on an actual iPad till many months after the U.S. release.  In the meantime, we developed Osmos using Apple&#8217;s excellent simulator software, but we didn&#8217;t know how the performance of the iPad would compare to the iPhone until we could actually run the game on the device.  The 2nd generation iPhone had been GPU limited, the 3rd generation had been CPU limited, but we hoped that the iPad wouldn&#8217;t be limited at all.  But we knew we wouldn&#8217;t get a free ride once <a href="http://www.tequilabomb.com/shotglass/2010/04/07/ipad-gpu-fill-rate-a-little-disappointing/">several</a> <a href="http://forum.beyond3d.com/showpost.php?p=1417374&#038;postcount=342">developers</a> <a href="http://www.pocketgamer.biz/r/PG.Biz/Apple+iPad/news.asp?c=18331">noted</a> that the GPU on the iPad was somewhat underpowered.</p>
<p>The area of the iPad screen is 8 times larger than that of the iPhone, while the number of pixels on the screen is just 5 times larger.  I now need to take a brief aside to laugh at the marketing term HD.  HD stands for high-definition, which most people would interpret to mean high-detail, fineness, or in computer terms, pixels per square inch.  The iPad has only 5/8ths as many pixels per square inch as the 3G iPhone, which means that all those iPad games that distinguish themselves from the iPhone version with the name HD, are actually lower definition than the iPhone.  The iPad has even lower definition when compared to the high resolution 4G iPhone, with the iPad having 1/5 the pixel density.  Of course, pixel density isn&#8217;t everything, and the iPad is a joy simply because the screen is larger.   And I will now guiltily confess that when you install Osmos for iPad, Hemisphere Games also shows the name of the game as Osmos HD.  But mom, Billy was playing with the chainsaws first.</p>
<p>Marketing silliness aside, the fact remains that the iPad has to process 5x as many pixels as the iPhone.  Our tests indicated that the iPad graphics card was only 3x as fast as the iPhone.  So once again, we had to put on our thinking hats, and see what last corners of Osmos we could optimize.  The Apple documentation let us know that overlapping transparency is hard on the graphics chip and encouraged us to create opaque, easy to draw worlds, but we really wanted to keep the soft glow of Osmos.   Still, it was time to make some concessions for the mobile platform, so we turned on our debugging tools to see what graphical element in Osmos was causing the most overlap.  In the following debugging screenshot, black areas of the screen contain nothing at all (easiest on the GPU) dark green areas have lots of overlap (tough on the GPU), and the light green areas have 1 or 2 overlapping elements, perfect for creating that soft glow.<br />
<div id="attachment_2820" class="wp-caption aligncenter" style="width: 490px"><a href="http://www.hemispheregames.com/blog/wp-content/uploads/2010/08/old_stars_green_quads-1024x587.jpg"><img src="http://www.hemispheregames.com/blog/wp-content/uploads/2010/08/old_stars_green_quads-1024x587.jpg" alt="Debug view of overlapping stars" title="old_stars_green_quads" width="1024" height="587" class="size-medium wp-image-2820" /></a><p class="wp-caption-text">Debug view of overlapping stars.</p></div><br />
<div id="attachment_2819" class="wp-caption aligncenter" style="width: 490px"><a href="http://www.hemispheregames.com/blog/wp-content/uploads/2010/08/old_stars_normal-1024x587.jpg"><img src="http://www.hemispheregames.com/blog/wp-content/uploads/2010/08/old_stars_normal-1024x587.jpg" alt="Normal view of starfield." title="old_stars_normal" width="1024" height="587" class="size-medium wp-image-2819" /></a><p class="wp-caption-text">All that empty space was weighing down the GPU.</p></div></p>
<p>It was quickly apparent that our background star field was using up all the graphics power.  In the PC version, the stars are created randomly at varying sizes to try and cover the background space of the Blobiverse.  For the mobile versions we generated a grid and tried to distribute the stars evenly, while being careful that the visual effect didn&#8217;t look like a grid.  The resulting stars look a bit flatter than the PC version, which had us disappointed for a while, until we regained some perspective and remembered that we were trying to run Osmos on a phone.  The new stars made Osmos run twice as fast, which was a very exciting optimization.<br />
<div id="attachment_2818" class="wp-caption aligncenter" style="width: 490px"><a href="http://www.hemispheregames.com/blog/wp-content/uploads/2010/08/new_stars_green_quads-1024x587.jpg"><img src="http://www.hemispheregames.com/blog/wp-content/uploads/2010/08/new_stars_green_quads-1024x587.jpg" alt="Intelligent distribution causes far less overlap than random placement." title="new_stars_green_quads" width="1024" height="587" class="size-medium wp-image-2818" /></a><p class="wp-caption-text">Intelligent distribution causes far less overlap than random placement.</p></div><br />
<div id="attachment_2817" class="wp-caption aligncenter" style="width: 490px"><a href="http://www.hemispheregames.com/blog/wp-content/uploads/2010/08/new_stars_normal-1024x587.jpg"><img src="http://www.hemispheregames.com/blog/wp-content/uploads/2010/08/new_stars_normal-1024x587.jpg" alt="The new starfield looks remarkably similar to the old one and runs at twice the speed." title="new_stars_normal" width="1024" height="587" class="size-medium wp-image-2817" /></a><p class="wp-caption-text">The new starfield looks remarkably similar to the old one and runs at twice the speed.</p></div></p>
<p> Why did Apple, with the physical space and much larger battery reserves of the iPad, use an underpowered graphics chip?  Well, the cynic in me suspects that they want you to buy another iPad when they release the next generation and describe the graphics card as being <em>x</em>-times faster.  But given how important a successful launch of a tablet computer needed to be in an unproven market, I suspect the true answer reason is heat.  A powerful graphics processor uses a lot power, generating a lot of heat, creating much discomfort in your lap.</p>
<p>In the end, we were very pleased with the buttery smoothness we could drag out of miniaturized low power devices.  There&#8217;s still a few tiny hiccups and jerks that our OCD personalities would love to see disappear, but perhaps we&#8217;ll have to wait for the next generation of high technology to emerge from Apple.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hemispheregames.com/2010/08/10/smoothness/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Osmos (for iPhone) Released</title>
		<link>http://www.hemispheregames.com/2010/08/04/osmos-for-iphone-released/</link>
		<comments>http://www.hemispheregames.com/2010/08/04/osmos-for-iphone-released/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 04:20:59 +0000</pubDate>
		<dc:creator>eddybox</dc:creator>
		
		<category><![CDATA[Osmos]]></category>

		<category><![CDATA[iPhone/iPad]]></category>

		<guid isPermaLink="false">http://www.hemispheregames.com/?p=2765</guid>
		<description><![CDATA[Ah, the joys of the App Store: the iPhone version of Osmos is now available worldwide, and we didn&#8217;t even have to push a button to make it &#8220;live.&#8221; That said, we&#8217;ve done a lot of work leading up to this, and we’re excited! If the iPad version is a good indicator, we&#8217;re hoping it&#8217;ll [...]]]></description>
			<content:encoded><![CDATA[<p>Ah, the joys of the App Store: the iPhone version of Osmos is now available worldwide, and we didn&#8217;t even have to push a button to make it &#8220;live.&#8221; That said, we&#8217;ve done a lot of work leading up to this, and we’re excited! If the iPad version is a good indicator, we&#8217;re hoping it&#8217;ll be a hit!</p>
<p>If you’re interested in all the juicy details about Osmos on the iPhone, visit <a href="http://www.hemispheregames.com/Osmos-iphone/">this page</a>. Or, if you trust us implicitly, (as you should <img src='http://www.hemispheregames.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ,) click the App Store image below and buy this glorious piece of iPhone gaming goodness for just $2.99 (in the US); and then, write a review on the App Store (or &#8220;promote&#8221; others&#8217; reviews), and tell your iPhone gaming friends.</p>
<table>
<tr>
<td width=250><center><a href="http://itunes.com/app/osmos"><img src="/blog/images/AppStore.png" width="250" alt="Buy on Appstore"/></a><center></td>
<td>Once again, we’d like to thank and congratulate the man behind the port, Aaron Barsky. He’s done an amazing job, as we think you’ll agree. We&#8217;d also like to thank our friends, family and awesome beta testers who helped us get here.</td>
</tr>
</table>
<p><br/><br />
Well, now that all iOS devices are covered, (updates aside of course,) we plan on writing a few &#8220;post-mortem&#8221; posts about our experiences in iOS-land and the App Store. Hopefully they&#8217;ll both amuse and be useful/interesting for other devs and curious fans. Here are some of our planned topics:</p>
<ul>
<li>iPad vs. iPhone development and optimization.</li>
<li>&#8220;The Russian!&#8221;</li>
<li>Why Osmos is <em>not</em> a Universal app. (It&#8217;s not just because we&#8217;re greedy.)
<li>Adventures in iTunes Connect.</li>
</ul>
<p>So check back in this space soon for more&#8230;</p>
<p>Thanks, and happy Osmoting!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hemispheregames.com/2010/08/04/osmos-for-iphone-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Osmos (for iPhone/Touch), coming August 5th</title>
		<link>http://www.hemispheregames.com/2010/07/30/osmos-for-iphone-coming-august-5th/</link>
		<comments>http://www.hemispheregames.com/2010/07/30/osmos-for-iphone-coming-august-5th/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 23:15:28 +0000</pubDate>
		<dc:creator>eddybox</dc:creator>
		
		<category><![CDATA[Osmos]]></category>

		<category><![CDATA[iPhone/iPad]]></category>

		<guid isPermaLink="false">http://www.hemispheregames.com/?p=2661</guid>
		<description><![CDATA[It&#8217;s official: Osmos will be coming out on the iPad&#8217;s sexy little sister on August 5th! It will feature full Retina display and iOS 4.0 support, along with all the familiar features from the iPad version: addictive, physics-based gameplay, fluid multitouch controls, lush, flowing visuals, and a chill, ambient electronic soundtrack. It will be priced [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s official: Osmos will be coming out on the iPad&#8217;s sexy little sister on August 5th! It will feature full Retina display and iOS 4.0 support, along with all the familiar features from the iPad version: addictive, physics-based gameplay, fluid multitouch controls, lush, flowing visuals, and a chill, ambient electronic soundtrack. It will be priced at (the low, iPhone-market style) $2.99.</p>
<p>The #1 question we get asked is &#8220;how will Osmos look and play on the iPhone&#8217;s small screen, especially with my fat fingers?&#8221; The answer: very nicely! Check out this video to see it in action.</p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/cmUiskjaApA&amp;hl=en_GB&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/cmUiskjaApA&amp;hl=en_GB&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p>We&#8217;ve put a lot of work into this version (in fact the iPad &#8220;inherited&#8221; a lot of that work), and we hope you&#8217;ll enjoy it! For more information on features, the trailer, and awesome reviews of the iPad version, check out the <a href="/osmos-ipad">Osmos for iPad</a> page.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hemispheregames.com/2010/07/30/osmos-for-iphone-coming-august-5th/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Osmos Video Tutorial</title>
		<link>http://www.hemispheregames.com/2010/07/19/osmos-video-tutorial/</link>
		<comments>http://www.hemispheregames.com/2010/07/19/osmos-video-tutorial/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 22:24:04 +0000</pubDate>
		<dc:creator>eddybox</dc:creator>
		
		<category><![CDATA[Osmos]]></category>

		<category><![CDATA[iPhone/iPad]]></category>

		<guid isPermaLink="false">http://www.hemispheregames.com/?p=2636</guid>
		<description><![CDATA[Well, it&#8217;s been a little over a week since Osmos for iPad hit the App Store, and we couldn&#8217;t have asked for a better reception &#8212; thanks everyone! As a small thank you (and in acknowledgment that some of the levels in Osmos aren&#8217;t easy!), we&#8217;ve put together this little video tutorial to help. Specifically, [...]]]></description>
			<content:encoded><![CDATA[<p>Well, it&#8217;s been a little over a week since Osmos for iPad hit the App Store, and we couldn&#8217;t have asked for a better reception &#8212; thanks everyone! As a small thank you (and in acknowledgment that some of the levels in Osmos aren&#8217;t easy!), we&#8217;ve put together this little video tutorial to help. Specifically, this covers the last five levels of the Odyssey - Precision 4 through 8 - but it has tips that apply to a variety of levels. In particular, I give some general tips on how to control your orbit in the second level, &#8220;Sabotage.&#8221;</p>
<p>What? A &#8220;walk through?&#8221; Yes. We see Osmos as an arcade game &#8212; not a puzzle game, where giving away &#8220;the answer&#8221; can rob players of the satisfaction of discovering the solution for themselves. Here, it&#8217;s more about your understanding and skills; and as you improve, we believe your enjoyment of the game will also increase. We really want people to be able to finish the Odyssey (which we see as an introduction to the various level types) and spend their time enjoying and building skills at their own speed in Arcade mode.</p>
<p>So, without further ado, here it is.</p>
<p><center><br />
<object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/49pvhsXEwlo&amp;hl=en_GB&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/49pvhsXEwlo&amp;hl=en_GB&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object><br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hemispheregames.com/2010/07/19/osmos-video-tutorial/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Osmos for iPad Release</title>
		<link>http://www.hemispheregames.com/2010/07/08/osmos-for-ipad-release/</link>
		<comments>http://www.hemispheregames.com/2010/07/08/osmos-for-ipad-release/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 05:19:37 +0000</pubDate>
		<dc:creator>eddybox</dc:creator>
		
		<category><![CDATA[Osmos]]></category>

		<category><![CDATA[iPhone/iPad]]></category>

		<guid isPermaLink="false">http://www.hemispheregames.com/?p=2472</guid>
		<description><![CDATA[The iPad version of Osmos is hitting the App Store today, and, needless to say, we&#8217;re excited and proud. Some are calling it - gasp - the definitive version of Osmos. Gizmodo even called it &#8220;What iPad Gaming Should Be All About.&#8221;




Pardon the &#8220;2001, A Space Odyssey&#8221; inspired, over-the-topness; the shape of the iPad, Osmos [...]]]></description>
			<content:encoded><![CDATA[<p>The iPad version of Osmos is hitting the App Store today, and, needless to say, we&#8217;re excited and proud. Some are calling it - gasp - the <em>definitive version</em> of Osmos. <a href="http://gizmodo.com/5575852/osmos-hd-preview-game-design-as-immersive-as-the-ipad-itself">Gizmodo</a> even called it &#8220;What iPad Gaming Should Be All About.&#8221;</p>
<table>
<tr>
<td rowspan=2 width=300>
<center><a href="/blog/wp-content/uploads/2010/07/ipadosmos2001.jpg"><img src="/blog/wp-content/uploads/2010/07/ipadosmos2001.jpg" alt="ipadosmos2001" title="ipadosmos2001" width="300" height="215" class="alignnone size-full wp-image-2473" /></a><br />
<em><sup><br/><center>Pardon the &#8220;2001, A Space Odyssey&#8221; inspired, over-the-topness; the shape of the iPad, Osmos Attractors, the new Odyssey game mode&#8230; we&#8217;re just feeling a little epic. Can&#8217;t you just hear Thus Spake Zarathustra playing in the background?</center></sup></em>
</td>
<td valign="top">
If you&#8217;re interested in all the juicy details about this unique version of Osmos, just visit <a href="/Osmos-ipad">this page</a>. Or, if you have an iPad and trust us implicitly, (as you should <img src='http://www.hemispheregames.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ,) click the App Store image below and buy this glorious piece of iPad gaming goodness for just $4.99; and then, write a review on the App Store and tell all your friends.
</td>
</tr>
<tr>
<td valign="bottom">
<center><a href="http://itunes.com/app/osmosforipad"><img src="/blog/images/AppStore.png" width="250" alt="Buy on Appstore"/></a><center>
</td>
</tr>
</table>
<p><br/></p>
<p>We&#8217;d also like to thank and congratulate the man behind the port, Aaron Barsky. You may remember him from such blog posts as <a href="/2009/11/20/mac-osmos/">Mac Osmos</a> and the sordid <a href="/2009/12/22/confessions-of-an-indie-game-developer/">Confessions of an Indie Game Developer</a>. He&#8217;s done an amazing job, as we think you&#8217;ll agree.</p>
<p>Finally, a big thank you to our friends, family and awesome beta testers who helped us get here.</p>
<p>Happy Osmoting!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hemispheregames.com/2010/07/08/osmos-for-ipad-release/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Osmos for iPad, coming July 8th</title>
		<link>http://www.hemispheregames.com/2010/06/28/osmos-for-ipad-coming-july-8th/</link>
		<comments>http://www.hemispheregames.com/2010/06/28/osmos-for-ipad-coming-july-8th/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 03:12:57 +0000</pubDate>
		<dc:creator>eddybox</dc:creator>
		
		<category><![CDATA[Osmos]]></category>

		<category><![CDATA[iPhone/iPad]]></category>

		<guid isPermaLink="false">http://www.hemispheregames.com/?p=2324</guid>
		<description><![CDATA[We&#8217;ve been working on this one for quite some time (over six months, actually) and are excited to announce the upcoming release of the iPad version of Osmos!
As I mentioned in a previous post, we learned a lot from the development - and feedback! - from the PC/Mac/Linux versions of Osmos, and have reworked the [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve been working on this one for quite some time (over six months, actually) and are excited to announce the upcoming release of the iPad version of Osmos!</p>
<p>As I mentioned in a previous post, we learned a lot from the development - and feedback! - from the PC/Mac/Linux versions of Osmos, and have reworked the &#8220;i&#8221; Versions from the ground up: new game structure, sweet multitouch controls, more levels, difficulty curve smoothed out, new menus, everything tweaked for the screen size and processing power of the device, etc. We&#8217;re very happy with the results, and friends who are familiar with the game are saying this may be the &#8220;definitive version&#8221; of Osmos!</p>
<p>Here&#8217;s the original Osmos trailer, which is still totally relevant to the new version (it contains all the levels seen in the video)</p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/jrzhlTn1_ds&#038;hl=en_GB&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/jrzhlTn1_ds&#038;hl=en_GB&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p>And here&#8217;s a little hands-on sneak-peak of Osmos HD on the iPad</p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/FiMVNwt-8f8&#038;hl=en_GB&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/FiMVNwt-8f8&#038;hl=en_GB&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p>The iPhone version will come roughly a month after the iPad version, but the latter was so strong we decided to focus on it first. So for those of you with an iPad, mark July 8th on your gaming calender. We think you&#8217;ll be pleased!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hemispheregames.com/2010/06/28/osmos-for-ipad-coming-july-8th/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Linux, the Numbers</title>
		<link>http://www.hemispheregames.com/2010/06/23/linux-the-numbers/</link>
		<comments>http://www.hemispheregames.com/2010/06/23/linux-the-numbers/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 16:37:11 +0000</pubDate>
		<dc:creator>eddybox</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.hemispheregames.com/?p=2220</guid>
		<description><![CDATA[A little over a month ago we released the Linux port of Osmos, promising statistics on our sales and downloads. We wanted to find out - from a financial perspective, for our studio - &#8220;is it worth porting games to Linux?&#8221;
The short, simple answer&#8230; is &#8220;yes.&#8221;
Did we get rich off it? No. But the time [...]]]></description>
			<content:encoded><![CDATA[<p>A little over a month ago we released the Linux port of Osmos, promising statistics on our sales and downloads. We wanted to find out - from a financial perspective, for our studio - &#8220;is it worth porting games to Linux?&#8221;</p>
<p>The short, simple answer&#8230; is &#8220;yes.&#8221;</p>
<p>Did we get rich off it? No. But the time we invested was repaid, with room for margin of error, and possibly with a little extra at the end. Allow me to break it down:</p>
<h1>Costs</h1>
<p>It took Dave six weeks to do the port, including time spent testing across multiple flavours of Linux, and running the beta from start to end. Personally, I&#8217;m really impressed with what a solid job he did, and how quickly he did it. I doubt an experienced Linux programmer could have done it much faster, especially since Dave was already intimately familiar with the codebase. In fact, it&#8217;s hard to imagine porting any game to Linux much more quickly. (Excluding games built in Flash and engines that already support it of course.) The code was engineered to be cross-platform from the start, built on libraries like OpenGL, OpenAL, libogg/libvorbis, freetype, etc. In addition, Aaron had already done a great job on the Mac port, ironing out any remaining gcc/abstraction details. All this to say that Osmos was primed and ready for Linux-porting, and all work done on that front was specific to Linux.</p>
<p>We spent an additional week or two on miscellaneous tasks, including some additions to our e-commerce/delivery system, support, community, PR time, etc.</p>
<p>So&#8230; let&#8217;s call it an even 2 man-months across the board for our studio. A big question is, what&#8217;s a man-month worth? All I can say is, if your answer is the industry consulting standard of $10k/month &#8212; you&#8217;ve way overbid, and put the Linux port of Osmos into the financial-loss category. However, as independent developers with a passion for what we do, our goals and desires are considerably lower than that (i.e. less than half).</p>
<h1>Revenue</h1>
<p>Unfortunately, this isn&#8217;t so simple for us to measure. We&#8217;re selling Osmos under a pay-once-for-all-platforms philosophy &#8212; for $10 you get the Windows, Mac and Linux versions. So the numbers are fuzzy. What we can determine though, is how many times each person downloaded each version. We can also look at our sales graph over time, where there is a clear and obvious spike associated with the release on each platform.</p>
<p><center><br />
<table>
<caption align=bottom><em>Sales per day. (Pardon the ugly graph. Also note that the regions are very roughly drawn,<br/>and do not reflect exactly how numbers were estimated.)</em></caption>
<tr>
<td>
<a href="http://www.hemispheregames.com/blog/wp-content/uploads/2010/06/sales_graph2.jpg"><img width="600" src="http://www.hemispheregames.com/blog/wp-content/uploads/2010/06/sales_graph2.jpg" alt="sales_graph2" title="sales_graph2"/></a>
</td>
</tr>
</table>
<p></center></p>
<p>On first glance, one very cool stat emerges: our best sales day ever (by 29%) was right after the Linux release, similar to what <a href="http://2dboy.com/2009/02/12/world-of-goo-linux-version-is-ready/">2dboy experienced</a> with World of Goo. That said, the spike is also somewhat narrower than what it was for the Windows or Mac releases. In any case, if we measure the area above the &#8220;background noise&#8221; for the Linux release (based on the previous month&#8217;s sales), this gives us a conservative lower bound on sales. I say lower bound for several reasons. 1) As many Linux folk have pointed out, some purchased Osmos prior to the Linux release in support of our studio and on the promise that we would deliver the port. 2) There may still be some Linux mini-spikes to come, and future &#8220;background noise&#8221; will of course include Linux customers. That said, based solely on these numbers, Linux accounts for roughly 15% of our sales to date.</p>
<table>
<tr>
<td><a href="http://www.hemispheregames.com/blog/wp-content/uploads/2010/06/download_percentages.jpg"><img src="http://www.hemispheregames.com/blog/wp-content/uploads/2010/06/download_percentages-300x295.jpg" alt="download_percentages" title="download_percentages" width="260" class="alignnone size-medium wp-image-2226"/></a></td>
<td>
We can also determine an upper bound based on client downloads. Here we see that 21% of all our customers have at least clicked on the Linux download link.<br/><br/></p>
<p>You may notice that the percentages add up to more than 100; this is because customers can download on multiple platforms. In any case, it&#8217;s safe to call this an optimistic upper bound, as I know for a fact that some customers click on every download link just to test it out. Also, it&#8217;s impossible to know if some of those people would have made the purchase based solely on the Linux version.
</td>
</tr>
</table>
<p><br/><br />
So as a bottom line, Linux accounts for between 15% and 21% of our sales, with the &#8220;real&#8221; number being somewhere in between.</p>
<h1>Profit</h1>
<p>When we say &#8220;yes, it was worth porting Osmos to Linux&#8221;, we&#8217;re basing it on the lower bound. If the reality is closer to the upper bound: that&#8217;s &#8220;gravy&#8221;. The tail: more gravy. (Though it does cost us time and money to support and maintain the site).</p>
<p>It&#8217;s also important to note that this analysis applies only to sales from the Hemisphere Games website. The majority of Osmos sales come from portals &#8212; in particular, Steam. (Steam&#8217;s recent addition of Mac support has had a huge effect on our Mac numbers.) If we were to include portals in this analysis, the percentages would look <em>very</em> different. So in the bigger picture, the lack of a strong Linux portal makes it a much less &#8220;competitive&#8221; OS for commercial development. Of course, if <fingers crossed> Steam or another successful digital distribution portal decides to support Linux, that&#8217;d be major! Like&#8230; extra gravy. With stuffing. Mmmmm&#8230; stuffing&#8230;</p>
<h1>A few more stats&#8230;</h1>
<table>
<tr>
<td>
As any Linux user or developer knows, there&#8217;s more than one way to skin a distribution on Linux. Dave created four different packages: .deb, .tar.gz, a 32-bit .rpm, and a 64-bit .rpm. Here are download stats by distro.<br/><br />
So .deb is more in demand than all other packages combined, while the 32- and 64-bit flavours of .rpm are rather low. A question I have for the Linux community is: could we have skipped the .rpm packages? That is - to be completely materialistic about it - how many sales would we have lost as a result? (Just curious&#8230;)
</td>
<td><a href="http://www.hemispheregames.com/blog/wp-content/uploads/2010/06/distros.jpg"><img src="http://www.hemispheregames.com/blog/wp-content/uploads/2010/06/distros-300x292.jpg" alt="distros" title="distros" width="260" height="292" class="alignnone size-medium wp-image-2225" /></a></td>
</tr>
</table>
<p><br/><br />
Another point of interest for us was referring web traffic, and we were surprised to see where much of it came from. Here are the sites that generated the most traffic for the Linux port:</p>
<ol>
<li><a href="http://linux.org.ru">linux.org.ru</a>
<li><a href="http://linuxgames.com">linuxgames.com</a>
<li><a href="http://habrahabr.ru">habrahabr.ru</a>
<li><a href="http://hup.hu">hup.hu</a>
<li><a href="http://planet.ubuntuusers.de">planet.ubuntuusers.de</a>
<li><a href="http://www.linuxtoday.com/">linuxtoday.com</a>
<li><a href="http://happypenguin.org">happypenguin.org</a>
<li><a href="http://root.cz">root.cz</a>
<li><a href="http://linuxlock.blogspot.com">linuxlock.blogspot.com</a>
<li><a href="http://planet.ubuntu.com">planet.ubuntu.com</a>
<li><a href="http://linuxfr.org">linuxfr.org</a>
<li><a href="http://linux-gamers.net">linux-gamers.net</a>
<li><a href="http://linuxjuegos.com">linuxjuegos.com</a>
<li>and a special mention goes out to Liam Dawe of <a href="http://www.gamingonlinux.info">gamingonlinux.info</a>, who helped spread the word to a number of those sites! <img src='http://www.hemispheregames.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</ol>
<p>While we expected/hoped to see traffic from sites like linuxgames and happypenguin, we were very surprised to see the amount of interest from Russia and Eastern Europe. Apparently Linux gaming is alive and strong in that part of the world!</p>
<h1>&#8220;I am not a number &#8212; I&#8217;m a free (as in speech) man!&#8221;</h1>
<p>People are interested in numbers, and we&#8217;ve provided them, but that&#8217;s just one dimension of the story. As independent developers, there are other more altruistic factors that are important to us.</p>
<p>Before I go on, I must admit that I&#8217;m spoiled. Dave did all the <a href="/2010/05/18/porting-osmos-to-linux-a-post-mortem-part-23"/>hard work</a> on this port, and all I did was some website work: extending our digital delivery system, etc. So I&#8217;ve experienced nothing but the happy glow of the release, and from my perspective the Linux community has been awesome and generous. We&#8217;ve received a heap of positive and encouraging feedback, which is always nice to hear. Support emails for Linux are night-and-day-different from Windows or Mac &#8212; they include the log, version numbers, stack info, troubleshooting schemes already attempted, etc. Sometimes they even include the solution to the problem &#8212; just letting us know. And Linux users are vocal &#8212; there have been some amazing people in the community that have helped spread the word. We simply could not have done this ourselves; we wouldn&#8217;t have known half the places to approach, and even if we had we would have come across as fish-out-of-water. So once again, thank you.</p>
<p>That&#8217;s it for now on sales. We&#8217;ll probably follow up with some additional stats on the Linux tail in a month or two; but in the meantime, if you have any questions or comments, fire away!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hemispheregames.com/2010/06/23/linux-the-numbers/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Osmos for iPad: the beta begins (and what about iPhone?)</title>
		<link>http://www.hemispheregames.com/2010/06/12/osmos-for-ipad-the-beta-begins-and-what-about-iphone/</link>
		<comments>http://www.hemispheregames.com/2010/06/12/osmos-for-ipad-the-beta-begins-and-what-about-iphone/#comments</comments>
		<pubDate>Sat, 12 Jun 2010 18:57:49 +0000</pubDate>
		<dc:creator>eddybox</dc:creator>
		
		<category><![CDATA[Osmos]]></category>

		<category><![CDATA[iPhone/iPad]]></category>

		<guid isPermaLink="false">http://www.hemispheregames.com/?p=2203</guid>
		<description><![CDATA[For the lucky folks out there with an iPad, we&#8217;ll skip the foreplay and jump straight to the gist: the beta is starting and we&#8217;re looking for players (both new and old) to test it out! If you&#8217;re interested, send us an email at webmaster@[this domain].com.

Some of you may be thinking &#8220;What, no iPhone version?&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>For the lucky folks out there with an iPad, we&#8217;ll skip the foreplay and jump straight to the gist: the beta is starting and we&#8217;re looking for players (both new and old) to test it out! If you&#8217;re interested, send us an email at webmaster@[this domain].com.</p>
<p><img src="http://www.hemispheregames.com/blog/wp-content/uploads/2010/06/ipad_menu.jpg" alt="ipad_menu" title="ipad_menu" width="780"/></p>
<p>Some of you may be thinking &#8220;What, no iPhone version?&#8221; Not to worry, it&#8217;s coming. Here&#8217;s the scoop:</p>
<p>About six months ago, Aaron - who had just finished a great job on the Mac port - began work on the iPhone version of Osmos. To be honest, we weren&#8217;t sure it would &#8220;fit&#8221;. Would the iPhone be powerful enough to simulate and render everything? How would Osmos feel and play with multitouch controls? Would it be fun and playable on &#8220;such a small screen&#8221;? Aaron decided to jump in and find out.</p>
<p>Over the next couple of months, he confronted and solved all the technical problems: new Objective-C core and wrappers, check; conversion to OpenGL ES, check; sound (streaming, pitch shifting, etc.), check; multitouch controls, check! We knew there was still redesign work ahead, but our initial impressions were really positive: yes, Osmos would work very nicely on the iPhone.</p>
<p>And then a funny thing happened. Apple&#8217;s rumoured new tablet became a reality &#8212; and it was hot. We decided to get one, but unfortunately they were <em>so</em> hot we couldn&#8217;t get our hands on one for <em>months</em>! So we continued with the iPhone redesign: new game structure, new menus, more levels, difficulty curve smoothed out, everything tweaked for the screen size and processing power of the device. It was a lot of work, but everything was falling beautifully into place. A few weeks ago, we were 95% done &#8212; and very happy with the results.</p>
<p>That&#8217;s when we got our iPad. (Finally, on the international release. Oh, Canada.) Aaron had been preparing for it on the simulator, and it only took him a few hours to get Osmos up and running on the device. There were issues at first (more on that in another post), but overall: wow! We were really excited and impressed. At that moment we knew we had to release the iPad version first &#8212; kind of like when Butch Coolidge (the character played by Bruce Willis in Pulp Fiction), chainsaw in hand, sees the katana. An obvious choice.</p>
<p>So, while we promise to release the iPhone version of Osmos (which still rocks!) soon &#8212; up next: iPad! Get&#8217;cher beta! <img src='http://www.hemispheregames.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.hemispheregames.com/2010/06/12/osmos-for-ipad-the-beta-begins-and-what-about-iphone/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Porting Osmos to Linux: A Post-Mortem (part 2/3)</title>
		<link>http://www.hemispheregames.com/2010/05/18/porting-osmos-to-linux-a-post-mortem-part-23/</link>
		<comments>http://www.hemispheregames.com/2010/05/18/porting-osmos-to-linux-a-post-mortem-part-23/#comments</comments>
		<pubDate>Tue, 18 May 2010 19:47:22 +0000</pubDate>
		<dc:creator>Meal Worms</dc:creator>
		
		<category><![CDATA[Game Design]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Love]]></category>

		<category><![CDATA[Osmos]]></category>

		<guid isPermaLink="false">http://www.hemispheregames.com/?p=2181</guid>
		<description><![CDATA[Welcome to the second installment of our three-part Linux post-mortem. Part 1 lay the foundations for the article and where we&#8217;re coming from.  Today&#8217;s post directly addresses the question &#8220;What worked and what didn&#8217;t?&#8221; with a set of &#8216;pros and cons&#8217; that cropped up during the port.  The final post will offer a [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to the second installment of our three-part Linux post-mortem. <a href="/2010/05/17/porting-osmos-to-linux-a-post-mortem-part-13/">Part 1</a> lay the foundations for the article and where we&#8217;re coming from.  Today&#8217;s post directly addresses the question &#8220;What worked and what didn&#8217;t?&#8221; with a set of &#8216;pros and cons&#8217; that cropped up during the port.  The final post will offer a more nuanced set of reflections on these experiences, their implications for game development, and my advice for moving Linux forward as a gaming platform.</p>
<h1>Porting Osmos to Linux: What I Loved</h1>
<p>Let&#8217;s start with an account of the stuff that stands out as having worked really well &#8212; things that were well designed, pleasant to use, and easy to learn.</p>
<h1>Love: Live discs and bootable USBs</h1>
<p>Being able to boot into an OS from USB without having to first install to the HD is fab, and the various Linux distros have for the most part done a good job of supporting this behaviour.  During development, live discs were helpful in two main ways.  Firstly, when I was starting out, they made it easy for me to poke around and find a distro to use as my &#8216;core&#8217; Linux install (i.e. the install on which to do the bulk of my Linux development; I settled for Ubuntu 9.04).  Secondly, live discs made it easier to do quick first-blush tests of cross-distro/DE/WM compatibility for my executables and packages without having to first fully install and configure every OS.</p>
<p>One wish for the live discs would be for the OS versions they contain to have more robust HW drivers, particularly for video.  I realize drivers are a tricky issue in Linux and hard to support generically out-of-the-box, especially on a live OS (where, for example, rebooting to install a better driver isn&#8217;t in the cards), but for game development it would be great to have decent video performance when booting from a live disc.</p>
<h1>Love: Code::Blocks</h1>
<p>I was looking for a simple, light-weight, easy-to-use C++ IDE that was easy to find in binary form for several distributions (I didn&#8217;t want to have to compile an IDE myself) and that had some kind of interface sitting on top of gdb.  <a href="http://www.codeblocks.org/">Code::Blocks</a> was the answer.  It wasn&#8217;t bug free, mind you, and crashed on me once or twice per day (at times to great frustration because of state loss&#8230; but nothing reliably reproducable, I&#8217;m afraid, hence no bug reports filed).  But, critically, it provided a simple project system, a simple-yet-powerful set of compiler/linker options, the essential find/error/debug/bookmark interactions, and a basic gdb front-end.  Essentially everything I needed was there, it was simple to use, and it was available and (relatively) stable cross-distro.</p>
<h1>Love: The Linux Package Manager</h1>
<p>Linux&#8217;s package system may not have been easy-breezy to support (more on this below), but it sure was easy-breezy to use.  It was straightforward to find the developer libs/headers I needed and get them automatically installed into the right places.  It was fantastic that dependencies are automatically tracked and installed, and that headers/libs install to central and standard places for trivial inclusion/linkage into the project.</p>
<p>Two footnotes: firstly, this smoothness of experience was conditioned in part by the legwork that went into ensuring Osmos relied only on the most core of libs (libs/packages that ought to play nice and be easily found on any distro; GL/GLX, X11, FreeType, OpenAL, libogg/libvorbis, etc).  Secondly, a couple of the enterprise-oriented distros seemed to require a prohibitive amount of leg-work to configure for engineering purposes; this makes sense if the distro is targeted towards the consumer/office end of the market spectrum rather than the engineer, but for someone new to development on Linux, it&#8217;s painful if you don&#8217;t do your homework ahead of time.</p>
<h1>Love: Support from the Linux Community and our Beta-Testers</h1>
<p>It&#8217;s great to see how keen Linux users are to help support software on Linux.  The average Linux user is on-the-ball and really encouraging in terms of their enthusiasm for Linux and their appreciation of our efforts to get Osmos on Linux.  Post-launch, we&#8217;ve been getting great feedback and PR support from a few key folks in particular.</p>
<p>When the Linux port went into beta I issued a public call for testers and recruited about 50 people.  Each one was top-notch in terms of being observant while playing the game.  They were all helpful with their detective work, and the average level of technical savy-ness was very high when it came to sniffing out audio and WM/X issues for repro.  Folks were keen to try the game on as many machine specs as they could, and were keen to volunteer information and &#8220;run with&#8221; the testing on their own.  All this resulted in a very short beta period (less than two weeks) in which a lot of solid testing occurred very quickly, and with only a single patch being required to hammer out all known issues.</p>
<h1>Love: Cross-Platform Compatibility is Good for your Code</h1>
<p>While not a Linux-specific observation, there&#8217;s no doubt that developing multiplatform software is always beneficial for the code.  Each platform has different analysis tools, compilers that issue different warnings and generate different code, and video drivers with different behaviour; all of these serve to highlight any underlying issues in your project, and so the work invested on one platform has benefits for the other platforms too.  For the sake quality and stability, cross-platform compatibility has been a good thing for Osmos.</p>
<h1>What I Didn&#8217;t Love</h1>
<p>Let&#8217;s move on to the stuff that was less easy to love; things that stood out as being frustrating, difficult to use, and in some cases broken.</p>
<h1>Didn&#8217;t Love: Supporting multiple Distros/DEs/WMs/drivers/etc.</h1>
<p>The #1 obstacle to getting more games on Linux is that it&#8217;s very difficult to get your game working correctly and acceptably on all machines.  It&#8217;s really hard to guarantee a smooth experience for all players when there&#8217;s a combinatorial explosion of possible distributions, desktop environments, window managers, driver/hardware versions &#8212; each with their own unique foibles, bugs, and undocumented behaviours.  It&#8217;s the classic PC gaming problem, but magnified.  Linux loves freedom and choice, which I applaud &#8212; but some amount of standardization, collaboration and &#8220;Let&#8217;s work together&#8221;-ness is required for the platform to be friendly to application developers.</p>
<h1>Didn&#8217;t Love: Audio</h1>
<p>Brace yourselves, folks, because I&#8217;m going to put it bluntly: audio in Linux is a mess.  The audio situation is another  major obstacle to game development on Linux.  It&#8217;s 2010; audio is a solved problem.  And yet on Linux, it&#8217;s shocking that you cannot count on something as simple as non-streaming playback, never mind any kind of processing (which most games are wont to do!)  There are a variety of standards (ALSA, OSS, PulseAudio, Phonon, &#8230;) &#8212; which one to choose?  Each standard has different problems on different machines.  For a given standard, some drivers are buggy and poorly configured by default, while others do horrible thinks like block on open when another process opened the device.  This is all another way of saying that there are no audio standards.  What is a developer to do?</p>
<p>&#8220;But doesn&#8217;t OpenAL hide all the mess behind a single stable API?  Ideally you&#8217;d write the audio code once in OpenAL and then walk away.&#8221;  This isn&#8217;t how it happens in practice, because the fact of the matter is that the mess is still there.  Simply wrapping another software layer around the underlying problem doesn&#8217;t make it go away.  Using OpenAL for audio doesn&#8217;t all-of-a-sudden mean I can count on anything runtime-behavior-wise.  I write my code in OpenAL (rather than having to write directly in ALSA, PulseAudio, etc), but at runtime I still need to make choices &#8212; for example, by saying which underlying audio layer I want to use &#8212; and different people&#8217;s machine/lib/driver combos will do different things.  Simply using the local machine&#8217;s default audio device doesn&#8217;t guarantee anything about what&#8217;s going to work and what doesn&#8217;t, and a game needs guarantees in order to work correctly.  The audio situation is quite horrible I&#8217;m afraid.</p>
<h1>Didn&#8217;t Love: Lack of Documentation and Consensus</h1>
<p>In the Linux world there is so much choice and non-standardization, and it&#8217;s really hard to find out about things.  Documentation is sorely lacking, and it&#8217;s hard to find solutions because when a question is asked, people don&#8217;t agree on the answer.  Forum threads aren&#8217;t a good substitute for proper documentation, because forum threads can quickly become historical and fall out of date, meaning folks looking for answers spend a lot of time chasing down false-leads and asking themselves &#8220;Is this forum thread relevant to me?  Is it really what I&#8217;m looking for?&#8221; In the Linux world, it seems to take a great deal of detective work and reverse engineering to get things done; the plethora of choice means that the newcomer is never certain about their choices &#8212; and there will always be someone who disagrees with you (often vocally).</p>
<h1>Didn&#8217;t Love: Drivers and Hardware Support</h1>
<p>My main development machines are two off-the-shelf laptops with mainstream components, and neither of them had WiFi or video that worked out-of-the-box on any distribution I installed.  It took many hours to get decent hardware performance.  Proprietary drivers, open source drivers&#8230; which do I chose?  Do I really have to compile a driver for myself?  What&#8217;s more, when a new Linux user inquires about driver problems on a forum, the standard line of defense is to blame the problems on hardware manufacturers.  Whether or not the manufacturers deserve blame, the Linux platform folks need to step up, acknowledge the reality of the situation, and try to work to improve the platform.  The chipsets that didn&#8217;t work for me (without great effort) were nowhere close to bleeding edge (ATI and Intel graphics, Broadcom Wifi; some models dating back to 2007) and all are widely available on a large segment of the consumer-level market.  Linux needs better support for its HW; if I can&#8217;t walk into BestBuy, pick up a run-of-the-mill laptop and have my video and networking hardware work, then the platform is troubled.</p>
<h1>Didn&#8217;t Love: Packaging the Game</h1>
<p>It took days of effort to create the binary packages for Osmos (I&#8217;m happy to say that it&#8217;s looking like we don&#8217;t have to patch!)  How should an app be packaged in Linux?  Should I build my own libs and package them with my game, or rely on package dependency info and hope the distros have the right versions in their package repositories?  Which package formats do I choose (.deb, .rpm, .tar.gz, others)?  Do any of the package formats have naming conventions I need to follow?  What do you need to do to support both 32bit and 64bit?  What are the standard practices for where/how my game is layed out on the filesystem?  What goes where and where do you commonly put softlinks?  How do I represent softlinks in the various package systems?  Do architecture-specific files belong in special places?  Are there any standards for what&#8217;s in the environment path?  How do I integrate my app into the desktop environment?  What DEs are worth supporting?  Do I need to do separate things to support separate DEs?</p>
<p>There are no standards or clear answers to any of these questions.  There&#8217;s no documentation for this stuff!  Asking on the forums will typically net you a spectrum of answers with no consensus answer and lots of little side arguments.  I basically reverse engineered what I saw other apps doing (which sadly was of little comfort because everyone does it differently).  I settled on supporting .deb/.rpm/.tar.gz with explicit 32bit and 64bit executables for both the demo and retail versions of Osmos, with no redistributed libs and instead relying on package dependency info.  So far, this has worked out for nearly all distros except CentOS which has an archaic version of libvorbis and nothing new in the standard repositories.</p>
<p>Side-note for those interested: I didn&#8217;t venture anywhere near cross-compilation and instead simply built the 32bit and 64bit executables on separate 32bit and 64bit Ubuntu installs (which, interestingly enough, both displayed unique and undocumented WM/Xserver interactions, despite being the same version of Ubuntu!)</p>
<h1>Didn&#8217;t Love: No OS-level GUI layer for simple dialogs</h1>
<p>This is something of a minor point compared to the above, but I want to mention it because it comes up often enough in cross-platform development.  Because Linux has no OS-level GUI layer, games that need any kind of UI must link against heavy-weight UI libraries (GTK, QT, etc) which typically impose some kind of application framework.  Common examples of the usage of UI in the gaming world would be a dialog that prompts the user for input the first time a game is run (e.g. &#8220;Launch in fullscreen?&#8221;) or that displays a message when an app terminates unexpectedly.  For Osmos, I had to cut such user-friendly elements because I didn&#8217;t want the game to have any but the most basic of dependencies.<br />
<br/><br />
Whew!  Alright: in part 3, I&#8217;m going present a more general discussion of the implications of some of these issues for game developers, and reflect on ways to improve matters.  Stay tuned&#8230;</p>
<p>Dave</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hemispheregames.com/2010/05/18/porting-osmos-to-linux-a-post-mortem-part-23/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Porting Osmos to Linux: A Post-Mortem (part 1/3)</title>
		<link>http://www.hemispheregames.com/2010/05/17/porting-osmos-to-linux-a-post-mortem-part-13/</link>
		<comments>http://www.hemispheregames.com/2010/05/17/porting-osmos-to-linux-a-post-mortem-part-13/#comments</comments>
		<pubDate>Mon, 17 May 2010 19:27:26 +0000</pubDate>
		<dc:creator>Meal Worms</dc:creator>
		
		<category><![CDATA[Game Design]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Love]]></category>

		<category><![CDATA[Osmos]]></category>

		<guid isPermaLink="false">http://www.hemispheregames.com/?p=2086</guid>
		<description><![CDATA[A couple of weeks ago, we announced the release of Osmos on Linux.  Even before I had finished the port, we had been invited by a few members of the Linux community to do a post-mortem on our experiences.    We were asked, &#8220;What would have made the port easier?&#8221;  It [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago, we <a href="/2010/04/28/linux-osmos-release/">announced the release</a> of Osmos on Linux.  Even before I had finished the port, we had been invited by a few members of the Linux community to do a post-mortem on our experiences.    We were asked, &#8220;What would have made the port easier?&#8221;  It was pointed out to us that while some indie developer forays into Linux had resulted in drama (viz. John Blow&#8217;s <a href="http://braid-game.com/news/?p=364">inquiries into Linux</a> back in August 2008 as he was considering porting Braid to Linux), it was hoped that more indies would &#8220;take the plunge&#8221; and share their experiences with the Linux community, to work together towards developing Linux into a platform for gaming.</p>
<p>Our response was, &#8220;Great idea!&#8221;  Last week, when I finally had time to sit down and begin writing, I discovered there was quite a lot to say about my experiences &#8212; more, I think, than fits comfortably into a single blog post.  So, nearly three weeks after Osmos&#8217; launch on Linux, allow me to present the first of three daily installments of the Osmos Linux post-mortem!</p>
<p>In this post, I&#8217;d like to lay a bit of groundwork by describing where we&#8217;re coming from.  First then, three main points:</p>
<h2>
1) As a studio, we are (and continue to be!) open-minded and hopeful about Linux as viable platform for games.<br />
</h2>
<p>AAA shops have essentially stopped porting games to Linux (viz. the latest positions of long-time Linux proponents id and Epic).  Conventional wisdom in the games industry is that you can&#8217;t pay the bills making games for Linux because the market isn&#8217;t big enough relative to the cost of development.  Hemisphere Games, however, is an indie studio, and our development costs are much lower; we don&#8217;t have as many mouths to feed, and our aim is for smaller-budget titles.  So, it isn&#8217;t as obvious that this wisdom holds in our case.</p>
<p>Porting Osmos to Linux has been an experiment for us as a studio.  Is it worth porting games to Linux?  We sure hope so, but we&#8217;ll have to see!  We had a nice sales spike our first week, but it&#8217;s trailing off fast; we&#8217;re waiting to see what the tail is like, as news about the availability of Osmos on Linux gets around.  In a few weeks, we&#8217;re going to publish some sales stats and share our analysis on the prospects for the various platforms from the perspective of game development.  This post-mortem can therefore be viewed as a sort of prequel to the sales and market analysis still to come.</p>
<h2>
2) Our goal in these articles is to help the Linux platform, not to condemn it.<br />
</h2>
<p>The word criticism literally means &#8220;to discern the value of a thing&#8221;; criticism a good and essential part of growing.  In continuity with my first point, our objective with these articles is to help the Linux folks learn about their platform, to offer perspective about where its strengths and weaknesses lie.  We want to be open and honest in our description of our experiences as game developers working with Linux for the first time.  The intent of my feedback is to share what Linux is like for first-time users and developers, where the barriers to entry lie &#8212; essentially, what works, what&#8217;s broken, what&#8217;s attractive and what&#8217;s a turn-off!</p>
<p>Please let this be abundantly clear: we want to provide <em>helpful</em> insight into what Linux looks like for game developers &#8212; to <em>constructively</em> critique Linux as a gaming platform, for the purposes of <em>improving</em> it, not tearing it down.</p>
<h2>
3) Our hope is that the experiences and opinions we share will be carefully considered, given our position as seasoned game and engine developers.<br />
</h2>
<p>Leading up to this post-mortem, I&#8217;ve already shared a bit of my perspective with members of the Linux community in a couple of contexts.  I&#8217;ve found there are three common ways my perspective gets dismissed without engagement:</p>
<ol>
<li>&#8220;These comments are coming from a terrible game designer&#8230; If you&#8217;re a good developer you get things done&#8221;;</li>
<li>&#8220;id and Epic port their games successfully to Linux, why can&#8217;t you?&#8221;</li>
<li>&#8220;You should have hired a Linux-pro to do the port rather than attempting it yourself&#8221;</li>
</ol>
<p>Let me respond with two comments.  Firstly, observe that the final Osmos Linux port is very polished and successful from a technical standpoint, as evidenced e.g. by the favourable reviews, warm comments on our forums, the wide number of configs supported, the smooth package installation process, the excellent performance even on low-end machines, etc.  Secondly, I invite our critics to <a href="/about">examine our credentials</a>.  For the sake of this post-mortem article, note that I <em>was at Epic</em> as one of the handful of people on the Unreal Engine, and therefore 1) I have a bit of perspective into how things are done and what attitudes are like at shops like these; and 2) I&#8217;ve written a bit of code on one or two platforms in my day.</p>
<p>So, I hope it&#8217;s clear where we&#8217;re coming from; we&#8217;re friends of Linux, not enemies!</p>
<p>Let me also say a few words about the Osmos codebase itself.</p>
<h1>
A Brief Overview of the Cross-Platform Life of Osmos<br />
</h1>
<p>From very early on in the project, it was decided to build Osmos from-the-ground-up with cross-platform compatibility in mind.  Before I joined the project in September 2008, Eddy had (very rightly) decided that OpenGL, OpenAL, libvorbis/libogg and FreeType would be the core libraries on which the game was based (SDL was not an option for us for a variety of reasons; while useful in some contexts, SDL is fairly high-level and not a friendly solution 1) for the kinds of low-level processing that many games need to do, particularly with sound and input; and 2) when considering portability to consoles).  The game was initially released on the PC in August 2009.  Shortly to follow,  we simultaneously launched two ports in December 2009: a version of Osmos for Mac/OSX (ported by our resident Mac/iPhone specialist Aaron Barsky) and a multitouch-and-D3D version of the game for Win7 launch and the new &#8216;Games For Windows &#8212; LIVE&#8217; platform.  There have also been iPhone and iPad versions of Osmos in production since January 2010, as well as other dark and mysterious initiatives afoot (more details on these soon!)</p>
<p>So, by the time we came &#8217;round to the Linux port in March 2010, Osmos had already been ported a couple of times and therefore the codebase was mature, stable, and proven from a portability standpoint.  We considered hiring out the Linux port, but were wary about it.  We were unsure about how much revenue the port would bring in.  All ports to date had been done in-house, and so our processes were ironed out and we knew what to do.  And anyway, since we&#8217;d need to have a heavy involvement in the port for the sake of assuring quality even if it was contracted out, we decided in the end to simply do it ourselves.  I was the only person on the port, and the entire process, including the closed beta took six weeks.   I have no serious experience with Linux beyond being an end-user in the labs back in grad-school.</p>
<p>So, with all this as preamble, we&#8217;ll get on to the meat of my experiences with Linux in <a href="/2010/05/18/porting-osmos-to-linux-a-post-mortem-part-23/">tomorrow&#8217;s post</a>!  Stay tuned&#8230;</p>
<p>Dave</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hemispheregames.com/2010/05/17/porting-osmos-to-linux-a-post-mortem-part-13/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
