Friday, June 7, 2013

Amazon Proves to be Indie Friendly

Amazon recently launched a section of their storefront devoted specifically to indie games. This is a pretty sweet move. Indie games are most likely not a high upfront profit sector for most digital storefronts. But the effort to implement them is relatively small, and the additional benefits are numerous, including:

  • Fostering start-ups that may just have that next big hit
  • Engendering good will in the indie community
  • Exposing end users to a wider range of content

Developers take notice of this sort of move, and they're more likely to be attracted to a platform that makes even marginal effort to help them succeed. Google seemed to understand this in their core business practices early on, and certainly with their posture toward Android developers in the early days of the platform.

Now, though, there is no longer a "Just In" category in Google Play and there never was a dedicated indie channel, so since indie's can't afford massive marketing budgets exposure is virtually zero for a new title. This has caused the Android segment of Google Play to devolve into preferential attachment, or a "rich-get-richer" dynamic. If someone from Google has data to the contrary, I'd like to see it, but I think it's highly likely that the average download rate for new apps (excluding those that are from major publishers or are ports of popular apps) have declined steadily over the past two years.

Google should learn a thing or two about fostering a healthy developer ecosystem from Amazon.

Wednesday, March 27, 2013

The 4.2.2 Update

Ah, the joys of Android development!

Yesterday I received the over-the-air update to my Samsung Galaxy Nexus to version 4.2.2. The update broke compatibility with the custom app I wrote to track my online sales. I didn't figure it was that big a deal. I'd just fire up Eclipse, investigate the error and fix it.

But hm...suddenly the Android Debug Bridge (ADB), the software that lets my Android device talk to my PC development environment, wasn't recognizing my device. First things first, I went to check my developer options on the phone to make sure that USB Debugging was enabled. developer options. That seemed really strange. After a bit of Googling, I found out how to enable developer options on this version of Android. You open up Settings, scroll to About Phone, and click it 7 times. Yes, that's right...I'm not joking. Google put the dev options in an Easter egg format. This is cute, but from a usability standard it's downright stupid. You shouldn't outright hide such options. If they're worried a hapless end user is accidentally going to enable an option that puts their phone at greater risk for malware, the sensible thing to do is to use warning dialogs. You know, like "Are you sure you want to enable this feature? Doing so could be really bad for you if you don't know what you're doing." If a naive user continues past this point, they deserve what they get. But hiding the option altogether is just silly.

Anyway, I enabled the dev options, made sure USB Debugging was enabled, and plugged the phone into my PC (which is running Windows 7 x64, by the way). It worked, right? Nope. Drivers were being installed upon connection, but I was getting a new warning: "Hardware ID missing. Windows cannot identify the device plugged into Samsung USB Composite Device." Hm...okay.

An hour of research later, I find a forum post that suggests upgrading the Android SDK tools, including the ADB. Sounds sensible. However, it takes me a while to figure out that I don't actually have the latest versions of the appropriate platform tools because the Android SDK Manager is showing that older versions are actually the most recent, and is not prompting me to update. Well that's cool. So back to the forums, and another dev reports the same issue, and suggests manually downloading the tools. So I do that, and finally, after rebooting my PC and phone for what seems like the 100th time, I finally get the prompt on my phone that looks something like this:

You see, in Android 4.2.2 Google added a new security feature to USB debugging, so you can't establish a connection between your phone and PC without first getting this prompt and clicking OK. Finally that did it. I fixed the problem with my app and ran it.

Total time to get my phone talking to my computer after the update: the whole day. Awesome...thanks Google!

Monday, July 9, 2012

The End of Indie Game Development on Android

I got back from San Francisco and the Google I/O developer conference there last week. Google was yet again gracious with the hardware giveaways, giving out Nexus 7 tablets, Galaxy Nexus phones, a Nexus Q, and a Chromebox.

 But the real takeaway for me was what I had seen happening to my indie business over the past year, and that's that indie game development for Android is pretty much dying. The main reasons are competition and discovery. Now that Android is a hugely successful platform, the major game developers have entered the market. Smaller devs simply cannot compete for visibility with limited or nonexistent marketing budgets. Coupled with the removal of the only free visibility channel (the Just In category), and new indie titles that weren't already hits on another platform are dead in the water. But this isn't just me whining in the wind.

I spoke to two different Google employees, one of which gave a talk on game development at I/O and who has served on the editorial team responsible for picking featured apps and games. I didn't want to sound like I was just bitching and moaning, so I asked him an actionable question: In his talk, he mentioned several things NOT to do as a game developer. If he were an indie developer like me, who had been successful the past three years but was now dying in the market, what would be his game plan?

 His answer was telling: Try to publish through one of the big game publishers.

 In other words, you can't make it as an indie anymore. He said in the past couple of years that developers had "been given a bit of a free ride." I'm aware of the realities of the market, and I wasn't sure I'd be able to do this for a decade or more, but I tried to make the point that there might be a middle ground, assuming that Google cares, which I think they should.

 Chris Anderson's The Long Tail is an excellent treatise on the revolution of digital marketplaces. He points out that nearly all markets have a long tail distribution, meaning there are a small number of products in a given market that are hits, a middle ground of moderately successful products, and a "long tail" of products that only sell a small number of units each. Because media was traditionally only sold in brick and mortar stores, where shelf space is limited, if you were a music seller in the 80's, would you rather fill your shelf space with the latest Michael Jackson album, or a plethora of obscure indie titles? The answer is obvious. But with digital distribution, shelf space is no longer an issue. Since inventory space is virtually unlimited in a digital marketplace, you can now offer all the obscure stuff you want. The issue then becomes discovery. If it's relatively easy for fans of obscure titles to find them, what will happen is that you'll still sell the mega-hits, but that long tail will get fatter, since you'll sell non-significant numbers of the obscure titles as well, increasing the overall area under your sales curve. In other words, purely hit-driven markets generally make less money than those with a fat, healthy long tail.

In the past year, Google Play has shifted into a more hit-driven market. By doing away with the only channel that would facilitate discovery of indie titles (other than the golden ticket of being featured), they've flattened out their long tail. People are not going to search for games or apps that they don't know exist. They will simply default to known quantities, such as Angry Birds or the latest Zynga or Gameloft game. Every single digital game store that I know of has a "What's New" channel, except for Google Play. Excluding that, I suggested to the Googler that they might add a channel for indie games, which the Xbox market has. He said he'd take that back to the team. And lest you think I'm alone, here's a bit from the Android Fireside Chat at I/O this year:
Q: For my new app I got 30 downloads on Android, 4,000 downloads on iOS. Probably because What's new section was removed from the Play Store. I understand you were getting a lot of spam but are there any plans to bring it back? 
A: Looking at it. We care about app discoverability. Launched recommendations, that should help.
Peer-to-peer recommendations can't hurt, but how are you supposed to get the ball rolling? I can get my family and friends to download and recommend my new game, but their social network will likely be very cannibalistic. And if I'd like people in Europe or Asia to see my game, recommendations aren't going to do squat.

 Killing visibility for new apps is making Google Play a more top-heavy market, hurting existing indie developers, alienating devs, making it much riskier to launch a new indie title on the market, and ironically, probably hurting the overall profitability of the market by thinning out the long tail. I'll be all right, even if my business doesn't survive another year. But I couldn't in good conscience recommend Google Play as a viable market to a new indie developer. As much as I dislike Apple, if I were recommending a mobile gaming platform for a new dev, I'd tell them they should focus on iOS first. And if one of Android's most successful indie devs is recommending a competing platform, you know things are really screwed up.

Tuesday, March 27, 2012

Google I/O 2012: The Agony and the Ecstasy

Google I/O is a developer conference run since 2008. Ostensibly the purpose is for developers using Google's products to learn about upcoming software, network, and help Google help them make better products.

I attended in both 2010 and 2011, and found the conference useful and interesting. I met other Android game developers, and Google engineers actually working on the platforms I was developing for. But probably mostly due to the increase in tech giveaways (in 2010 I got 2 Android phones, in 2011 a tablet and a Chromebook), demand for the conference has shot through the roof. The conference sold out in under an hour last year.

So I was heartened to hear that Google intended to implement some kind of screening process for registration this year, to make sure that actual developers would be able to attend. A Google rep last year said something like "brush up on your programming skills" in anticipation for registration. A coding test would have been difficult to administer. I guess they were sort of referring to the mechanical widget builder on the Google I/O page. Supposedly there was an Easter egg for early registration, though I didn't hear much about this, and it's a pretty pale substitute for any kind of screening process. Also, supposedly attendees for the past three years got preregistration, though this seems conflicting as well. I just saw a tweet from someone who said they've attended since 2008 and didn't get it. So basically it was a free-for-all.

This morning at 7am PST, Google opened its registration site. They insisted that the snafus from last year (all sorts of technical issues with the registration site) would be resolved. They were using new servers...etc, etc. Just before the allotted time, I had the page open, and started hitting refresh. Right on time, I got the "Registration is open" message. It still prompted me to sign in to Google+, which I already was, so I may have lost a couple of precious seconds there. But when I clicked "Register", I got this page:

Okay, fair enough. I waited three minutes on this screen, then got this screen:

Ah well, I thought. That was that. I was already pretty disgruntled at the way Google had handled the whole registration process, so I was feeling a bit of sour grapes. My friend Jeremy suggested I keep at it, though. I preregistered last year, avoiding any nonsense, but he went through the free-for-all registration and initially got "sold out" only to get a ticket later. So I clicked on "Register" again. Several more minutes went buy, and the same indicator of no tickets available came up. I tried again. Third time did it, and I got a "We found a ticket for you!" message. So I registered.

Even though I got a spot, I have mixed feelings, and I'm still not happy about the way Google has handled this. I'm seeing droves of tweets from devs who didn't get in. What would have been the fairest way to handle registration? I don't know, but I don't think Google put much effort into it.

What would have been ideal would be for some kind of vetting process to make sure the people attending are actual developers, and not swag-hungry people who would otherwise get nothing from the conference. I think a white list of verified devs would be a start, those people who had registered Android developer accounts, who had some kind of history developing with Google products. The full-time developer advocates could have helped out with this. Instead, Google I/O is turning into a tech-grab with artificially high demand for what should be primarily attended by developers. As far as I know, there is no way for Google to verify that the people who registered aren't just people trying to profit from the tech giveaways, or flip their registration. Jeremy just sent me a link to someone who just flipped their registration on Ebay.


So while I'm happy that I got a golden ticket, I'm still not happy with Google about the way they've handled this. And I feel for all the devs who got shafted.

Wednesday, January 18, 2012

How Google is Killing Indie Android Developers

I've been a full-time indie Android developer for over two years now. It's been an awesome experience, but this is going to be a watershed year, and at the end of it, I'm not sure I'll still be in business.

 First some background... I published my first app on the Android Market in March of 2009. At the time I was a graduate student hoping for some pizza money. I didn't expect it to turn into a full-time business, but that's what ended up happening.

My early efforts at apps were clumsy. I published simple utility calculators just to learn the development environment and get my feet wet. Then I moved on to games. I was the first to publish some staple games on the platform, like Spades and Dominoes. And my version of Golf Solitaire has also been very popular. Because I was one of the more successful early indie publishers on the market, I was approached by a Russian developer to resell EasyTether, because at that time Russian devs were unable to publish in the market. So we worked out a publishing agreement and I've been very fortunate to be able to publish that app. In total, I've published 39 apps on the Android Market. Many are very simple. You can see them in the market here. Some have done well, and some have flopped. But all of my new apps had a fighting chance. Until last summer.

In July 2011 Google revamped the Android Market and removed the "Just In" category. I can't speak for other devs, but this decision may have wrecked my small business. Why? Because for most indie devs, the Android Market is their primary distribution channel, and if users don't see it there, they don't see it. Some section of the market displaying the newest releases is very nearly the only way indie apps are going to get any exposure. Instead, there are now "Top New Paid" and "Top New Free" sections, which only reinforce the popularity of apps that already have exposure, and do nothing for new apps that have no traction. This editorial over at Android Police was in favor of the change at the time. They said:
Of course, the problem is that these developers can't actually determine what percentage of their app's "clicks" come from the "Just In" section - there seems to be a tacit assumption that it's a large number, without any evidence to back up this claim. I don't think that is at all the case, but I don't have any numbers, either - just my own personal experience that I think many of you will be able to corroborate.
Well, I have several years of direct experience with the market, publishing numerous apps. Let me share a little with you.

Here are the first day sales for apps published:

Drywall Calculator, Jan2010 (4)
Friction Loss Calculator, Jan2010 (8)
Puzzle Lords, Jan2010 (4)
ReceiptBook, Apr2010 (5)
HairBook, Feb2011 (4)

HairBook, a hair stylist customer database app, went on to sell 30 copies in the first week. All of these apps, and all of my earlier apps and games benefited from the initial exposure of the Just In section. What typically happens is that sales tend to either drop off after that first week, or pick up and plateau (as has happened with my more popular games).

Now let me share first-day sales figures for the last two apps I've released:

 Flick Hearts, Oct 2010: (0)
Save the Egg, Jan 2012 (0)

Flick Hearts was admittedly an experimental game of sorts. It requires multiple devices to play, and was designed to use a hi-res device (such as a tablet or Google TV) as the playing surface, with phones used for holding your cards. Users flick the cards from their phones to the host device (like playing cards on a table), which tracks tricks, points, and scores. Admittedly the market is smaller for this game, because of the requirements and format. But zero sales? The most disheartening, though, and possibly the nail in the coffin, is my latest game, Save the Egg. It's a physics-based puzzler, a game type that has been very popular and performed well for indie developers (e.g. Apparatus, X Construction). This game represents a significant investment in time and money, and to have it fall completely flat on the first day is just horrible. It's not dead in the water, but not having that initial exposure in Just In hurts its chances. This is undeniable.

Now, I've tried marketing efforts in the past for other games, and I can tell you from my experience that they have been utterly worthless. Ad campaigns have led to no significant increase in sales or downloads. My guess is that you have to have a critical threshold for an advertising budget to begin to see any kind of return. For Save the Egg, I have done what I can to set it up for success. I'm in the process of issuing a press release. I've published a free demo version with the first 5 levels (which got exactly 1 download on its first day). I'm cross-promoting the app with house ads in my other apps. I've announced the release via my company's Twitter feed. I've published the app in secondary markets such as the Amazon Appstore and SlideMe.

The fact is this: The single largest factor for sales or downloads is exposure in the market. An indie cannot advertise their way into this exposure. They can hope they get free exposure from being featured, but this is akin to winning the lottery.

Currently the only way for most users to discover new apps is reading blogs (which many do not do), or searching for the app. If the app or game is novel, and not a clone of an existing concept, users simply will not find it via search. My dominoes app may be found this way, because people purchasing an Android phone who want to play dominoes, will search for that term. But original apps and games will be disproportionately punished by a lack of ad hoc discovery. My revenues are down significantly from the previous two years. January is going to be one of the worst months I've ever had. Some of my older games are still chugging along, thanks to gaining market rank in their respective categories. But they are not enough.

I cannot sustain on a business model where I continue to invest time and money into new projects that do not generate any new revenue. If Google had wanted to avoid unscrupulous devs from spamming such a section, there were much less drastic and more more effective ways of doing it. The Just In category was indicating updated, as well as new apps. They could have restricted it to newly published apps. And for those devs who might just rename apps and publish tons of new apps every day, simply restrict the number of apps published per week. If a company has a legitimate reason to publish more than 3 apps a week, for example, give them an appeal process. Though it is highly unlikely that any developer should be publishing a large number of apps. Instead of targeting the problem, Google simply hacked it off, thereby severely hurting legitimate developers.

 Other developers may have different experiences, but I can only speak for myself and my company. And I can say without a doubt that the current state of the Android Market is killing my business, slowly but surely.

Thursday, September 15, 2011

Thursday, August 4, 2011

Google, Android, and the Patent Wars

Lots of vitriol flying around the internet today regarding this Google blog post by David Drummond, Google's Chief Legal Officer:

I have worked in the tech sector for over two decades. Microsoft and Apple have always been at each other’s throats, so when they get into bed together you have to start wondering what's going on. Here is what’s happening:

Android is on fire. More than 550,000 Android devices are activated every day, through a network of 39 manufacturers and 231 carriers. Android and other platforms are competing hard against each other, and that’s yielding cool new devices and amazing mobile apps for consumers.

But Android’s success has yielded something else: a hostile, organized campaign against Android by Microsoft, Oracle, Apple and other companies, waged through bogus patents.

They’re doing this by banding together to acquire Novell’s old patents (the “CPTN” group including Microsoft and Apple) and Nortel’s old patents (the “Rockstar” group including Microsoft and Apple), to make sure Google didn’t get them; seeking $15 licensing fees for every Android device; attempting to make it more expensive for phone manufacturers to license Android (which we provide free of charge) than Windows Phone 7; and even suing Barnes & Noble, HTC, Motorola, and Samsung. Patents were meant to encourage innovation, but lately they are being used as a weapon to stop it.

A smartphone might involve as many as 250,000 (largely questionable) patent claims, and our competitors want to impose a “tax” for these dubious patents that makes Android devices more expensive for consumers. They want to make it harder for manufacturers to sell Android devices. Instead of competing by building new features or devices, they are fighting through litigation.

This anti-competitive strategy is also escalating the cost of patents way beyond what they’re really worth. The winning $4.5 billion for Nortel’s patent portfolio was nearly five times larger than the pre-auction estimate of $1 billion. Fortunately, the law frowns on the accumulation of dubious patents for anti-competitive means — which means these deals are likely to draw regulatory scrutiny, and this patent bubble will pop.

We’re not naive; technology is a tough and ever-changing industry and we work very hard to stay focused on our own business and make better products. But in this instance we thought it was important to speak out and make it clear that we’re determined to preserve Android as a competitive choice for consumers, by stopping those who are trying to strangle it.

We’re looking intensely at a number of ways to do that. We’re encouraged that the Department of Justice forced the group I mentioned earlier to license the former Novell patents on fair terms, and that it’s looking into whether Microsoft and Apple acquired the Nortel patents for anti-competitive means. We’re also looking at other ways to reduce the anti-competitive threats against Android by strengthening our own patent portfolio. Unless we act, consumers could face rising costs for Android devices — and fewer choices for their next phone.

Of course, I make my livelihood from Android, so I can't claim to be unbiased, but here Google is clearly right.

But there's stuff like this generating lots of traffic:

Google Are Pussies

Everything -- every single fucking thing -- since Bill Clinton has been a copy, a steal, a buy-out -- or a take down.

And now, you pussies, you are in a fight with companies that are equally big, probably better run, and have something you don't: scars, scars from real battles, and you run to the PR teams and the lobbyists and the government and cry: no fair.

Patents bad. We want! Give us!

Tell me, pussies. Which of the Oracle and Microsoft and Apple patents are "bogus"? You say it above. BOGUS PATENTS...Oracle, Apple, Microsoft.

Which ones? Don't be a pussy. Tell us. Which ones are bogus?

And while you're at it, tell us which patents are not bogus? Any? Do you believe in intellectual property? Property ownership? Or is it all there for Google's taking?

I think I can answer that one pretty well. Which of the patents that Microsoft and Apple just banded together to fork out billions of dollars to acquire from Novell's old patent portfolio are bogus?

All of them. In the sense that these were not technological innovations that Apple or Microsoft conceived and used the patent system to protect. These patents are ammunition, plain and simple. They have nothing to do with protecting the intellectual property of any of the companies involved.

Microsoft, Apple, and the other purchasers of the patent portfolio are making a calculated investment in these patents under the assumption that they will either:

A) Be able to severely hurt Android's market share by filing patent lawsuits based on this portfolio, thereby helping the market share of their own products in a highly competitive space.


B) Generate direct revenue by essentially extorting Google for licensing fees.

Again, this has absolutely nothing to do with protecting intellectual property, which is the purpose of the patent system. In fact, it's the opposite. Apple and Microsoft are going to use this war chest of purchased patents to file lawsuits and injunctions against their largest competitor, rather than trying to compete by building a better product.

People are calling out Google as hypocrites for bidding on the patents themselves, and now sore losers for not being able to get them for the price they bid. It's obvious that they bid on the patents as a defensive move. Unfortunately the patents themselves are meaningless in terms of actually representing true innovations developed in house at these companies. These patents are simply fuel for proxy battles. And Google can't merely sit by while their competitors snatch up patent portfolios, giving them more and more ammunition for endless lawsuits.

Basically the whole system is fucked, but it is unlikely to change anytime in the near future. I'd like to hear that the patent system, especially with regard to software, is undergoing review for massive reforms, but I don't think that's the case. As it is, the big dogs will just continue to try to amass as many patents as possible and hash out these issues in expensive, lengthy legal disputes. This will be time and money that won't go into actually developing cooler, better products, and in fact the proxy patent wars will lead to overall higher prices for consumers no matter what the outcome.