<?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>Spiralstorm Games</title>
	<atom:link href="http://spiralstormgames.com/blog/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://spiralstormgames.com/blog</link>
	<description>Game Development, Flash, iPhone</description>
	<lastBuildDate>Mon, 22 Mar 2010 14:12:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>360&#124;Flex was&#8230; Awesome</title>
		<link>http://spiralstormgames.com/blog/flash-games/360flex-was-awesome/</link>
		<comments>http://spiralstormgames.com/blog/flash-games/360flex-was-awesome/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 21:43:20 +0000</pubDate>
		<dc:creator>Oz</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Games]]></category>
		<category><![CDATA[Pixelwave]]></category>
		<category><![CDATA[iPhone development]]></category>

		<guid isPermaLink="false">http://spiralstormgames.com/blog/?p=287</guid>
		<description><![CDATA[So I&#8217;m finally back at work from a week at 360&#124;Flex, San Jose, and like the title suggests, it was great!
Tell us more!
Here&#8217;s my little blurb about the conference, in case you weren&#8217;t there:
This was my first 360 conference, and I had the honor of speaking there as well. I got to talk a bit <a href="http://spiralstormgames.com/blog/flash-games/360flex-was-awesome/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspiralstormgames.com%2Fblog%2Fflash-games%2F360flex-was-awesome%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspiralstormgames.com%2Fblog%2Fflash-games%2F360flex-was-awesome%2F" height="61" width="51" /></a></div><p>So I&#8217;m finally back at work from a week at 360|Flex, San Jose, and like the title suggests, it was great!</p>
<h2><strong>Tell us more!</strong></h2>
<p>Here&#8217;s my little blurb about the conference, in case you weren&#8217;t there:</p>
<p>This was my first 360 conference, and I had the honor of speaking there as well. I got to talk a bit about the Pixelwave framework, and give an overview of what a Flash developer may need to know to get started developing native iPhone apps. I also got to show a few demos of the engine in action, and finally demoed our upcoming iPhone game, a re-work of the popular Dino Run Flash game.</p>
<p>So that was nice, but the rest of the conference is what&#8217;s probably going to keep me coming in the years to come.</p>
<p>The speakers were good, the parties were fun, the location was cool, but what I probably enjoyed most were the people. I got to meet some really cool developers from all over the world, and make some really great connections. I think the smaller, more intimate atmosphere of this conference is what really sets it apart, allowing people to really spend time together, get to know each other, and build real friendships instead of just exchanging business cards. if you can make it to one of these in the future you should, and come say hi!</p>
<p><span id="more-287"></span></p>
<h2><strong>What about the files?</strong></h2>
<h3>The slides</h3>
<div id="__ss_3387132" style="width: 425px;"><strong><a title="Slides360 Flex2010 Oz Michaeli" href="http://www.slideshare.net/spiralstormgames/slides360-flex2010-oz-michaeli">Slides360 Flex2010 Oz Michaeli</a></strong><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=slides360flex2010ozmichaeli-100310104605-phpapp01&amp;stripped_title=slides360-flex2010-oz-michaeli" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=slides360flex2010ozmichaeli-100310104605-phpapp01&amp;stripped_title=slides360-flex2010-oz-michaeli" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/spiralstormgames">Spiralstorm Games</a>.</div>
<h3>Some code</h3>
<div style="padding: 5px 0 12px;">I didn&#8217;t show too much source at the presentation, and when I did most of it was in Objective-C, using the Pixelwave framework&#8230;</div>
<div style="padding: 5px 0 12px;">There&#8217;s no sense in putting out source which depends on an unreleased framework, but rest assured that it&#8217;ll be available when the framework comes out.</div>
<div style="padding: 5px 0 12px;"><a href="http://spiralstormgames.com/blog/wp-content/uploads/2010/03/ParticleTest.zip"><img class="alignnone size-full wp-image-291" title="iPhoneFlash_Particles" src="http://spiralstormgames.com/blog/wp-content/uploads/2010/03/iPhoneFlash_Particles.png" alt="" width="465" height="277" /></a></div>
<div style="padding: 5px 0 12px;">The particle simulation demo had a Flash version, which I showed at the talk, so if you want to look under the hood of the effect, here it is: <a href="http://spiralstormgames.com/blog/wp-content/uploads/2010/03/ParticleTest.zip">ParticleTest</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://spiralstormgames.com/blog/flash-games/360flex-was-awesome/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Flash Extension: Swap multiple symbols at once</title>
		<link>http://spiralstormgames.com/blog/code-snippets/quick-flash-extension-swap-multiple-elements-at-once/</link>
		<comments>http://spiralstormgames.com/blog/code-snippets/quick-flash-extension-swap-multiple-elements-at-once/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 20:45:14 +0000</pubDate>
		<dc:creator>Oz</dc:creator>
				<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://spiralstormgames.com/blog/?p=273</guid>
		<description><![CDATA[Every once in a while we come across something in Flash authoring that doesn&#8217;t work quite right&#8230; For example not being able to select a few symbols and swapping them with a different one from the library.
We can&#8217;t blame Adobe for this though since they can&#8217;t possibly think of everything, and they gave us the <a href="http://spiralstormgames.com/blog/code-snippets/quick-flash-extension-swap-multiple-elements-at-once/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspiralstormgames.com%2Fblog%2Fcode-snippets%2Fquick-flash-extension-swap-multiple-elements-at-once%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspiralstormgames.com%2Fblog%2Fcode-snippets%2Fquick-flash-extension-swap-multiple-elements-at-once%2F" height="61" width="51" /></a></div><p>Every once in a while we come across something in Flash authoring that doesn&#8217;t work quite right&#8230; For example not being able to select a few symbols and swapping them with a different one from the library.</p>
<p>We can&#8217;t blame Adobe for this though since they can&#8217;t possibly think of everything, and they gave us the means to extend Flash&#8217;s capabilities using JSFL. If you&#8217;ve never heard of it, JSFL (Java Script Flash) is a javascript API that can be used to make the Flash authoring do whatever you want programatically.</p>
<p>So we had the need to swap something like 30 symbols on the stage with a different one from the library, and once you select more than one symbol the little &#8216;Swap&#8217; button in the properties panel gets grayed out. We could select each one and swap it individually, but that would take waay too long&#8230; So I wrote a small script to do this, and thought I might as well post it here for everyone to use.<br />
<a href="http://spiralstormgames.com/blog/wp-content/uploads/2010/03/MassSwap.mxp_.zip"><img class="alignnone size-full wp-image-277" title="DownloadMassSwap" src="http://spiralstormgames.com/blog/wp-content/uploads/2010/03/DownloadMassSwap.png" alt="" width="120" height="183" /></a></p>
<p>It&#8217;s super easy to install, just double click the MassSwap.mxp file and it&#8217;ll be added to Flash&#8217;s commands list (via the extension manager).</p>
<p>Once you&#8217;ve installed it you can use it like so:</p>
<div id="_mcePaste">1. Select a bunch of items in Flash</div>
<div id="_mcePaste">2. Select an item in the library to swap them with</div>
<div id="_mcePaste">3. Run this script (Commands -&gt; MassSwap) and behold the magic</div>
]]></content:encoded>
			<wfw:commentRss>http://spiralstormgames.com/blog/code-snippets/quick-flash-extension-swap-multiple-elements-at-once/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Pixelwave at 360&#124;Flex and 360&#124;iDev</title>
		<link>http://spiralstormgames.com/blog/news/pixelwave-at-360flex-and-360idev/</link>
		<comments>http://spiralstormgames.com/blog/news/pixelwave-at-360flex-and-360idev/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 22:45:30 +0000</pubDate>
		<dc:creator>Oz</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Pixelwave]]></category>
		<category><![CDATA[iPhone development]]></category>

		<guid isPermaLink="false">http://spiralstormgames.com/blog/?p=235</guid>
		<description><![CDATA[
Even though we only officially announced the Pixelwave framework yesterday, our list of beta testers has grown tremendously in the past 24 hours.
It looks like alot of devs are a-twitter about it and I wanted to  dedicate a blog post to let everyone know that I&#8217;ll be showing off some of the framework&#8217;s capabilities at <a href="http://spiralstormgames.com/blog/news/pixelwave-at-360flex-and-360idev/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspiralstormgames.com%2Fblog%2Fnews%2Fpixelwave-at-360flex-and-360idev%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspiralstormgames.com%2Fblog%2Fnews%2Fpixelwave-at-360flex-and-360idev%2F" height="61" width="51" /></a></div><p><a href="http://spiralstormgames.com/blog/wp-content/uploads/2010/02/pixelwaveconf1.png"><img class="alignnone size-full wp-image-260" title="pixelwaveconf" src="http://spiralstormgames.com/blog/wp-content/uploads/2010/02/pixelwaveconf1.png" alt="" width="556" height="136" /></a></p>
<p>Even though we only officially announced the <a href="http://spiralstormgames.com/blog/iphone-games/say-hi-to-pixelwave-for-the-iphone/">Pixelwave framework</a> yesterday, our list of beta testers has grown tremendously in the past 24 hours.</p>
<p>It looks like alot of devs are a-twitter about it and I wanted to  dedicate a blog post to let everyone know that I&#8217;ll be showing off some of the framework&#8217;s capabilities at this upcoming <a href="http://www.360flex.com/" target="_blank">360|Flex</a> conference in March as well as <a href="http://www.360idev.com/" target="_blank">360|iDev</a> in April.</p>
<p>I&#8217;ve heard so many good things about these conferences that I can&#8217;t wait to get there and meet all the other like-minded people and pretty much just nerd out about code. If you&#8217;ll be there do stop by and say hi (look for Oz Michaeli), it would be nice to meet you anonymous reader.</p>
<p>Everyone has already heard about 360|Flex, but If you&#8217;re into iPhone development, and you&#8217;ve never been to 360|iDev you should definitely check it out.</p>
<p>360|iDev is like 360|Flex for iPhone developers, and one of the biggest iPhone conference for developers out there. The conferences are run by a bunch of very down-to-earth, fun loving, guys (and gals) who have been awesome so far.</p>
<p><strong>What&#8217;s going on at 360|iDev </strong>:</p>
<ul>
<li>iDev is going to go on from April 11 &#8211; April 14 (sunday to wed) in San Jose, CA.</li>
<li>Currently there are 40 sessions planned, 5 hands-on training sessions, and almost 40 speakers.</li>
<li>The parties are supposed to be extra awesome (looking forward to <a href="http://www.appfigures.com/blog" target="_blank">appFigures</a>&#8216;), and all the curricular activities will be taking place at the Marriot (and it&#8217;s where all the speakers stay), so it&#8217;s probably the best place to book for maximum exposure. From what I understand there&#8217;ll be a special rate for conference goers: <a href="http://bit.ly/360idevhotel" target="_blank">bit.ly/360idevhotel</a></li>
<li>It looks like the early-bird tickets are gone, but if you buy your tix with this <a href="http://360idev-ozm.eventbrite.com/">very special link</a> you&#8217;ll be rewarded in heaven (There&#8217;s a sort of contest among the speakers for who gets the most people to go)</li>
</ul>
<p>You can learn all about it at <a href="http://www.360idev.com">www.360idev.com</a>.</p>
<p>And you can also find me on twitter @oztune.</p>
]]></content:encoded>
			<wfw:commentRss>http://spiralstormgames.com/blog/news/pixelwave-at-360flex-and-360idev/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Say hi to Pixelwave for the iPhone</title>
		<link>http://spiralstormgames.com/blog/iphone-games/say-hi-to-pixelwave-for-the-iphone/</link>
		<comments>http://spiralstormgames.com/blog/iphone-games/say-hi-to-pixelwave-for-the-iphone/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 17:20:14 +0000</pubDate>
		<dc:creator>Oz</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Flash Games]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[iPhone Games]]></category>
		<category><![CDATA[iPhone development]]></category>

		<guid isPermaLink="false">http://spiralstormgames.com/blog/?p=158</guid>
		<description><![CDATA[Today I&#8217;m really excited to introduce something we&#8217;ve been working on for quite a while here at Spiralstorm.
It&#8217;s called Pixelwave and it&#8217;s a complete framework for building 2D games and applications on the iPhone, based completely on the Flash AS3 API.



Pixelwave
The idea started around mid-2009 when we realized that there really weren&#8217;t any good 2D <a href="http://spiralstormgames.com/blog/iphone-games/say-hi-to-pixelwave-for-the-iphone/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspiralstormgames.com%2Fblog%2Fiphone-games%2Fsay-hi-to-pixelwave-for-the-iphone%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspiralstormgames.com%2Fblog%2Fiphone-games%2Fsay-hi-to-pixelwave-for-the-iphone%2F" height="61" width="51" /></a></div><p>Today I&#8217;m really excited to introduce something we&#8217;ve been working on for quite a while here at Spiralstorm.</p>
<p>It&#8217;s called Pixelwave and it&#8217;s a complete framework for building 2D games and applications on the iPhone, based completely on the Flash AS3 API.</p>
<div style="text-align: center; margin: 20px 0;">
<div style="border: 1px solid #cbcbcb; padding: 10px; width: 481px;"><img class="alignnone size-full wp-image-170" title="Pixelwave Logo" src="http://spiralstormgames.com/blog/wp-content/uploads/2010/02/Logo.png" alt="" width="481" height="119" /></div>
</div>
<div style="font-weight: bold; font-size: 18px; margin: 20px 0 10px 0;">Pixelwave</div>
<p>The idea started around mid-2009 when we realized that there really weren&#8217;t any good 2D engines out there for the iPhone that wrap OpenGL ES in a clean, object orientated framework, while running in a really fast, optimized way.</p>
<p>We&#8217;ve also been using Flash for ages, and decided to start out by using the same class and function names used in Flash to make our lives easier.</p>
<p>The engine has come a really long way since, actually getting overhauled twice until we had something we&#8217;re really happy with.</p>
<blockquote><p>Our main goals were ease-of-use and optimized rendering. The end result is an optimized C-based core, with an easy to use Objective-C interface.</p></blockquote>
<p>The framework now replicates a lot of the core functionality of Flash in Objective-C. We chose to go with Objective-C over C or C++ because of it&#8217;s inherent similarities to Actionscript 3, at least as far as sharing the same concepts for classes/interfaces/methods in a very clean and simple API.</p>
<p>To keep things as fast as possible though, the engine&#8217;s core is built completely in C, and wraps OpenGL very intelligently, doing a lot of optimizations for the user for free.</p>
<p>So when we realized just what an awesome tool this creation has become, we decided we need to share it with the world, and open-source it for everyone!</p>
<p><strong>So lets talk features. Here are the big ones:</strong></p>
<ul>
<li>Super optimized OpenGL rendering. You just tell Pixelwave where to draw, it&#8217;ll take care of the rest <img src='http://spiralstormgames.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li> Very clean API, following the Flash ActionScript 3.0 framework structure.</li>
<li>Simple event dispatching model, just like Flash. Event bubbling and capture phase included.</li>
<li>Handles native iPhone features with style. (ex: Listen to touch events just like you would mouse events in Flash, very intuitive)</li>
<li>Native vector drawing, using the Graphics class</li>
<li>TextFields with native or custom fonts.</li>
<li>One line texture loading, supporting many different texture types</li>
<li>Simple sound playback</li>
<li>Very easy to extend the engine&#8217;s functionality (if you know OpenGL) by subclassing the DisplayObject</li>
<li>Plays nice with Cocoa Touch, contained completely within a single UIView</li>
</ul>
<div style="font-weight: bold; font-size: 18px; margin: 20px 0 10px 0;">PixelKit: Just for games</div>
<p>So we know all those features are awesome for general use, but seeing as we are all about creating games we thought we&#8217;d also share our useful utility classes specialized for games. Since these aren&#8217;t a part of the core engine we grouped them into the PixelKit, a collection of classes for game makers to use with Pixelwave. It&#8217;ll all be in the same package, pre-integrated for everyone to enjoy.</p>
<p>Main PixelKit features:</p>
<ul>
<li> Resource Manager &#8211; An efficient, object-oriented resource manager that can handle any file type + sync/async loading</li>
<li>Animation Importer &#8211; Turn your Flash MovieClips into PixelKit AnimationClips with the PixelKit animation importer and the Flash animation exporter (more on that below)</li>
<li>Tweening engine &#8211; A must for any real app, integrated with PIxelwave</li>
<li> A Particle System &#8211; An optimized particle system for use with Pixelwave</li>
<li> Physics engine bindings &#8211; We like Box2D</li>
</ul>
<div style="font-weight: bold; font-size: 18px; margin: 20px 0 10px 0;">Flash animations on the iPhone</div>
<p>The Flash exporting conversion tool is another, completely separate app we&#8217;ve been working on for a while. It lets you turn your Flash animations into PixelKit AnimationClips, and control them with commands like gotoAndPlay, gotoAndStop, etc. We&#8217;re going to keep this one on the down-low for now, expect more info on this in the future.</p>
<div style="font-weight: bold; font-size: 18px; margin: 20px 0 10px 0;">Code Examples</div>
<p>This framework shines when it comes to code. Things that would take dozens or hundreds of lines before can be achieved in only a few. Whether you&#8217;re familiar with the Flash API or not, this framework provides a clean, easy-to-learn API that just makes sense.</p>
<p>Creating a vector shape:</p>
<pre>PXShape *shape = [PXShape new];
[shape.graphics lineStyle: 1];
[shape.graphics drawRect: 0 : 0 : 100 : 100];

shape.x = 50;
shape.y = 50;
shape.rotation = 45;

[self addChild: shape];
[shape release];</pre>
<p>Loading and displaying an image:</p>
<pre>PXTexture *smiley = [PXTexture textureWithFileName: @"smiley.png"];
[self addChild: smiley];</pre>
<p>Listening to an event:</p>
<pre>[self addEventListener: PX_TOUCH_EVENT_DOWN listener: PXListener(onSmileyTouch:)];

- (void) onSmileyTouch: (PXTouchEvent *)e{
    smiley.x = e.localX;
    smiley.y = e.localY;
}</pre>
<p>If you&#8217;re a Flash developer, we also want to know what you DON&#8217;T like about Flash. Yup, we figured if we&#8217;re already getting our hands dirty we might as well fix those little nuances that drive us crazy with Flash every day. For example, in AS3 you probably find yourself writing this alot:</p>
<pre>sprite.scaleX = sprite.scaleY = 0.5;</pre>
<p>Well, in Pixelwave the DisplayObject has an extra, derived property called &#8217;scale&#8217;. Changing scale modifies both the scaleX and scaleY property.</p>
<pre>sprite.scale = 0.5;</pre>
<div style="font-weight: bold; font-size: 18px; margin: 20px 0 10px 0;">A Brief Conclusion</div>
<p>As you can see we&#8217;ve been very busy here at the Spiralstorm offices. We&#8217;ve been developing all these tools for internal use, but we think the community can take them to places we&#8217;ve never even imagined. Everything will be open-source, I can&#8217;t wait to see what will happen.</p>
<p>So please, tell us what you think! We&#8217;re nearing the beta testing stage soon.<br />
If you want to help us test all this, please <a href="http://www.spiralstormgames.com/contact.htm">contact us</a>. We&#8217;ll keep you updated.</p>
<p>I, (Oz) also have the great honor of speaking at <a href="http://www.360flex.com/">360|Flex</a> and <a href="http://www.360idev.com/">360|iDev</a> these upcoming two months, and guess what I&#8217;ll be demoing&#8230;<br />
If you&#8217;re going to be attending 360|Flex or 360|iDev (and you should in any case), come check it out!</p>
<p>We also have a new dedicated site: <a href="http://www.pixelwave.org" target="_blank">www.pixelwave.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://spiralstormgames.com/blog/iphone-games/say-hi-to-pixelwave-for-the-iphone/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>What happened to the App Store last week?</title>
		<link>http://spiralstormgames.com/blog/app-store/what-happened-to-the-appstore-last-week/</link>
		<comments>http://spiralstormgames.com/blog/app-store/what-happened-to-the-appstore-last-week/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 23:39:27 +0000</pubDate>
		<dc:creator>Oz</dc:creator>
				<category><![CDATA[App Store]]></category>

		<guid isPermaLink="false">http://spiralstormgames.com/blog/?p=149</guid>
		<description><![CDATA[I don&#8217;t know if you noticed, but the app store was a bit screwy last week.
Reports didn&#8217;t come out for a whole day and some ranks changed significantly over very short periods of time.
appFigures dug into their infinite bag of App Store data to shed some light on this.

Check out their informative blog post here
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspiralstormgames.com%2Fblog%2Fapp-store%2Fwhat-happened-to-the-appstore-last-week%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspiralstormgames.com%2Fblog%2Fapp-store%2Fwhat-happened-to-the-appstore-last-week%2F" height="61" width="51" /></a></div><p>I don&#8217;t know if you noticed, but the app store was a bit screwy last week.</p>
<p>Reports didn&#8217;t come out for a whole day and some ranks changed significantly over very short periods of time.</p>
<p><a href="http://www.appfigures.com" target="_blank">appFigures</a> dug into their infinite bag of App Store data to shed some light on this.</p>
<p><a href="http://www.appfigures.com/blog/the-app-store-is-crazy-certified-crazy/"><img class="alignnone" title="The App Store is crazy" src="http://www.appfigures.com/blog/wp-content/uploads/2010/02/crazy_appstore_bar_12.gif" alt="The App Store is crazy" width="500" height="279" /></a></p>
<p>Check out their <a href="http://www.appfigures.com/blog/the-app-store-is-crazy-certified-crazy/" target="_blank">informative blog post here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://spiralstormgames.com/blog/app-store/what-happened-to-the-appstore-last-week/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Polygon Triangulation</title>
		<link>http://spiralstormgames.com/blog/cc/triangulation/</link>
		<comments>http://spiralstormgames.com/blog/cc/triangulation/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 23:27:34 +0000</pubDate>
		<dc:creator>Oz</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[OpenGL]]></category>

		<guid isPermaLink="false">http://spiralstormgames.com/blog/?p=137</guid>
		<description><![CDATA[If you&#8217;re using OpenGL, you may have a need to triangulate your polygons in order to draw them.
A common algorithm to do this is the ear clipping algorithm. We&#8217;ve been on the search for a solid implementation of this for a while, and have finally found one:
http://www.flipcode.com/archives/Efficient_Polygon_Triangulation.shtml
It&#8217;s written in c++ and has no dependencies (except <a href="http://spiralstormgames.com/blog/cc/triangulation/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspiralstormgames.com%2Fblog%2Fcc%2Ftriangulation%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspiralstormgames.com%2Fblog%2Fcc%2Ftriangulation%2F" height="61" width="51" /></a></div><p>If you&#8217;re using OpenGL, you may have a need to triangulate your polygons in order to draw them.</p>
<p>A common algorithm to do this is the ear clipping algorithm. We&#8217;ve been on the search for a solid implementation of this for a while, and have finally found one:</p>
<p><a href="http://www.flipcode.com/archives/Efficient_Polygon_Triangulation.shtml" target="_blank">http://www.flipcode.com/archives/Efficient_Polygon_Triangulation.shtml</a></p>
<p>It&#8217;s written in c++ and has no dependencies (except for stl). It was really easy to use, and worked well in our tests.</p>
]]></content:encoded>
			<wfw:commentRss>http://spiralstormgames.com/blog/cc/triangulation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Welcome to the new Spiralstorm Blog</title>
		<link>http://spiralstormgames.com/blog/news/welcome-to-the-spiralstorm-blog/</link>
		<comments>http://spiralstormgames.com/blog/news/welcome-to-the-spiralstorm-blog/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 21:07:49 +0000</pubDate>
		<dc:creator>Oz</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://spiralstormgames.com/blog/?p=47</guid>
		<description><![CDATA[We&#8217;ve been so busy lately that we haven&#8217;t had any time to share with the world, but have no fear, with the aid of our new, redesigned blog, we&#8217;ll finally have a venue to talk about everything Flash, iPhone, and games.
Check back in the upcoming days when we&#8217;ll be blogging about what we&#8217;ve been up <a href="http://spiralstormgames.com/blog/news/welcome-to-the-spiralstorm-blog/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspiralstormgames.com%2Fblog%2Fnews%2Fwelcome-to-the-spiralstorm-blog%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspiralstormgames.com%2Fblog%2Fnews%2Fwelcome-to-the-spiralstorm-blog%2F" height="61" width="51" /></a></div><p>We&#8217;ve been so busy lately that we haven&#8217;t had any time to share with the world, but have no fear, with the aid of our new, redesigned blog, we&#8217;ll finally have a venue to talk about everything Flash, iPhone, and games.</p>
<p>Check back in the upcoming days when we&#8217;ll be blogging about what we&#8217;ve been up to.</p>
]]></content:encoded>
			<wfw:commentRss>http://spiralstormgames.com/blog/news/welcome-to-the-spiralstorm-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating unique variables within your preprocessor macros</title>
		<link>http://spiralstormgames.com/blog/iphone-development/creating-unique-variables-within-your-preprocessor-macros/</link>
		<comments>http://spiralstormgames.com/blog/iphone-development/creating-unique-variables-within-your-preprocessor-macros/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 23:15:41 +0000</pubDate>
		<dc:creator>Oz</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[iPhone development]]></category>

		<guid isPermaLink="false">http://spiralstormgames.com/blog/?p=88</guid>
		<description><![CDATA[Sometimes in your macros you need to use a variable, but you can&#8217;t scope it to the macro. If you use this macro more than one in the same scope you get a duplicate variable warning.
For example, let&#8217;s say this is your macro:

#define LOOP_10_TIMES \
int i = 0; \
for( i = 0; i &#60; 10; <a href="http://spiralstormgames.com/blog/iphone-development/creating-unique-variables-within-your-preprocessor-macros/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspiralstormgames.com%2Fblog%2Fiphone-development%2Fcreating-unique-variables-within-your-preprocessor-macros%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspiralstormgames.com%2Fblog%2Fiphone-development%2Fcreating-unique-variables-within-your-preprocessor-macros%2F" height="61" width="51" /></a></div><p>Sometimes in your macros you need to use a variable, but you can&#8217;t scope it to the macro. If you use this macro more than one in the same scope you get a duplicate variable warning.</p>
<p>For example, let&#8217;s say this is your macro:</p>
<pre class="brush: plain">
#define LOOP_10_TIMES \
int i = 0; \
for( i = 0; i &lt; 10; ++i)
</pre>
<p>And this is your implementation:</p>
<pre class="brush: php">
LOOP_10_TIMES{
	x += i;
}
</pre>
<p>This is fine, but what happens when you want to use this macro twice? Like so:</p>
<pre class="brush: php">
LOOP_10_TIMES
	num += i;

LOOP_10_TIMES
	mun += i;
</pre>
<p>You&#8217;re sure to get a nasty error (or at least a warning).<br />
This is because your code now declares the variable &#8216;i&#8217; twice in the same scope.</p>
<p><span id="more-88"></span></p>
<p>So how do we solve this? Our macro needs to create its own unique variable each time and use that instead. This is where the <strong>__LINE__</strong> preprocessor directive comes into play</p>
<p>Using __Line__ you can figure out what on what line in the file the call to the macro is located. So if you combine the current line with the name of your variable you can create a unique variable which will never repeat within the same source file twice.</p>
<p>So how do you generate a unique variable? Use this handy code:</p>
<pre class="brush: c">
#define _LINENAME_CONCAT( _name_, _line_ ) _name_##_line_
#define _LINENAME(_name_, _line_) _LINENAME_CONCAT(_name_,_line_)
#define _UNIQUE_VAR(_name_) _LINENAME(_name_,__LINE__)
</pre>
<p>You&#8217;re probably wondering why this code does in 3 nested calls what it can do with just one&#8230; well if you consolidate these three lines into one it just won&#8217;t work.. try it out. This works though, I promise.</p>
<p>Ok so now that the hard part is over, here&#8217;s how you use it</p>
<p>So here&#8217;s a little usage example:</p>
<pre class="brush: c">

//Note the line that the code is actually on

int _UNIQUE_VAR(myVar) = 5;
int _UNIQUE_VAR(myVar) = 10;
int _UNIQUE_VAR(myVar) = 20;

//This is what the output is

print( myVar3 ); //output: 5
print( myVar4 ); //output: 10
print( myVar5 ); //output: 20
</pre>
<p>I hope that helps you, it took a while to figure out but it&#8217;s definitely useful in a sticky macro situation</p>
]]></content:encoded>
			<wfw:commentRss>http://spiralstormgames.com/blog/iphone-development/creating-unique-variables-within-your-preprocessor-macros/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Calling C functions in your C++ code</title>
		<link>http://spiralstormgames.com/blog/iphone-development/calling-c-functions-in-your-c-code/</link>
		<comments>http://spiralstormgames.com/blog/iphone-development/calling-c-functions-in-your-c-code/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 22:00:37 +0000</pubDate>
		<dc:creator>Oz</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[iPhone development]]></category>

		<guid isPermaLink="false">http://spiralstormgames.com/blog/?p=75</guid>
		<description><![CDATA[Have you ever wanted to call a c function located in one file within a different c++ (.mm / .cpp) file?
If you did, you probably know that it can be a royal pain if you don&#8217;t know the trick.
So if like me you&#8217;ve been looking for the solution, it&#8217;s very easy! Just use the extern <a href="http://spiralstormgames.com/blog/iphone-development/calling-c-functions-in-your-c-code/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspiralstormgames.com%2Fblog%2Fiphone-development%2Fcalling-c-functions-in-your-c-code%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspiralstormgames.com%2Fblog%2Fiphone-development%2Fcalling-c-functions-in-your-c-code%2F" height="61" width="51" /></a></div><p>Have you ever wanted to call a c function located in one file within a different c++ (.mm / .cpp) file?</p>
<p>If you did, you probably know that it can be a royal pain if you don&#8217;t know the trick.<br />
So if like me you&#8217;ve been looking for the solution, it&#8217;s very easy! Just use the <strong><em>extern &#8220;C&#8221;</em></strong> keyword (not to be confused with plain <em>extern</em>). Here&#8217;s an example:</p>
<pre class="brush: c">
extern &quot;C&quot; #include &quot;my_c_code.h&quot;;
</pre>
<p>This also works with the Objective-C #import keyword:</p>
<pre class="brush: c">
extern &quot;C&quot; #import &quot;MyObjCClass.h&quot;;
</pre>
<p>or alternatively for multiple includes</p>
<pre class="brush: c">
extern &quot;C&quot; {
#include &quot;my_c_code.h&quot;
#include &quot;my_other_c_code.h&quot;
}
</pre>
<p>And that&#8217;s the way you include someone else&#8217;s C code into your C++ files. <strong>Easy</strong>!</p>
<p>But&#8230;<br />
If you&#8217;re writing brand new C code and you want it to be automatically compatible with other C++ code you can build it in a way that will make it #include&#8217;able into any source file.</p>
<p>Using the __cplusplus preprocessor variable you can check if the current build target is a c++ file and if so, surround your code with extern &#8220;C&#8221;</p>
<p>So for example let&#8217;s say this is our current C header file:</p>
<pre class="brush: c">

//my_c_header.h:

int addOne(int n);
int globalVar;
//..etc
</pre>
<p>To make this code C++ friendly, we&#8217;d do this:</p>
<pre class="brush: c">
//my_cpp_friendly_c_header.h:

#ifdef __cplusplus
extern &quot;C&quot; {
#endif

int addOne(int n);
int globalVar;
//..etc

#ifdef __cplusplus
}
#endif
</pre>
<p>Now in your C++ file you can just write</p>
<pre class="brush: c">

// my_cpp_code.cpp

#include &quot;my_cpp_friendly_c_header.h&quot;
</pre>
<p>So if you know that your C code will be included into C++ source, it&#8217;s always a good idea to wrap it in extern &#8220;C&#8221; { &#8230; } to avoid headaches later on&#8230;</p>
<p>More info over at: <a href="http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html">http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://spiralstormgames.com/blog/iphone-development/calling-c-functions-in-your-c-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Woo hoo, It&#8217;s out! Get some Flyloop</title>
		<link>http://spiralstormgames.com/blog/iphone-games/woo-hoo-its-out-get-some-flyloop/</link>
		<comments>http://spiralstormgames.com/blog/iphone-games/woo-hoo-its-out-get-some-flyloop/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 19:34:32 +0000</pubDate>
		<dc:creator>Oz</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[iPhone Games]]></category>

		<guid isPermaLink="false">http://spiralstormgames.com/blog/?p=60</guid>
		<description><![CDATA[It&#8217;s been 14 very long days, but Apple finally approved Flyloop. Go check it out, here&#8217;s the iTunes Link: Download
This video was embedded using the YouTuber plugin by Roy Tanck. Adobe Flash Player is required to view the video.
And of course, check out http://www.flyloop.com
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspiralstormgames.com%2Fblog%2Fiphone-games%2Fwoo-hoo-its-out-get-some-flyloop%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspiralstormgames.com%2Fblog%2Fiphone-games%2Fwoo-hoo-its-out-get-some-flyloop%2F" height="61" width="51" /></a></div><p>It&#8217;s been 14 very long days, but Apple finally approved Flyloop. Go check it out, here&#8217;s the iTunes Link: <a href="http://www.itunes.com/apps/flyloop" target="_blank">Download</a></p>
<p><object width="425" height="355" type="application/x-shockwave-flash" data="http://www.youtube.com/v/c-DYKF0qZ1I"><param name="movie" value="http://www.youtube.com/v/c-DYKF0qZ1I" />This video was embedded using the YouTuber plugin by <a href="http://www.roytanck.com">Roy Tanck</a>. Adobe Flash Player is required to view the video.</object></p>
<p>And of course, check out <a title="Flyloop" href="http://" target="_blank">http://www.flyloop.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://spiralstormgames.com/blog/iphone-games/woo-hoo-its-out-get-some-flyloop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
