One of the objectives of Shuriken Chicken, was to use its development to nut out my tools and workflow. You need tools to create software, especially games when there are so many different types of assets coming together. Some are essential, and some save you a lot of time. These were the tools used in the development of Shuriken Chicken, and most, if not all will be used in future projects.
There are very few choices when it comes to developing for iOS, Xcode is pretty much *the* IDE you have to use, and what I am using. There are a few other alternatives, but you will still need to fire up Xcode at one stage or another.
Having used Microsoft Visual Studio my whole career, I initially toyed with the idea of just developing in Windows and switching over to Mac whenever I need to do on device testing and deployment. This was very tempting but I talked myself out of it as I would have needed to buy myself a Windows machine, as well as a copy of Visual Studio. I decided the money would have been better spent elsewhere, and since I am now developing primarily for iOS, it was worth taking the time to get familiar with XCode. I still changed as many of the XCode hotkeys as I could to match those of Visual Studio, typing some code, then hitting F5 is so ingrained in my muscle memory that it would have been futile to fight it.
I do find myself missing Visual Studio a lot whenever I jump into the XCode debugger though, it just pales in comparison. Simple things like checking the value of globals is so convoluted, and even having a custom watch list isn’t possible.
Instruments however, is very cool. It has been invaluable to me in finding memory leaks and profiling memory usage.
Version control is very important, even if you are a solo programmer. It gives you a history of every single change you’ve made before (provided you commit regularly) and can be invaluable for backtracking to see where you may have introduced bugs.
I also find it an advantage psychologically. Having it as part of my workflow gives a nice feeling when I finish off a task. Finish a task, and you know it’s well and truly done when you check it in.
TestFlight is a system used to distribute your app binaries to testers. It is insanely helpful, and your testers do not need any technical knowledge to use. You basically invite testers to be part of your project, when they accept you are given their device ID. You then build a binary with their device ID in a distribution provisioning profile and upload your build. Then the testers will receive a link to download your app binary, they click on it, your app installs on their phone and that's it. It also includes an SDK which allows you to track how your app is being used by the testers. Best of all, it is free to use!
For task management, I use Todoist. It is simple and has a very minimalist design. Being web based I am able to access my task list from my iPhone anywhere, which is good when you need to add a task when you aren’t at your computer.
Shuriken Chicken was a 2D game, which meant sprite sheets. Zwoptex was awesome, I literally just dropped all my sprites in a few clicks it spat out a sprite sheet as well as a coordinates file. At only $15 it was worth every cent and more.
This is a simple tool used to design particles for cocos2d. It basically lets you tweak and preview all the particle system parameters available in cocos2d, and spits out a file which can be loaded and used by cocos2d. This makes designer particle effects a trillion times easier than tweaking the code by hand.
Audacity is a simple, open source wave editor. All of the audio in Shuriken Chicken was purchased from stock websites, so I didn't really need a hardcore wave editor. Audacity was very useful for trimming silence off the start and end of stock audio files and as well as downmixing certain sound effects and resampling all my audio to appropriate rates.
I used Lightroom for asset management, which I guess might be a little controversial. The main reason I used Lightroom was because the graphics for Shuriken Chicken were photographs, and Lightroom was part of my photography workflow so it made sense for it to be incorporated into my game dev workflow as well.
For future projects where graphics don’t come from photos I see myself using something much lighter weight like Adobe Bridge for asset management.
So that about covers the tools that that I am currently using, I’m sure there are a lot of alternatives to the above tools I’ve mentioned, and they are probably all very good as well.