Alchemist
So here we are in year 2010 and it’s the fifth day since the launch of our first iPhone and iPod game called “Alchemist” ( official website / iTunes link ). During the two first days of it’s existence “Alchemist” was promoted as a free app and it managed to gain #4 in Spain, #5 in Argentina and #6 position in Italy in Family games category and bring in very good user reviews. We are very pleased with it’s performance.
If you own an iPhone or iPod touch, be sure to check it out!

The game was built with Adobe Flash CS5 and Flex Builder 4 from scratch to finish, here’s a little how and why we did it.
Prologue
We have to admit it – we are no mobile developers. Before doing “Alchemist” our team had little to none experience of building a mobile application. Most of you reading this will find yourself in more or less the same situation. Why? Because mobile as we web developers know it is slow, difficult, closed, incapable and highly segmented platform and thus there are very few of those who do try to enter mobile development world as indie developers.
Most of the mobile platforms like Nokia’s S60, Windows Mobile and iPhone offer SDKs and tools for developers, but the technology and programming language know-how required to use them are usually very different. If you were like us, looking for true “build once, use everywhere” solution with minimum investment you would be dissapointed to know that one did not exist… Until now.
What Has Changed?
First up, Adobe announced that Flash CS5 will ship sometime in 2010 with something called “Packager for iPhone” and you will be able to compile native iPhone applications with technology and tools that you know, love and use everyday. Flash CS5 Creative Suite will be optimized for creating mobile content out of the box and the workflow between design / coding / deployment will be much more integrated than before allowing you to cut down dramatically on total production time.
Second technology that popped up on our radar was ELIPS Studio 3 by Open Plug. When final version is released in 2010 (currently in beta) it will be able to generate source code for native mobile applications from Actionscript 3 and Flex 3 projects. It means that with a single click you will be able to convert your Actionscript 3 project to source code for Windows Mobile, iPhone, Symbian S60 and Android, and later build it for that target platform.
Third technology that we found out about recently is Haxe’s cpp target. When used with two additional libraries “nme” and “neash” it allows to compile Haxe code for iPhone directly from XCode! Geeky but very cool nevertheless.
And finally Adobe’s Open Screen Project recently got a boost of major industry players and newcomers like Google, which means that first new devices with Flash Player 10.1 will hit the market in Q1 2010.
We were lucky enough to be able to evaluate all aforementioned products and technologies before their public releases and as a result of that we decided to start up a mobile development branch withing our company and first to build one simple game for demonstration purposes and try our luck in a completely new but very promising market.
iPhone Development with AS3
We decided to launch our first application for iPhone only and later extend it to other platforms when technology is mature enough. We think that iPhone as a platform is the best for beginners, here’s 4 “why”:
- It has it’s own smart and working distribution model with in-device content store.
- iPhone / iPod market has highly capable devices (big and nice screen, multi touch, wifi, bluetooth, gps) with low segmentation.
- Developer earns 70% from each sale.
- Lots of devices already on the market and growing each day.
Making Choices
For us the most important thing was the ability to easily port our existing code to another platform sometime in the future and to be able to maintain simplicity in the production pipeline. Also we wanted to be sure that we will be able to get a return on our initial investment in a reasonable amount of time therefore we decided to write our game libraries in Actionscript 3. Even if we don’t get the possibility to compile a native application for all other platforms, we will be able to deploy for Flash Player 10.1 for mobile devices inside the browser.
We know that there’s no ideal technology for every situation, therefore we have set up our company’s toolset like this:
- Unity 3D for games that need 3D
- Adobe Flash CS5 for 2D, isometric games and all applications with custom UI or rich media
- Elips Studio 3 for cross-platform business applications
- XCode for everything in-between
The current 3D solutions (Papervision, Sandy, Alternativa or even native 3D) in Flash Player are not optimized for iPhone development and are unusable. Also Flash Player on iPhone is using it’s own drawing API therefore drawing operations are extremely expensive and most of the UI and 3D libraries here are more or less useless. We see a huge opportunity for new products and libraries, open source and commercial alike to fill in this gap (hint hint).
Unity3D is great. It’s actually the best platform if you want to develop 3D for iPhone hands down. It also offers cross-platform and web compilation and you can write your entire game code in Javascript so you can make the transition from Actionscript 3 really easy, especially if you come from a web background.
We have left XCode development as a fallback option, but we are confident that at this point Flash, Elips and Unity3D can cover 95% of our development needs.
Working with Adobe Flash CS5
Adobe Flash CS5 will provide a lot of enhancements on the UI side that you will like and that will make your life much easier, however it will not impress you if you consider yourself a coder like we do. Although code completion got some improvements, it still sucks. Intentionally or not, Adobe will provide a solution to this problem allowing to write code and compile your Flash project from within Flash Builder 4. We have tested it and it works great!
The coolest features for us were:
- You can now use embedded assets from Flash Builder inside Flash CS5 and you don’t have to mess with the library anymore
- One click preview your app inside a iPhone (AIR) simulator from within Flash CS5 and Flash Builder
- No messing with XCode, or re-compiling – Flash CS5 will compile a native *.ipa iPhone installer
- Live debugging on device
We cannot compare our experience with same level mobile development on XCode, but the whole process on Flash CS5 felt like a breeze to us from start to finish. The suite actually allows anyone with Photoshop and basic Flash coding knowledge to build a fully functional iPhone app. Of course you can ‘go ahead and learn Obj-C’ anytime, but we think Adobe’s new toolkit focuses more on creative side of development, fast prototyping and giving artist the tools for creating a great user experience. One-man-army type of development will now be much easier and we will see a lot of new inspired apps very soon.
As for our game – “Alchemist” looks and performs great, just like any other native iPhone app. Adobe has done a terrific job on maxing out the performance without developer having to poke around the code too much. Once you get the bitmap caching sorted out, that’s pretty much it.
Epilogue
With Flash CS5 don’t expect to:
- Make an app with heavy frame animations
- Use Papervision3D in an app
- Port a web game without optimizing it for iPhone
Things to watch out for:
- No mobile UI element libraries
- No social gaming support (plus+, openfeint)
- No in-app purchases support
Most of the libraries for iPhone are available in C# and it will take some time to port them to AS3, we suggest to start thinking about what you could do to fill out these empty gaps maybe it will turn out to be a great business opportunity for you.
For now, thanks for reading, have a great new 2010 and please watch us at http://www.inruntime.com / follow on twitter @inruntime