30
Jul
image
Last Updated: July 31st, 2012

One of the great things about Android's ecosystem is the number of indie developers who are able to enter the market successfully, providing a great product and inspiring would-be developers to join in. For many though, Android development in general is a mysterious topic. How an app or game goes from an idea to an entry in the Play Store is unknown, but (thankfully) not unknowable.

Of course, considering how major development studios bring apps to life doesn't require too much thought – major companies like EA, Disney, or Rockstar have no problem hiring designers and developers to crank out and maintain polished apps. The real wonder enters when considering how independent developers on limited budgets with small, intimate teams can bring to light games like Great Little War Game and World of Goo.

illus1

To get a handle on just what independent developers are up to – how they come up with ideas, what their work process is like, what they think of developing for Android – I got in touch with several indie developers responsible for games both big and small. Here's a full list of developers who graciously contributed:

Using their candid input as guidance, we'll take a look at the full story of independent Android development.

The Beginning

From free online tutorials to meticulous guidebooks, there are a ton of ways to get started in Android development.

Some come to Android only after having experienced development for other platforms, and some start fresh with Android as their first platform.

Naturally, each developer has a unique reason for coming to the platform, so I asked the panel of indie developers how and why they got started.

"I began developing apps for the Android because I like the idea of multiple app stores.  For an indie developer, having a chance at getting featured by more than one app store can mean the difference between earning something and earning practically nothing.  With iOS, if Apple doesn't feature you, then your game will make very little money.  I like the idea of having a 2nd, 3rd and 4th chance." – Naomi Kokubo, LavaMind

"I've been developing games for more than a dozen years. In the past, I used to develop games for GameBoy, GameBoy Advance and PlayStation …  As for Android, it was just the next logical step to me after iPhone. I'm not particularly exclusive in what I develop for; I'm actually rather notorious in game development circles for being the guy that develops for everything." – Mike Kasprzak, Sykhronics

illus2

Experienced developers like Mike Kasprzak, Paul Johnson, and the team at Red Wasp Design seem to have come to Android as part of a natural progression. After moving in to the mobile space with platforms like iOS and witnessing Android's growth, developing for the ever-expanding platform seemed to be an obvious choice.

Others, like Naomi Kokubo from LavaMind, have their own reasons for choosing Android – be it the chance for widespread exposure to the teeming mass of potential customers to the "open source feel" of Android development (cited by Gil, who is responsible for 2D Boy's WoG Android port).

Whether coming from other platforms or starting with Android because of its , there's one thing all the developers we spoke with agreed on – Android is a unique platform.

What Makes Android Different?

To some this is a rather obvious question. While putting together the narrative of independent Android development, I wanted to get a handle on what actual developers thought made Android stand out from other platforms – for better or worse.

While it should be obvious that one mobile platform is different from others, it's worth looking at what differences are perceptible – and important – to real developers who have experience with both the platform and the associated market.

"The Android platform is so much faster (hours!) to update a version too than say iOS - which means we can iterate when we want.  Apple by contrast takes 7 days.  But another example where it is the other way is true - Apple allow you to give review codes of games to bloggers, journalists etc, but there is no equivalent system for Android.  However Google are iterating fast, so it will be interested to see how it develops." – Tomas Rawlings, Red Wasp Design

"The development environment for Android is truly appalling. We recently upgraded our pc's and I'd not noticed how many disparate widgets and gizmos needed to be tracked down and installed, and in the right order, to get even a basic "hello world" program running. The fact that we use mixed C++ and Java makes this even more fun … I know all the bits and pieces are provided free by various firms and people, but the truth is that as professional developers we don't need free, we need good and reliable." – Paul Johnson, Rubicon Development

illus3

One of the things that came up time and again in our discussions with developers was the sheer speed at which the Google Play Store allows iteration of apps and their updates. With an audience that expects functionality and quality, it's important to iterate quickly.

Consoles often took many-months of waiting for approvals, and your publisher often dictated when it would come out. Apple lets a lot of content though after about a week, while Google publishes to the store within hours. I'm a big fan of the freedom Google provides here. I was able to push a compatibility update out the same day my Nexus 7 arrived. – Mike Kasprzak, Sykhronics

Another thing that makes Android development unique is that when it comes to the development environment, some assembly is required.

Gil Carmel explained "the Android development environment definitely has more of an "open source" feel to it, for better or worse. Some of the basic every day tools need to be cobbled together to be made to work, which is annoying."

This echoes Paul Johnson's sentiment that having to jigsaw various tools together is a hassle, and that – for many developers – reliability and the ability to easily find and assemble a practical toolkit is more important than the fact that all necessary tools can be found somewhere for free.

The Pros and Cons of Going Indie

As with anything else, being an independent developer for Android has its ups and downs. Some of these are inherent in the Android environment, while other issues arise from external factors that effect the very nature of the market (remember Google's 10bn App Promo?). Still others do not "arise" at all, they are simply facts of the Android world with which developers looking to make a successful entry are forced to deal.

Some of the "pros" account for the very reason some developers entered the Android ecosystem, while some of the "cons" are also reasons that developers like Paul Johnson find the development environment for Android to be "truly appalling."

"The brain-achingly large number of potential customers … Low barrier to entry … [And] a warm audience. Feedback from our own customers has usually been very positive and helpful, and if you treat them right you'll get a lot out of it. Suggestions to tweak the game, feature requests, bug reports, etc., all help you in the long run. You can't reach people that easily making console games." – Paul Johnson, Rubicon Development

"The biggest drawback of developing for the Android is supporting a huge number of devices, each with their own specs and idiosyncrasies … I wish Google had placed restrictions on hardware manufactures to help standardize the devices. But then again, that goes against the open policies Google champions, so I guess it was impossible." – Naomi Kokubo, LavaMind

illus4

One of the biggest cons associated with developing for Android, and one which came up over and over when the question was broached with our contributing panel, was the existence of scads of devices, each – in the words of Naomi Kokubo – "with their own specs and idiosyncrasies." It's easy to see why this would be an issue – when customers buy an app or game, they expect it to work. Lack of compatibility will translate to poor reviews and lost sales. While developers don't theoretically need to test on every physical device that exists, it does help to sample from various manufacturers to maximize compatibility.

There are, of course, ways to eliminate much of this hassle without needing to break the bank buying test devices, using preventative coding measures, rather than reacting to bugs that manifest themselves on specific devices. Gil Carmel:

Supporting and testing on myriad different devices can be a challenge for smaller studios. That said, good programming and careful study of the documentation and community forums gets you 95% of the way towards having your game work on every phone. Just feeling your way towards code that happens to work on the first device you test on – that's how you get in trouble.

Another con, discussed by Mike Kasprzak, is visibility, not only within Android, but within Android as a part of a larger, ever-evolving mobile market.

The main problem today is visibility, but that said it's not really the fault of Google, but due to the shear quantity of apps … So to make money, you need to stand out from the crowd. This is main battle we developers are having with each other these days. The big guys have more money to throw at this, plus their own names often carry weight. There's no easy answer to this.

The benefit of indie is we can react faster.

On the other hand, devs cited a lot of plusses to developing for Android. One of the major plusses mentioned was the huge audience and enormous pool of potential buyers within the Android community. With Android holding a large market share around the world, there are tons of people looking for new games.

Paul Johnson of Rubicon also noted that the Play Store has a "low barrier to entry," meaning games do not have to be revolutionary to succeed – they just need to be well-made:

… you can't sell crap, and in fact your game will need a high level of polish to even stand a chance, but you don't need to rewrite call of duty either.

Concept Development and Creative Challenges

One of the most intimidating aspects of developing a new game (besides the months of coding) is coming up with a compelling concept, and carrying a creative vision through the entire project to create a cohesive final product.

Even after coming up with a stellar concept, individual developers may be lost in the design process. A game's visual appeal is one of its most important aspects, so just how do indie developers execute the visual and creative aspects of a project? And for that matter, how are initial concepts developed?

"As a person that does anything, ideas are all around you. The hard part is deciding what ideas have enough merit to pursue, and the harder part is making them a reality." – Mike Kasprzak, Sykhronics

"For us this was easy. I've always wanted to make exactly this game … That's it really. There never was a design document or anything so formal, I carried it around in my head for years." – Paul Johnson, Rubicon Development

illus5

For some, it would seem that the game concept is a no-brainer. In some cases (as with Paul from Rubicon), developers simply have an idea just waiting to take its place as a game for Android. In other cases, a bit of thinking and "digging" has to be done before fleshing out an idea. Kasprzak of Sykhronics explained that "…for the most part, it's starting with a question, and spending time digging for an answer."

As for creating complete, inspired, visually compelling graphical assets, it seems that developers take different approaches depending on their own skill sets. Kokubo (of LavaMind) took a strong DIY stance, avoiding hiring a team including animators, designers, etc. for the sake of expense and efficiency. She explains

I chose to do everything myself.  First, as an indie developer, I couldn't afford to hire a big team, including an animator, artist, game designer, sound designer, composer, engineer, etc.  So I wore all those hats.  The development also went faster because I didn't need to spend time communicating or coordinating with a team.  Fortunately, I'm a good artist and I understand game design.

Those not gifted with the ability to bring creative visions to life through design often opt to bring on friends or additional team members to get the work done, finding a way to get skilled artists into the process even with limited funding. The team at Rubicon development, having 50 combined years of developing experience, took this route.

For us it was art and level design - the three of us in the office are all programmers, and I'm sure you've all seen coder art before!

Luckily we have a big old boy network and we knew one really good guy in each category. We approached them to see if they would work for royalties, as we didn't have much funding at the time, and thankfully they both jumped at it.

Now that those royalties are coming in and everyone is happy with how things went, we have a fully rounded and highly skilled team ready to take on the next challenges.

Naomi Kokubo offers more advice on this subject to budding developers: "if you have any talent for visual design and game design, do that too.  If you lack the talent, find a partner who can fill those roles."

I think it would be fair to say that in many cases, as independent studios grow, so do their teams. When just starting out, Kokubo's advice of doing as much as possible yourself makes great sense – it saves money, can be more efficient, and will teach ins and outs of the various processes new developers will need to understand. As projects grow, however, having more team members makes sense – specializing and forming a cohesive, cooperative workflow can be critical in making an even better product.

Blood, Sweat, and Tears – Building the Game

Workflow. It's an important concept when completing a project. A well-defined, efficient workflow can save time, provide working structure, and allow a project to run smoothly and without issue.

To get an idea of what works (or doesn't work) when developing for Android, I asked several developers what their own workflow looked like.

"We work together in the same place so we just go into our usual 'work mode' and just go at the project. It took us 12 months to make the game - that was for an iOS release first then PC then Android, so part of the initial period was making all the assets compatible with the different platforms. So far the project has taken 18 months" – Tomas Rawlings, Red Wasp Design

"I take a step-back with my development. I do all my work in a PC version of my game, writing things in a generic way, and occasionally testing on specific devices. I've gotten really good at porting games to different devices. Some of the initial work probably took a couple months to get right, but when I get a new device to target I can usually push it out in 1-4 days." – Mike Kasprzak, Sykhronics

illus6

In general, it would seem that not only do workflows vary, but even the time that it takes to create a complete game for Android is dependent on individual abilities and work styles. Developers we spoke with indicated time spans from a couple of months all the way up to two years.

As for the day-to-day workflow, Tomas Rawlings suggested that a typical day of working on a game consists solely of entering "work mode" and getting things done one after the other. Paul Johnson on the other hand explained

We don't keep tabs on people by hourly or even daily workload, trusting them to just get on with their next task in a timely manner. Producers in AAA studios would have a fit at the way we run things, but it works for us.

In terms of code, I'm the lead gameplay programmer and the other two in-office guys are platform specialists, one each for Android and iOS. However they spent lots of time on the main game code too, so the lines are all a bit blurry.

The creatives work from home but have been kept busy the entire time - there's a TON of content in both games, and Great BIG War Game rivals AAA titles in terms of gameplay hours provided. I finished the Starcraft 2 campaign quicker than ours.

It would seem that development workflow for independent Android studios is adaptable, showing marked differences depending on the size of the team, the scope of the project, and of course what needs to be done. While some take a relaxed "just get it done" approach, others rely on "work mode," or focus on specific objectives each day.

Much of this also seems to hinge on a developer's experience – Mike Kasprzak, who has more than a decade of experience developing for various platforms, has found ways to utilize tools (like development go-between Marmalade) that speed up the process, allowing him to develop games primarily for PC and then quickly port them to various device targets, sometimes "in 1-4 days."

For many developers, even after an initial iteration is complete, there are still issues to fix, bugs to resolve, and other kinks to work out. Naomi Kokubo explained that she typically focuses on the basic product, gameplay dynamics, and essential functionality first. With her first game, Beetle Bounce, Naomi built the initial product in six months.

After 6 months, I thought I was done with Beetle Bounce, but I wasn't.  It took another 3 months of iteration before I polished and perfected everything, including integrating with Facebook, In-App Purchases, and a host of other features.

What Does It Take to Execute a Successful Launch?

In a market flooded with new (and perhaps worthy) entries, how does an indie developer stand out? What exactly is needed for a successful launch and – more importantly – one that will lead to sustained sales and growth?

There's no doubt that a successful launch is critical to the life cycle of any app or game. Since, outside of those releasing products to the Play Store, little is really known about how the top games and apps get where they are, I asked our developer panel what launch looks like, and what can make or break your game's debut.

"We have it easy on that front – 2D Boy's blog is picked up by a whole lot of the gaming press, so our Android announcement was plastered all over the internet the day after we made it. In addition there were lots of fans already waiting for (and asking about) an Android version. Last but not least, obviously being featured by Google several times along the way was key." – Gil Carmel, 2D Boy

"Today … I'd say this is the #1 question on developers minds. If it's not, you're doing it wrong. I think the best way to know how to launch a game is to have launched a game and failed. Launching on new platforms is a chance to try again. You have a lot fewer choices today, but each and every launch will teach you something you can use to improve the next one." – Mike Kasprzak, Sykhronics

illus6h

While there's no formula for guaranteed launch success, one thing the developers we spoke with agreed on is that visibility is king. One of the best ways to become visible is to get talked about in other outlets. While 2D Boy had already gained notoriety before bringing World of Goo to Android, other developers rely on being featured by Google or reaching out to blogs and other outlets on their own.

Even when a developer or team figures out a good launch strategy though, things can change when your second product launches. Paul Johnson of Rubicon explains this phenomenon in detail:

Our first big title (GLWG) had little in the way of formal marketing, we just did a bit of forum posting and blogging and hoped for the best. I can feel marketing guru's cringing already, but we just didn't know how to go about anything else.

I guess we lucked out because enough people bought the game early to provide a fan base and help spread the word. GLWG hit the #1 spot for a while, ably assisted by a feature placement from the store, and since then we've never been outside the top 30 or so, often higher.

This time around though, with Great BIG War Game, we had a lot more tools in the box and were hoping for true stardom with it. Here's a quick list:

1) It's a much bigger and better game generally.
2) It has asynchronous multiplayer, which makes the game better but we'd also assumed there would be more social buzz around this feature.
3) We paid for a professional marketing outfit to assist the launch.

You might be able to tell where this is heading.. The game is failing and we have no clue why. Currently the original game is way outselling it and we just can't seem to build up a head of steam for the new one.

There's failing and failing of course, we're selling some copies and they've all come back with sterling user reviews, we just seem to be stuck at that elephant in the room I mentioned earlier, not being able to reach critical mass.

It would seem the successful launch – and specifically one that leads to sustained popularity – depends on a mix of several factors. Exposure is without a doubt the largest, but launch success also seems to depend on the nature of the product, as well as preceding products. It would seem that – in Rubicon's case – Great Little War Game may have been so developed, complete, and popular by Great Big War Game's launch that the latter's launch was bound to stumble without a rocket boost of exposure.

Whatever the case may be, it is clear that successfully launching a new game is challenging in a market that already has thousands of new products competing constantly, even more so considering the unclear and changing factors that contribute to a product's success or failure.

Staying Up to Date: Updates, User Input, and More

To ensure continued success after launch, developers are usually expected to keep up to date with their product, bringing improvements and fixes as necessary. As discussed earlier, customers expect to purchase apps that work. They also expect that their purchased apps and games will continue to work, and – in an ideal world – continue to improve.

To get a handle on how indie developers manage the life of a product after launch, I asked our panel what the update workflow was like, what role user input played, and how updates/fixes/enhancements were given priority.

"…For Smiles, I only update when something isn't working. iOS I haven't touched in a couple years, but Android I pushed an update the other day when I found out the game was being flagged as incompatible with the Nexus 7 (lies). Some hair pulling and manifest tweaking later, the update was in the store. As far as I'm concerned it's done, but I do have some cosmetic fixes I plan to make." – Mike Kasprzak, Sykhronics

"User feedback has been huge – it's a great way to see what issues people are having and pretty much dictates how we handle updates." – Gil Carmel, 2D Boy

illus7

When asking the devs who contributed their words for this post about updates, user input, and what changes get top priority, it became clear that many developers handle things differently from one another.

While Sykhronics takes a hands-off approach to updating in which the finished game is finished unless something needs fixing, other developers like Gil Carmel completely rely on user feedback. Likewise, Naomi from LavaMind believes that "anyone who takes the time to give me advice is worth hearing. Even when I don't agree with the advice, I appreciate hearing it."

Rubicon keeps in touch with their users as well, especially through their forum. Paul Johnson explained that the workflow for updates looks just like the normal workflow:

We regularly updated GLWG right up to releasing GBWG, and now we're full time expanding that. There were some release day bugs that caused some panic around the office, but they've been sorted out now and we can get back to adding new stuff for future free updates.

Overall, it would seem that updates and fixes comprise another area of development that varies between studios, especially in the independent space. Some games are simply finished unless something breaks. Others (presumably those that focus on a more social or interactive element) require more attention, and in these cases many independent devs find user input invaluable.

Closing Thoughts, Predictions, and Advice

Well, there you have it. A lengthy yet candid peek at the world of independent game development for Android. In the course of speaking with the developers who contributed to this post, a lot of great information was revealed, particularly for those who may be looking to enter the Android development world themselves. To that end, our developers offered some encouragement, predictions, and advice for hopeful newbies.

"The AAA console world is basically dying, trotting out the same old risk averse cruft month after month. Indie is where it's at and you can get published on Android for almost no money. All the future innovation will come from this space, and the big boys can't do a thing about it. Now's the time!" – Paul Johnson, Rubicon Development

"Do it yourself!  There's nothing you can't learn.  I had zero experience coding a year ago, and now I'm the one helping newbies out on the forum.  And if you have any talent for visual design and game design, do that too.  If you lack the talent, find a partner who can fill those roles. 

And most importantly, don't let anything stop you. Finishing what you start no matter what obstacles you face or how exhausted you feel is the most important thing.  It's not worth anything unless you finish. 

Lastly, make a great product.  Don't compromise.  Good games don't sell.  Only great games sell." – Naomi Kokubo, LavaMind

In the end, there's a lot to know about the world of independent development. There are both benefits and drawbacks to the process, and a great deal of factors to consider at each step. That being said, entering the Play Store successfully with a game that experiences sustained popularity is not impossible – in fact, the same "low barrier to entry" discussed earlier is one of the reasons many developers love Android.

Whether these accounts have inspired, dissuaded, or simply educated you on the topic of independent development, there is no doubt that the words "from the trenches" are invaluable to the Android community in understanding the platform and its ecosystem.

Liam Spradlin
Liam loves Android, design, user experience, and travel. He doesn't love ill-proportioned letter forms, advertisements made entirely of stock photography, and writing biographical snippets.

  • http://www.androidpolice.com/ Artem Russakovskii

    Brilliant piece, Liam. Thanks for all the research and thank you to all developers who participated!

    • http://www.facebook.com/profile.php?id=1745689461 Hal Motley

      I like the pretty pictures and the content is very good too!

  • RedPandaAlex

    I really wonder if Google is ever going to create a set of developer tools integrated into Google Drive. I know one thing that's missing for me on Chrome/Android is a good development environment, and I just do some basic web-based stuff in Dreamweaver.

    I know this isn't necessarily something Google has to do since Drive has an open API, but there needs to be some solution. And if Google was behind it, they could make sure it included a lot more streamlined environment for Android development.

  • wolfkabal

    I have to agree with the fairly inconsistent development environment. Especially when trying out someone else's code. Suddenly you have to go tweaking manifests, adjusting API versions, and sometimes straight out tweaking code simply to get it to compile, all because someone didn't configure something, or did configure something in the IDE differently.

    • marcusmaximus04

      Ya, the recent changeup to the whole lib/libs thing kinda threw everything into a blender too. Hopefully, given time, things will calm down on that front and everyone can just calmly use the new system.

  • http://twitter.com/psych2L Joseph Lee

    Perhaps Google can make a featured indie section for budding devs. Until then I rely heavily on Artem's app roundups and reddit for app discovery.

  • Abdulrahman Hamad

    Too long; worth reading.

  • MrWareWolf

    good article.. thanks..

  • http://codytoombs.wordpress.com/ Cody Toombs

    Great article, very nice read.

    I just want to throw in my own two cents on the IDE subject. Microsoft has famously had the best developer experience for more than a decade. Visual Studio is absolutely brilliant and super easy to use. It does suffer a bit from the same problem present with Android development; after the IDE is installed, you must chase down several add-ons, extensions, and other SDKs to get things working.

    I know some developers love XCode (Apple's IDE), but I absolutely hated it. Setup is really easy, but using it is like a punishment reserved for programmers who've slept with the bosses daughter.

    Eclipse (the most popular option for Android development), in my experience, is in the middle. It's a hassle to set up, but not bad if you follow the widely published guidelines. It's a pain to use, but gets better as you get over the learning curve (and WAY better when you learn a few important hotkeys). Oddly, I feel like it's more of a pain every time I set it up, as I've done it 3 times and each time makes me more annoyed with it; maybe it's the inefficiency of setting it up and having to re-read instructions that could have bean easily scripted or pre-packaged.

    I feel like Eclipse needs to be replaced by something better. Google really could go a long way in improving the development situation if they started building their own IDE.

    • http://fractiousg.blogspot.com/ fractious games

      Totally agree...which is why I use IntelliJ IDEA for my Android development :)
      Their community edition is free and it is only slightly behind Eclipse in Android support.

  • Himmat Singh

    Indeed, as Artem says, well researched. Thanks for the insight. A bit too long, but worth the read nontheless.

  • marcusmaximus04

    I'm guessing this is intentional hyperbole but:

    "We recently upgraded our pc's and I'd not noticed how many disparate widgets and gizmos needed to be tracked down and installed, and in the right order, to get even a basic "hello world" program running."

    Eclipse and the Android SDK? I guess you can add in the NDK as well if you want to use that. I've refreshed my dev machine several times now, takes all of ~10 minutes to get it back up and running for Android development.

    • http://twitter.com/havens1515 Randroid

      I'm new to Android development, but I can see what they're talking about. You need the Java SDK, then the Android SDK, then an IDE (Eclipse, or whatever you use. There's a couple out there.) And the Android SDK files take a while to download and install.

      It took me a while to just get JDK and Android SDK loaded after a re-load of my PC onto a new drive, so I can kinda see where they're coming from.

      • marcusmaximus04

        Note that if you use Eclipse, the JDK is *not* required. You have to have a JRE installed, since Eclipse is written in java, but Eclipse contains its own JDK version.

        So that basically just leaves Eclipse and the Android SDK. I suppose depending on your connection, that might take a while to download, but it's not like there's 50 different moving parts unless you get really involved with all the possible tools. In fact, if you really want to go that route, NVidia's developer tools automate the installation of Eclipse, Android SDK, NDK, a few performance analyzers, and even some example apps.

        • http://twitter.com/RubiconDevelop Rubicon Development

          You're just missing active perl, cygwin, a debugger, special debug drivers for the phone (assuming there actually are some). Add to that that certain builds of all of these don't work together. Oh and something make the C++ compiler fail that I didn't have a clue about so I re"installed" everything again.

          On XCode or Dev Studio, I click the icon to install, open my project, hit deploy, check out my running game. Why would anyone be happy with less?

          I've seen some linux heads who seem quite happy with 10 console windows open, haxoring away from the command line. But I'd like to see that stuff consigned to the 1980's where it belongs.

          If you refute all of the above and want to tell me I made it overcomplicated, then I'll admit to that possibility. But the fact that user error can occur is already a design fail from day 1 imo.

          • marcusmaximus04

            I'm not sure what you're using perl for, so I'm not going to touch that one(thinking about it more: probably the NDK scripts. As with the rest of this, not a problem in Ubuntu). I'm doing my development in Linux(Ubuntu), so cygwin isn't needed. And a debugger is built into the ADT. Drivers also don't seem to be any kind of a problem in Ubuntu at least, since at least every device I've used thus far has worked out of the box with full debugging.

            Anyway, it sounds like most of your problems had to do with NDK development in Windows? I've never seen any of them on my dev machine running Ubuntu, and, from what I've read, it should work about equally well on a Mac(I don't own one so can't confirm).

            If you're sticking with Windows, though, I'd really recommend NVidia's Tegra developer tools(http://www.nvidia.com/content/devzone/tegra-android-developer-pack.html ). Comes in a single binary that installs everything you need, sets up cygwin, etc perfectly(I played around briefly with running my dev environment in Windows)

            To add to this a bit: I'm aware that there's still obvious improvements that could be made in terms of Windows development. That said, it's kinda unfair to judge Android based on the dev experience in the absolute worst OS environment that exists for it. What you described for XCode(OSX-only) and Dev Studio(Windows-only) is pretty much how the Android SDK works in Ubuntu(and, from what I've heard/read OSX).

          • http://twitter.com/RubiconDevelop Rubicon Development

            Yes, I'm on windows. I don't want to open that holy war again but Ubuntu is just not a feasible fit for how everything else works around our office. Nor in most dev offices I'd expect.

            Linux is definitely a better environment, but I don't think it's at all fair to expect dev tools to require it. I'll run ubuntu all day when they get MS Office, Photoshop and 3DS Max running on it. Not before.

            Dual booting is an option, but once again another kludge that hinders your working day.

            EDIT: Before you say it.. :) I hate going on the Mac for the same reason, but it at least all feels cleaner when you just want to nip in, test a build and walk away.

          • marcusmaximus04

            Makes sense. You guys are already targeting iOS, right? Have you tried doing Android Development in OSX as well? The only thing I saw there that looked like it would still be the case is *possibly* perl(Honestly not sure whether that comes pre-installed in OSX). Again, though, I haven't actually tried it, since I don't own anything with OSX, just going off what I've read and know of it.

            Targeting a Unix-based environment while working in a Unix-based environment is just sooooo much easier than trying to cram support for it into Windows.

          • http://twitter.com/RubiconDevelop Rubicon Development

            Not tried that, but see above edit - I hate macs too. :)

            The ideal fix is to treat android like ios and have a separate machine
            setup with linux on it. But that's just adding to the pain of not having
            everything in one place.

            It's just a convenience thing, I have no time for arguing which is generally "better". You've probably noticed that what I consider "best" is the one which runs the most tools that I need to do my job. I have no love for any of the major organisations involved over any of the others.

            Ask any iOS/Android cross developer, they'll all tell you the same thing - we want all three targets accessable from windows, ideally via devstudio plugins like you can get for PlayStation and XBLA development.

          • marcusmaximus04

            OK, makes sense. I guess it comes down to which tools you need/want and what they're available on. Personally, I've done all my texture work in Gimp and modeling work in Blender. For docs, I don't have a ton of them since I'm a single developer rather than a team, but what few I've needed are just simple ones on Google docs. So all of that was easily available in Ubuntu, where tools like photoshop/Office/3DS Max/etc obviously aren't.

            Anyway, the Tegra developer pack should make things a lot easier for Windows development, though I definitely agree that Google should provide something similar themselves.

            PS: Since I keep talking about it, if you're interested, this is the game I'm working on: http://markwazny.wordpress.com/current-projects/

          • http://twitter.com/RubiconDevelop Rubicon Development

            Thanks for the tip on Tegra stuff, I'll give that a once over. Good luck with your game, looks ambitious and has potential. :)

          • http://codytoombs.wordpress.com/ Cody Toombs

            I'm just going to jump in to confirm that Macs are almost as good for Android development as running Linux. There's a couple of goofy idiosyncrasies regarding Eclipse (when are there not?), but the driver support and compatibility are pretty top notch. Avoiding Cygwin and a lot of those other compatibility layers is a blessing, imho. Paul is right, there's a lot of extra crap that needs to be installed to get things working in Windows (which is exactly why I won't set up for Android development on my Windows machine), and almost all of it can be avoided on Linux and Mac.

            I get where Paul is coming from though, it took me 4 months of full immersion before I started getting comfortable developing on a Mac, and I still didn't have things working the way I wanted until more than a year had passed.

            Disclaimer, I've never tried the nVidia toolchain, but it sounds good.

  • Rogue AI

    My game sold about 10 copies in 2 weeks of launch. After being featured on AndroidPolice, it shot up to 300. Getting coverage is probably the most important part of launching a title. Aside from having a good game of course.

    • Anonymous Ace

      And what game would that be?

  • http://www.facebook.com/c4mendizabal Carlos Mendizabal

    Interesting Article

  • MacD

    I agree and disagree with the toolchain comments. I don't do native c++ stuff, so maybe that colours my perception, but to get up and running with Eclipse, you just need Eclipse, the JDK the SDK and the correct USB driver for your phone. Install, update and you're done.It really was that easy for me

    What does get me is these STUPID little settings which have to be set: adding an environment variable manually? The setup in eclipse? Andthe fun you'll have when updating the sdk/adt! Little settings which will have you searching for a day just to find out you need to uncheck ONE checkbox which you never touched before!

    But my main trouble as an indie with Android is exposure. Make a game which is pretty unique, looks good and has all my friends hogging my phone whilst I was developing it ... that was easy.
    Now getting some exposure for it? Difficult like shitting bricks.
    I've done the whole sending it to sites (complete with pics and a free unlocker), but getting people to download a free colourful and addictive game is the side I just apparently suck at :)

    Anyway, give it a try: Ringi is free on Google Play, and if you want a game which plays great, is addictive in that Tetris/Bejeweled kind of way and you can play for minutes or hours, give it a try!

  • Stephen LeMaitre

    Well... while I am learning the ins and outs of Android programming, I do have a suggestion/request/wish from any currently experienced developers.

    Some of the great games from earlier days of the internet have vanished, leaving behind lots of followers wishing that they never went away.

    Specifically (although there are others) I am thinking about Time of Defiance by Well Crafted Entertainment (now defunct) and Laser Squad Nemesis by Julian Gollop (past master of the trade).

    Both of these games seem ripe for Android platform, have preexisting audiences, and are currently abandonware.

    It would be great to see these reincarnated either through licensing with the original designers, or through adoption of the gameplay mechanics in newer forms.

  • Tiago Taveira

    Thank you very much for this post!