<?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>Acorn Heroes &#187; Setting up</title>
	<atom:link href="http://acornheroes.com/category/setting-up/feed/" rel="self" type="application/rss+xml" />
	<link>http://acornheroes.com</link>
	<description>iPhone Development from the Ends of the Earth</description>
	<lastBuildDate>Sun, 21 Aug 2011 03:53:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Faerie&#8217;s Journey &#8211; part 2</title>
		<link>http://acornheroes.com/2011/01/faeries-journey-part-2/</link>
		<comments>http://acornheroes.com/2011/01/faeries-journey-part-2/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 22:09:01 +0000</pubDate>
		<dc:creator>George</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Faerie]]></category>
		<category><![CDATA[Setting up]]></category>
		<category><![CDATA[Setup]]></category>

		<guid isPermaLink="false">http://acornheroes.com/?p=672</guid>
		<description><![CDATA[In which George lays out his initial project structure with the best of intentions, knowing full well that it&#8217;ll get all messy one way or another&#8230; Every journey begins with a single step&#8230; Yes I have been working on Faerie on and off for a while now, but this week marks the writing of the [...]]]></description>
			<content:encoded><![CDATA[<p><em>In which George lays out his initial project structure with the best of intentions, knowing full well that it&#8217;ll get all messy one way or another&#8230;</em></p>
<h2>Every journey begins with a single step&#8230;</h2>
<p>Yes I have been working on Faerie on and off for a while now, but this week marks the writing of the first actual lines of production code.  It&#8217;s an exciting time.  You have a blank canvas on which you can paint wonderful, clean, elegant and powerful code.  At least that&#8217;s how it starts.  Over time entropy, corner cases and flaws in your initial design have a tendency to muddy the code base.  But for now there&#8217;s wonder, cleanliness, elegance and the potential for power.</p>
<p>So where do we start?  For me it begins with the layout and structure of the project.  If you&#8217;re not a coder, you may want to skip all this technical stuff &#8211; I won&#8217;t be offended!  If you are a code nerd like me, perhaps this will be interesting to you, or maybe you can see flaws in the way things are laid out, or would like to share how you set up a project.  I&#8217;d love to hear what you think!</p>
<h2>Stay on target!</h2>
<p>The Faerie codebase contains four targets (at least for now).  The first target is the actual Faerie project.  It builds the Faerie app.  This target contains all the resources we use &#8211; textures, sounds and music, string resources, nibs and the like.  However this target contains virtually no code, just main.mm.  Why is this?</p>
<p>The answer is unit testing.  All the game code goes into a static library with the exciting name of GameLib.  By putting the code into a static library, it&#8217;s possible to unit test all the game code.  And it&#8217;s unit testing that comprises the other two targets in my project.  One is a static library containing the the <a href="http://unittest-cpp.sourceforge.net/">UnitTest++</a> framework, and the last is an executable target that links the UnitTest++ framework, GameLib and all out test code.  I&#8217;ve described this set up <a href="http://acornheroes.com/2009/06/unit-testing-and-linking-static-libraries-with-xcode/">previously</a> if you&#8217;re interested in the details.  The advantage of setting up the code this way is that our actual app doesn&#8217;t need to include any testing code, yet we are able to test the exact library that is used in the game itself.  So the target structure looks like the image below.  Note the final step in the Faerie target, which runs the GameLibTests executable with every build &#8211; very handy!</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://acornheroes.com/wp-content/uploads/2011/01/Targets1.png" border="0" alt="Targets.png" width="240" height="196" /></p>
<p>There is one issue we need to address however.  Our nib files need to be in the Faerie target to ensure they&#8217;re included in the app itself.  And for testing purposes, all the view controller code is in the GameLib library.  This causes a problem because the linker doesn&#8217;t know that it should get the view controller code from GameLib, and so we get errors when the nibs are constructed at run time.  To fix this, it&#8217;s necessary to add the following to our &#8220;Other Linker Flags&#8221; setting for the Faerie target:</p>
<pre>-force_load "$(BUILT_PRODUCTS_DIR)/libGameLib.a"</pre>
<h2>What about the code?</h2>
<p>I find it very hard to create a new project from scratch, so I start with the OpenGL template and rip out the stuff I don&#8217;t want and reorganise the rest into a layout that suits me  Here&#8217;s the basic layout:</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://acornheroes.com/wp-content/uploads/2011/01/Code-layout.jpg" border="0" alt="Code layout.jpg" width="237" height="342" /></p>
<p>These groups in XCode are matched with an identical file layout on disk.  XCode doesn&#8217;t require this, but I find it too confusing if they differ.  As you can see, the <em>Faerie</em> folder contains basically no code.  It&#8217;s <em>GameLib</em> that has all the good stuff.  <em>Acorn</em> is all the standard code I carry from project to project &#8211; code to handle maths, loading textures, playing sounds and more &#8211; all that low level stuff.  <em>GameLogic</em> gets all the game specific code, and <em>Views</em> contains all the view controllers for my nib files.  Why the split between <em>GameLogic</em> and <em>Views</em>?  The main reason is that my view controller code is (by necessity) largely Objective-C, while the rest of my code is (as much as possible) pure C++, so it seems reasonable to keep them apart.</p>
<p>The <em>Resources</em> folder contains all the game assets, sorted by type and/or purpose.  By the time the game is done, there&#8217;ll be a lot of folders and a lot of files in here, so it&#8217;s good to keep them organised.</p>
<h2>A simple trick to add a little polish</h2>
<p>Here&#8217;s something truly simple that you can do in any app for a little extra style.  On startup, our app shows Default.png (or equivalent), and then once the main view is loaded it &#8216;cuts&#8217; straight to the main view.  Wouldn&#8217;t it be nicer if we could smooth out that transition?  It turns out it&#8217;s easy to do.  Simply add a UIImageView to your main window, sitting above everything else.  The UIImageView should fill the screen and contain Default.png.  So what happens is that the main app loads and seamlessly replaces the loading screen with an identical screen, but one that we have control over.</p>
<p>Then, it&#8217;s a simple case of fading our Default.png image out, revealing the main view underneath, using a bit of code like this in your update loop:</p>
<pre class="brush:cpp">float deltaTime = (float)gameClock-&gt;GetFrameDuration();
if (!loadingDefaultView.hidden)
{
    defaultViewFadeOut -= deltaTime / fadeDuration;

    if (defaultViewFadeOut &lt; 0.0f)
    {
        defaultViewFadeOut = 0.0f;
        loadingDefaultView.hidden = YES;
    }
    else
    {
        loadingDefaultView.alpha = defaultViewFadeOut;
    }
}</pre>
<p>*UPDATE*</p>
<p>Miguel, the mighty <a href="http://twitter.com/#!/mysterycoconut">@mysterycoconut</a> pointed out that this could also be done using standard animation calls in UIKit, so here&#8217;s an alternate version that gets executed in the viewDidAppear method&#8230;</p>
<pre class="brush:cpp">- (void)hideLoadingDefaultViewDidStop
{
    loadingDefaultView.hidden = YES;
}

- (void)viewDidAppear:(BOOL)animated
{
    if (!loadingDefaultView.hidden)
    {
        [UIView beginAnimations:@"Hide loading screen" context:nil];
        [UIView setAnimationDuration:fadeDuration];
        [UIView setAnimationDelegate:self];
        [UIView setAnimationDidStopSelector:@selector(hideLoadingDefaultViewDidStop)];
        loadingDefaultView.alpha = 0.0f;
        [UIView commitAnimations];
    }
}</pre>
<h2>So what&#8217;s next?</h2>
<p>I think after all this generic setup, it&#8217;s about time to add some actual game code, right?  Well the first thing I like to get going in a project like this is the flow from screen to screen, so that&#8217;s the next job on my list, adding the nibs and view controllers for the main menu, game, pause screen, credits and so on.  It won&#8217;t be pretty, but the aim is to get all the required buttons and such in place and working so that I can navigate around the app.  I find this to be a nice psychological stage to reach because, once done, I have a &#8216;complete&#8217; app, and all I have to do is fill in the gaps! <img src='http://acornheroes.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>After that, I need to make a key decision &#8211; OpenGL ES v1.1 or 2.0?  I think that 2.0 will win out, but I&#8217;ll delay that decision for another post!</p>
]]></content:encoded>
			<wfw:commentRss>http://acornheroes.com/2011/01/faeries-journey-part-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Setting up an Automated Build in an iOS environment &#8211; part 4</title>
		<link>http://acornheroes.com/2010/10/setting-up-an-automated-build-in-an-ios-environment-part-4/</link>
		<comments>http://acornheroes.com/2010/10/setting-up-an-automated-build-in-an-ios-environment-part-4/#comments</comments>
		<pubDate>Sun, 24 Oct 2010 19:54:11 +0000</pubDate>
		<dc:creator>George</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Setting up]]></category>
		<category><![CDATA[automated builds]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[hudson]]></category>
		<category><![CDATA[idevblogaday]]></category>

		<guid isPermaLink="false">http://acornheroes.com/?p=579</guid>
		<description><![CDATA[I thought it was about time to wrap up this series of articles by showing a fully working example of a build.  I&#8217;ve been using Hudson both for my private work and in my day job for the last couple of months now.  In that time it has save me a lot of time and [...]]]></description>
			<content:encoded><![CDATA[<p>I thought it was about time to wrap up this series of articles by showing a fully working example of a build.  I&#8217;ve been using Hudson both for my private work and in my day job for the last couple of months now.  In that time it has save me a lot of time and effort producing AdHoc builds (now a one click process), and also occasionally catches me when I fail to commit new files to SVN.  Setup is far simpler than any other CC tool I&#8217;ve used, so I&#8217;d encourage you to have a go!</p>
<h2>The story so far&#8230;</h2>
<p>For convenience, here&#8217;s an index for the whole series.</p>
<ul>
<li><a href="http://acornheroes.com/2010/08/setting-up-an-automated-build-in-an-ios-environment/">Part One</a>, Overview of what an automated build is, and why it&#8217;s so useful.</li>
<li><a href="http://acornheroes.com/2010/08/setting-up-an-automated-build-in-an-ios-environment-part-2/">Part Two</a>, setting up a basic build.</li>
<li><a href="http://acornheroes.com/2010/09/setting-up-an-automated-build-in-an-ios-environment-part-3/">Part Three</a>, automatically versioning and tagging your project.</li>
<li>Part Four, this article.  An example of a complete, working build.</li>
</ul>
<h2>Running all the time</h2>
<p>One thing you want to set up with your build is to have it running all the time in the background.  I found <a href="http://www.jrenard.info/blog/a-quick-but-working-startup-item-for-hudson-for-mac-os-x.html">this very helpful article</a> by Jérôme Renard that covers a useful technique.  Read the comments, they&#8217;re very handy too!  In an ideal world, Hudson would run happily under all user logins.  And in fact the comments in ﻿Jérôme&#8217;s article describe how this can be done.  Unfortunately, when it comes to iOS development, the code signing that is done on AdHoc and Distribution builds requires various certificates etc to be present in the user&#8217;s keychain.  Setting these up for all users is a pain that keeps on hurting, especially every time you need to update a profile &#8211; when you add a new device, for example.</p>
<p>My advice is to just set up Hudson to run under a single user account &#8211; either your own developer account, or a special &#8216;build machine&#8217; account if you have a dedicated computer available.</p>
<h2>Hudson-wide setup</h2>
<p>Hudson has a number of settings that can be applied to most or all projects.  By following the links to Manage Hudson | Configure System, you can set things such as non-standard paths for source control, default email setup and so on.  In my case, it&#8217;s a place to set up email defaults and twitter settings:</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://acornheroes.com/wp-content/uploads/2010/10/Screen-shot-2010-10-25-at-8.09.10-AM.png" border="0" alt="Screen shot 2010-10-25 at 8.09.10 AM.png" width="460" height="496" /></p>
<p>You&#8217;ll note that I&#8217;ve had to set up a non-standard port for email, and that I&#8217;ve added my email address as the system admin &#8211; if anything funny happens, Hudson will let me know through this address.  While it&#8217;s possible to set these on a per project basis, doing it here once just makes sense.</p>
<p>One more thing.  When I was talking about setting up a build from scratch, I&#8217;d typically use the &#8216;Build a free-style software project&#8217; option when setting up a new job.  Once you have a working build, the &#8216;Copy existing job&#8217; option becomes very useful, and is a huge time saver.  Typically a new build can be up and running in the five minutes it takes to change a few path variables.</p>
<h2>The build job itself</h2>
<p>OK, so let&#8217;s look at the setup for the actual build.  First of all, version control:</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://acornheroes.com/wp-content/uploads/2010/10/Screen-shot-2010-10-25-at-8.18.08-AM.png" border="0" alt="Screen shot 2010-10-25 at 8.18.08 AM.png" width="460" height="370" /></p>
<p>There&#8217;s nothing particularly unusual here.  I nominate the folder to check out the code into (&#8216;Acorn Money&#8217;).  This is not necessary, but feels a little tidier to me.  The main thing to note is that I don&#8217;t trust an update and build here &#8211; an automated build should always be completely clean.  While Hudson doesn&#8217;t offer this out of the box, it does have the &#8216;Revert&#8217; option to ensure no modified files are included in the build.  If anyone knows of a way to force Hudson to wipe and fetch the project clean from version control each time, let me know, I&#8217;d love to know how to do it.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://acornheroes.com/wp-content/uploads/2010/10/Screen-shot-2010-10-25-at-8.22.20-AM.png" border="0" alt="Screen shot 2010-10-25 at 8.22.20 AM.png" width="460" height="108" /></p>
<p>So, no build triggers here.  This is because I want to generate an AdHoc build on an &#8216;as required&#8217; basis.  Hudson is running on my MacBook, so the last thing I want is scheduled builds kicking off while I&#8217;m working.  The &#8216;Poll SCM&#8217; option is handy for Continuous Integration, while the &#8216;Build periodically&#8217; option is useful for nightly builds when the machine is otherwise idle.</p>
<p>Right, let&#8217;s look at the guts of it now, the shell scripts that do the actual building.  I use several scripts, separated into logical chunks.  They could all be run in a single script, but I prefer the separation here &#8211; each script has a singular purpose.  First up, we increment our build number and tag the code in SVN (see part three of this series):</p>
<pre class="brush: bash">﻿cd AcornMoney
agvtool -usesvn bump -all
agvtool -usesvn tag -baseurlfortag http://acornsvn.no-ip.org:808/acornheroes/svn/AcornMoney/tags
cd ..</pre>
<p>Next, the easy part is actually building the code, using an AdHoc configuration:</p>
<p>&nbsp;</p>
<pre class="brush: bash">﻿cd AcornMoney
xcodebuild -project AcornMoney.xcodeproj -target AcornMoney -configuration AdHoc
cd ..</pre>
<p>For setting up a Distribution or AdHoc configuration, I generally refer to this <a href="http://iphonedevelopertips.com/xcode/iphone-distribution-build-cheatsheet.html">cheat sheet</a>, which is great for helping me ensure I don&#8217;t miss anything.  Finally, the fun part.  Once a build is successful, wouldn&#8217;t it be nice to make it available to all your testers automatically?  With the help of <a href="https://www.dropbox.com/">DropBox.com</a>, it&#8217;s relatively easy.  Here&#8217;s the script:</p>
<pre class="brush: bash">﻿cd AcornMoney
mkdir Payload
cp -rp build/AdHoc-iphoneos/AcornMoney.app Payload/
zip -r AcornMoney.ipa iTunesArtwork Payload
rm -rf Payload

rm -rf ~/Desktop/Dropbox/Acorn\ Money\ Builds/Latest/*
cp AcornMoney.ipa ~/Desktop/Dropbox/Acorn\ Money\ Builds/Latest/
cp ~/Library/MobileDevice/Provisioning\ Profiles/AcornHeroesAdHoc.mobileprovision ~/Desktop/Dropbox/Acorn\ Money\ Builds/Latest/

if [ $BUILD_NUMBER -lt 10 ]
then
 TMP_BUILD_NAME=AcornMoney00$BUILD_NUMBER
elif [ $BUILD_NUMBER -lt 100 ]
then
 TMP_BUILD_NAME=AcornMoney0$BUILD_NUMBER
else
 TMP_BUILD_NAME=AcornMoney$BUILD_NUMBER
fi

mkdir ~/Desktop/Dropbox/Acorn\ Money\ Builds/$TMP_BUILD_NAME

cp AcornMoney.ipa ~/Desktop/Dropbox/Acorn\ Money\ Builds/$TMP_BUILD_NAME/
cp ~/Library/MobileDevice/Provisioning\ Profiles/AcornHeroesAdHoc.mobileprovision ~/Desktop/Dropbox/Acorn\ Money\ Builds/$TMP_BUILD_NAME/</pre>
<p>It may look like there&#8217;s a lot going on here, but most of it is just copying files around.  First of all we create an .ipa file (just a zip file with a different extension) which contains our build plus an &#8216;iTunesArtwork&#8217; png image &#8211; otherwise the App icon doesn&#8217;t show up in iTunes for an AdHoc build.  Next up, we remove any existing &#8216;Latest&#8217; build folder in our Dropbox folder.  Then we create a numbered folder for this build (e.g. AcornMoney08) and copy AcornMoney.ipa into this folder and the latest folder.  We also copy the provisioning profile from &#8216;~/Library/MobileDevice/Provisioning Profiles&#8217;, as it will be needed by our testers.</p>
<p>From here, Dropbox takes care of syncing this folder with anyone who is sharing it.  Our testers get a notification and a new build delivered to their own PC!  ﻿The post-build actions are fairly uninteresting, all I have set currently is email notification on a failed build.  Even this is slightly overkill, as for an AdHoc build I&#8217;m normally sitting at the machine watching the build anyway.</p>
<p>That&#8217;s it, a fully working build.  With Hudson, it&#8217;s possible to set one of these up with just an hour or so tinkering around.  Once you have a working build as an example, making a new build can be just a few minutes work.  Give it a go and let me know how you get on!</p>
<h2>Acorn Money update</h2>
<p>For those of you interested in <a href="http://acornheroes.com/2010/10/m-is-for-money-acorn-money/">Acorn Money</a>, our money tracking App, we&#8217;re still in review.  Sam made some significant improvements to the graph rendering code and we felt the best thing to do was to pull the submitted build and re-submit.  Unfortunately this sends us back to the end of the queue.  Still, we&#8217;re hopeful Acorn Money will be available in the next couple of weeks.</p>
<p><span style="font-family: 'Lucida Grande';"><em>This post is part of <a href="http://idevblogaday.com/">iDevBlogADay</a>, a group of indie iPhone development blogs featuring two new posts per day. You can keep up with iDevBlogADay through the <a href="http://idevblogaday.com/">web site</a>, <a href="http://feeds.feedburner.com/idevblogaday">RSS feed</a>, or <a href="http://twitter.com/#search?q=%23idevblogaday">Twitter</a>.</em></span></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://acornheroes.com/2010/10/setting-up-an-automated-build-in-an-ios-environment-part-4/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>State of the Acorn</title>
		<link>http://acornheroes.com/2010/08/state-of-the-acorn/</link>
		<comments>http://acornheroes.com/2010/08/state-of-the-acorn/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 01:05:40 +0000</pubDate>
		<dc:creator>George</dc:creator>
				<category><![CDATA[About Us]]></category>
		<category><![CDATA[Setting up]]></category>
		<category><![CDATA[Plans]]></category>
		<category><![CDATA[Sales]]></category>
		<category><![CDATA[State of the Acorn]]></category>

		<guid isPermaLink="false">http://acornheroes.com/?p=539</guid>
		<description><![CDATA[Note: No final article on Automated Builds this week &#8211; check in next week when I should have the final article prepared. It must be the time of year or something, but obviously a few developers have been evaluating their progress and plans for the future.  Not afraid of being a slave to fashion, it [...]]]></description>
			<content:encoded><![CDATA[<p><em>Note: No final article on <a href="http://acornheroes.com/2010/08/setting-up-an-automated-build-in-an-ios-environment/">Automated</a> <a href="http://acornheroes.com/2010/08/setting-up-an-automated-build-in-an-ios-environment-part-2/">Builds</a> this week &#8211; check in next week when I should have the final article prepared.</em></p>
<p>It must be the time of year or something, but obviously a few developers have been evaluating their progress and <a href="http://gamesfromwithin.com/growing-indie-style">plans</a> <a href="http://digitalsinigang.blogspot.com/2010/08/living-indie-life.html">for</a> <a href="http://pocketcyclone.com/2010/08/24/indie-devs-dirty-little-secret">the</a> <a href="http://retrodreamer.com/blog/2010/08/context-sales-and-the-indie-survival-barometer">future</a>.  Not afraid of being a slave to fashion, it seemded like a good time to have a look at the progress of Acorn Heroes over the past year.</p>
<p>In our case this navel gazing has been triggered by the fact that we&#8217;re due for our first payout from Apple on September 2nd.  Yep, you read that right, our first.  That may sound like a fairly mediocre result, and in some ways it is.  But there&#8217;s also a ray of hope there.  Read on&#8230;</p>
<h2>Some context</h2>
<p>Sam and I are both fully employed on other jobs.  We both have three kids, a wife and a mortgage.  The good side of this is that we&#8217;re relatively stable and don&#8217;t need to be successful on the App store just to survive.  The flip side is that anything we do is done in a spare hour here and there at the end of the day, family commitments allowing.</p>
<h2>Past</h2>
<p><a href="http://click.linksynergy.com/fs-bin/stat?id=tJcjmvCiUp8&amp;offerid=146261&amp;type=3&amp;subid=0&amp;tmpid=1826&amp;RD_PARM1=http%253A%252F%252Fitunes.apple.com%252Fus%252Fapp%252Fgoo%252Fid349865283%253Fmt%253D8%2526uo%253D4%2526partnerId%253D30">Goo!</a> (App store link) was released back in January, and is a fairly niche application for maths nerd who like playing with <a href="http://en.wikipedia.org/wiki/Cellular_automaton">cellular automata</a>, or possibly two year olds who like the pretty patterns (my youngest is a great example of this).  Despite that it&#8217;s been ticking over quietly averaging about 2-3 sales a day.  While it won&#8217;t make us rich, or let us quit our day jobs, it will cover the cost of our web hosting and dev license for another year.</p>
<p><a href="http://idevblogaday.com/">iDevBlogADay</a> has been (and continues to be) a wonderful experience &#8211; the requirement to write each week is a great motivator and has introduced me to an expanded network of great Indie developers.  If you haven&#8217;t subscribed to the iDevBlogADay feed yet, your missing a ton of great content.  Here&#8217;s a <a href="http://feeds.feedburner.com/idevblogaday">handy link</a>.</p>
<h2>Present</h2>
<p>Sam (the quiet one) is doing wonderful things with <em>Secret Project M. </em> It&#8217;s only secret because we haven&#8217;t talked about it yet &#8211; but we should be announcing <em>M</em> officially soon.  We&#8217;re in what can probably be described as an &#8216;early beta&#8217; stage &#8211; polishing features and UI and squashing bugs.</p>
<p><a href="http://acornheroes.com/2010/07/the-partial-monty/">Faerie</a> is a promising game idea that I&#8217;m looking to develop fully.  Basic gameplay is solid and we&#8217;re looking to build a solid, appealing game that will appeal to people of all ages.  <a href="http://click.linksynergy.com/fs-bin/stat?id=tJcjmvCiUp8&amp;offerid=146261&amp;type=3&amp;subid=0&amp;tmpid=1826&amp;RD_PARM1=http%253A%252F%252Fitunes.apple.com%252Fus%252Fapp%252Fsneezies%252Fid298155609%253Fmt%253D8%2526uo%253D4%2526partnerId%253D30" target="itunes_store">Sneezies</a> and <a href="http://click.linksynergy.com/fs-bin/stat?id=tJcjmvCiUp8&amp;offerid=146261&amp;type=3&amp;subid=0&amp;tmpid=1826&amp;RD_PARM1=http%253A%252F%252Fitunes.apple.com%252Fus%252Fapp%252Frobot-unicorn-attack%252Fid374791544%253Fmt%253D8%2526uo%253D4%2526partnerId%253D30" target="itunes_store">Robot Unicorn Attack</a> are great examples of the kind of experience we&#8217;re aiming to replicate.</p>
<p>In my day job, I&#8217;ve been part of a team working on data capture for high performance athletes &#8211; there&#8217;s a good story covering what&#8217;s been going on <a href="http://www.odt.co.nz/news/business/123313/city-firms-top-sports-app-game">here</a>.</p>
<h2>Future</h2>
<p>So, what does the future hold?  It&#8217;s busy, that&#8217;s for sure.  We&#8217;re aiming to finish <em>M</em> in the next month or two.  Having a second App on the store is a huge milestone for us, especially as <a href="http://click.linksynergy.com/fs-bin/stat?id=tJcjmvCiUp8&amp;offerid=146261&amp;type=3&amp;subid=0&amp;tmpid=1826&amp;RD_PARM1=http%253A%252F%252Fitunes.apple.com%252Fus%252Fapp%252Fgoo%252Fid349865283%253Fmt%253D8%2526uo%253D4%2526partnerId%253D30">Goo!</a> was a proof of concept as much as anything.  To say we&#8217;re excited is an understatement.</p>
<p>Faerie is on hold for a little while, because I&#8217;ve taken on full time contract work until the end of the year.  I can&#8217;t reveal many details at the moment, but we&#8217;ll be creating a game for iOS that is linked to a major TV channel.  I&#8217;m hopeful that I can cover our progress over the next three months or so.  We&#8217;re aiming for a November/December release.</p>
<p>So, interesting times ahead with lots going on.  Sam and I would like to take this chance to thank everyone who&#8217;s bought Goo!, followed our blog or provided advice on working in the magical, mercurial world of iOS development.  Your words of encouragement mean a lot to us!</p>
]]></content:encoded>
			<wfw:commentRss>http://acornheroes.com/2010/08/state-of-the-acorn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updated RSS feed</title>
		<link>http://acornheroes.com/2010/07/updated-rss-feed/</link>
		<comments>http://acornheroes.com/2010/07/updated-rss-feed/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 03:19:43 +0000</pubDate>
		<dc:creator>George</dc:creator>
				<category><![CDATA[About Us]]></category>
		<category><![CDATA[Setting up]]></category>

		<guid isPermaLink="false">http://acornheroes.com/?p=426</guid>
		<description><![CDATA[Hi everyone. Just a quick note to say that I&#8217;ve switched our RSS feed over to Feedburner. The new feed is http://feeds.feedburner.com/AcornHeroes. What does this mean for you? Actually, nothing. The old feed will still work exactly as it has, this is just a behind the scenes, making it easier for ourselves sort of update. [...]]]></description>
			<content:encoded><![CDATA[<p>Hi everyone.  </p>
<p>Just a quick note to say that I&#8217;ve switched our RSS feed over to Feedburner.  The new feed is <a href="http://feeds.feedburner.com/AcornHeroes">http://feeds.feedburner.com/AcornHeroes</a>.</p>
<p>What does this mean for you?  Actually, nothing.  The old feed will still work exactly as it has, this is just a behind the scenes, making it easier for ourselves sort of update.</p>
<p>So why am I saying this?  Well, if your a regular subscriber (thank you!) then if it&#8217;s not a hassle, moving over to the new feed will make our lives a little easier, and helps make this site just a little better.</p>
<p>If you&#8217;re not a subscriber, then I&#8217;d like to offer you this chance to subscribe.  We aim to offer useful, relevant information to independent game developers with a focus on iOS development in particular.</p>
<p>So, if you want to add or update our RSS feed, the new link is <a href="http://feeds.feedburner.com/AcornHeroes">http://feeds.feedburner.com/AcornHeroes</a> &#8211; but once again, nothing will break if you don&#8217;t, so feel free to do nothing at all <img src='http://acornheroes.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://acornheroes.com/2010/07/updated-rss-feed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Provisioning an iPhone explained simply and clearly</title>
		<link>http://acornheroes.com/2009/08/provisioning-an-iphone-explained-simply-and-clearly/</link>
		<comments>http://acornheroes.com/2009/08/provisioning-an-iphone-explained-simply-and-clearly/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 21:17:30 +0000</pubDate>
		<dc:creator>George</dc:creator>
				<category><![CDATA[Setting up]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Provisioning]]></category>

		<guid isPermaLink="false">http://acornheroes.com/?p=225</guid>
		<description><![CDATA[One of the weirdest / hardest things to do when starting iPhone development is setting up the connection between your development machine and your iPhone / iPod Touch (known as provisioning).  I&#8217;ve done it once, but it&#8217;s fair to say it happened in a blur and I was following instructions fairly blindly. Dan Grigsby over [...]]]></description>
			<content:encoded><![CDATA[<p>One of the weirdest / hardest things to do when starting iPhone development is setting up the connection between your development machine and your iPhone / iPod Touch (known as <em>provisioning</em>).  I&#8217;ve done it once, but it&#8217;s fair to say it happened in a blur and I was following instructions fairly blindly.</p>
<p>Dan Grigsby over at <a href="http://www.mobileorchard.com">Mobile Orchard</a> has put together a <a href="http://www.mobileorchard.com/iphone-development-provisioning/">screencast</a> that explains the process of provisioning an iPhone / iPod touch.  It&#8217;s well explained, simple to follow, and a very handy resource to have around.  It&#8217;s a free download for the next week, after that it&#8217;ll be US$5.  So if you&#8217;re a new developer, or if this is something that you&#8217;re a bit unsure of, grab the screencast while it&#8217;s free.</p>
]]></content:encoded>
			<wfw:commentRss>http://acornheroes.com/2009/08/provisioning-an-iphone-explained-simply-and-clearly/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Spreadsheet Geek &#8211; Google Analytics</title>
		<link>http://acornheroes.com/2009/05/spreadsheet-geek-google-analytics/</link>
		<comments>http://acornheroes.com/2009/05/spreadsheet-geek-google-analytics/#comments</comments>
		<pubDate>Fri, 29 May 2009 02:25:16 +0000</pubDate>
		<dc:creator>George</dc:creator>
				<category><![CDATA[Setting up]]></category>

		<guid isPermaLink="false">http://acornheroes.com/?p=143</guid>
		<description><![CDATA[My long suffering wife knows that I get addicted to things easily.  In the past there&#8217;s been Magic the Gathering, numerous computer games, war games of one sort or another, certain authors, watching my auctions on Trademe and all sorts of other things.  I&#8217;ve managed to avoid World of Warcrackft so far but it may only be a [...]]]></description>
			<content:encoded><![CDATA[<p>My long suffering wife knows that I get addicted to things easily.  In the past there&#8217;s been <a href="http://www.wizards.com/MAGIC/">Magic the Gathering</a>, <a href="http://www.classic-pc-games.com/amiga/games/warlords.html">numerous</a> <a href="http://galciv2.com/">computer</a> <a href="http://demigodthegame.com/">games</a>, war games of <a href="http://privateerpress.com/">one</a> sort or <a href="http://www.flamesofwar.com/">another</a>, <a href="http://en.wikipedia.org/wiki/Michael_Moorcock">certain</a> <a href="http://www.peterfhamilton.co.uk/">authors</a>, watching my auctions on <a href="http://www.trademe.co.nz/">Trademe</a> and all sorts of other things.  I&#8217;ve managed to avoid <a href="http://www.youtube.com/watch?v=ykb2A4FtyHQ">World of Warcra</a><span style="text-decoration: line-through;"><a href="http://www.youtube.com/watch?v=ykb2A4FtyHQ">ck</a></span><a href="http://www.youtube.com/watch?v=ykb2A4FtyHQ">f</a>t so far but it may only be a matter of time.</p>
<p>So it&#8217;s no surprise that there&#8217;s a new contender for my time.  Although what it is may seem a bit odd.  I was recently reading <a href="http://www.positech.co.uk/">Cliffski&#8217;s blog</a> and came across a <a href="http://www.positech.co.uk/content/analytics/analytics.html">piece he wrote</a> about <a href="http://www.google.com/analytics/">Google Analytics</a>. Finding out what was possible was a pleasant revelation.</p>
<p>In short order I&#8217;d signed up on the <a href="http://www.google.com/analytics/">main page</a>, dropped the relevant script onto our site.  <em>A tip for WordPress users, log in as admin, add a new Text Widget and put the script in there &#8211; simple</em>.  Then came the hard part &#8211; waiting for up to a day to know that it&#8217;s all working properly.</p>
<p>The depth of information available is astounding.  The fact that we actually had people visit our site was comforting!  But beyond that we can see how visitors came to our site, roughly where they came from, what pages on the site they spend time reading and a whole heap more.  I&#8217;m hooked.  There&#8217;s no need to check the data several times a day, but it obviously tickles the nerd centre of my brain in a good way, so I check in regularly.  </p>
<p>After a week there&#8217;s not enough evidence to draw any real conclusions, but here&#8217;s a few interesting snippets:</p>
<ul>
<li>We&#8217;ve had 48 unique visitors.  When we hit 100 I might make a cake to celebrate.</li>
<li>Those people typically view a couple of pages, of which my <a href="http://acornheroes.com/?p=44">font rendering post</a> is a clear favourite.</li>
<li>Hello to the USA, Australia, UK, India, Hungary, Poland, Latvia, Singapore and South Korea!</li>
<li>There&#8217;s a reasonably even split between people arriving directly, finding us via a search engine or being referred from another site.</li>
</ul>
<p>The main thing that has stood out for me is that the technical posts are the most popular, so I will endeavour to get more out as soon as I can.  Current candidates are articles about texture atlases and  particle systems.</p>
<p>On that note, I can say that the particle system I&#8217;m working on is coming along slowly but well, stay tuned I&#8217;ll post more details,screen shots and code when there&#8217;s enough to be of interest.</p>
]]></content:encoded>
			<wfw:commentRss>http://acornheroes.com/2009/05/spreadsheet-geek-google-analytics/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>It&#8217;s taking how long?</title>
		<link>http://acornheroes.com/2009/05/its-taking-how-long/</link>
		<comments>http://acornheroes.com/2009/05/its-taking-how-long/#comments</comments>
		<pubDate>Thu, 14 May 2009 21:12:26 +0000</pubDate>
		<dc:creator>George</dc:creator>
				<category><![CDATA[Setting up]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Approval]]></category>
		<category><![CDATA[Developer Program]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://acornheroes.com/?p=124</guid>
		<description><![CDATA[As we&#8217;ve been setting up this company, a lot of thought has gone into how and when we need to do things so that we can maximise the (spare) time we have to devote to it.  We wanted to enrol in the developer program as a company, rather than as individuals, so we set up [...]]]></description>
			<content:encoded><![CDATA[<p>As we&#8217;ve been setting up this company, a lot of thought has gone into how and when we need to do things so that we can maximise the (spare) time we have to devote to it.  We wanted to enrol in the <a href="http://developer.apple.com/iPhone/program/">developer program</a> as a company, rather than as individuals, so <a href="http://acornheroes.com/?p=122">we set up the company</a> first.  Then came the part we were a bit worried about.  Searching the web, you find <a href="http://www.iphonedevsdk.com/forum/business-legal-app-store/10090-why-so-long-enroll-into-iphone-developer-program-2.html">plenty</a> of <a href="http://www.30daygame.com/2009/05/03/getting-approval/">stories</a> of one or two month waiting times to become enrolled on the program.</p>
<p>Here&#8217;s how it went down for us:</p>
<ul>
<li>Create company on the 9th of May.</li>
<li>Submit for application for developer program on the 10th.</li>
<li>Email from Apple asking for our Certificate of Incorporation on the 12th.</li>
<li>Finally get a chance to fax off the Certificate on the morning of the 14th.</li>
<li>Get a phone call / email from Apple about noon.</li>
<li>Purchase license about 5 minutes later.</li>
<li>Prepare to wait &#8216;up to 48 hours&#8217; for activation code.</li>
<li>It turns up 4 hours later.</li>
<li>Go to the Apple&#8217;s iPhone Dev Center <strong><em>and remember to log out and log back in again </em><span style="font-weight: normal;">to see the update.</span></strong></li>
<li>Done, we have the keys to the Magic Kingdom.</li>
</ul>
<p>That&#8217;s right, the bulk of the process happened in a single day.  Start to finish was only five days, two of which were a weekend, and one of which was lost due to my inability to get close enough to a fax machine.  Thank you Apple, you&#8217;ve made my week, possibly my month.</p>
<p>Now admitedly we haven&#8217;t sorted out all the financial details yet, but we don&#8217;t have an application to sell yet either, so I&#8217;m not too worried.  What we do have is the ability to deploy applications to an iPhone or iPod Touch now, and the first time you do that is a little magical <img src='http://acornheroes.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Sam and I also had a design session last night where we started seriously planning our first two applications.  More on that later.</p>
]]></content:encoded>
			<wfw:commentRss>http://acornheroes.com/2009/05/its-taking-how-long/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Becoming a liability (but just a limited one)</title>
		<link>http://acornheroes.com/2009/05/becoming-a-liability-but-just-a-limited-one/</link>
		<comments>http://acornheroes.com/2009/05/becoming-a-liability-but-just-a-limited-one/#comments</comments>
		<pubDate>Wed, 13 May 2009 21:38:18 +0000</pubDate>
		<dc:creator>George</dc:creator>
				<category><![CDATA[Setting up]]></category>

		<guid isPermaLink="false">http://acornheroes.com/?p=122</guid>
		<description><![CDATA[Sam and I find ourselves relentlessly marching towards becoming grown ups one day.  Some would say that having children, wives and mortgages would do the trick, but it hasn&#8217;t yet.  But the latest step has been for us to create a company for our iPhone work.  So Acorn Heroes has now become Acorn Heroes Ltd, [...]]]></description>
			<content:encoded><![CDATA[<p>Sam and I find ourselves relentlessly marching towards becoming grown ups one day.  Some would say that having children, wives and mortgages would do the trick, but it hasn&#8217;t yet.  But the latest step has been for us to create a company for our iPhone work.  So Acorn Heroes has now become Acorn Heroes Ltd, a limited liability company.  We&#8217;re still getting to grips with what this means, what we pay for and what the company pays for, but to date it&#8217;s been a remarkably easy process.</p>
<p>Setting up a company in New Zealand is a simple process.  There&#8217;s a useful (though not particularly pretty) <a href="http://www.companies.govt.nz/cms">web site</a> that guides you through the whole process.  The site guides you through a bunch of steps; reserving the company name, nominating contacts / directors, allocating initial share parcels, getting a tax number and of course paying your NZ$160 <a href="http://www.netlingo.com/word/bozo-filter.php">bozo filter</a>.  At the end of it you get a <a href="http://en.wikipedia.org/wiki/Certificate_of_incorporation">Certificate of Incorporation</a> that you can print out and use to bolster your ego and impress your friends.  It was all done in about half an hour, and the only thing you need is your tax numbers.</p>
<p>We wanted to get the company up and running before we joined <a href="https://developer.apple.com/iphone/program/">Apple&#8217;s Developer Program</a>, as we&#8217;ve heard that starting with a personal license and migrating it to a company one is a real pain.  Once we had a company registered, the next step was to see the nice people at <a href="http://www.kiwibank.co.nz/business-banking/contact-us/business-banking-specialists.asp">KiwiBank</a> to sort out a bank account.  Once again, it couldn&#8217;t have been easier, and now we have a business account that can accept all the millions we plan to make &#8211; or at least enough to help cover getting a new stove.</p>
<p>Our enrolment in the Developer Program is underway, a process which is apparently taking up to six weeks at the moment.  No doubt there&#8217;s a blog post to come from that process too!</p>
]]></content:encoded>
			<wfw:commentRss>http://acornheroes.com/2009/05/becoming-a-liability-but-just-a-limited-one/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

