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.

Awesome.

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.

and/or

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.

Tuesday, August 2, 2011

Save the Egg Preview

Over at Google+, I've posted a preview video of our newest game, Save the Egg. Check it out:

https://plus.google.com/115741823263310305343/posts/QEN3FQK8Xjk

Tuesday, July 5, 2011

Chromebook Fail

At the end of last week I received my new Samsung Chromebook that was promised to all attendees of Google I/O 2011.


The form factor is very nice. It's light, with a great screen and a very comfortable, responsible keyboard. The trackpad actually depresses when you push it, and it's one of the nice trackpads I've used on a laptop-type device.

I resigned myself to the fact that it really is not a primary computing device. That is, like a tablet, it's an auxiliary device, something you would just use to do lightweight computing, such as browsing while watching TV or in a coffee shop. I actually loaned it to my girlfriend to see if it would replace her aging laptop.

So she called me up the next day and said "How do you change the screen timeout settings?" See, she was trying to cook something new, and had the recipe up on the Chromebook while she cooked. The screen kept timing out.

I didn't know, but when I got onto the device, I checked the system settings, which are very limited. Nothing for screen timeout. Turns out that you cannot change these settings. Here's the info from the Chromebook online help guide:
Your Chromebook screen also automatically turns off if it's been inactive for a period of time. When plugged in to a power source, the screen turns off after 8 minutes of inactivity. When unplugged, the screen turns off after 3 minutes of inactivity.
Yep, that's right. This is hard-coded in and not configurable. In a forum discussing this issue with the CR-48 test devices, testers complained. The response from a Google engineer was basically that they didn't want to add unnecessary complexity to the settings, so they went with default settings that most people would find acceptable.

Fail.

I'm all for simplicity in user interfaces, but this is not something that should be unconfigurable. As in the above-mentioned use case, if you're using the device for any purpose where you are using it as a reference and are using your hands for something else, a 3-minute screen timeout is going to render it unusable. I haven't tested it for media (music or video), but this might also be a deal-breaker.

What's worse is that they actually got this feedback during testing, but decided to ignore it and release a production device without this setting enabled. Apparently they are selling well on Amazon, though I haven't heard anything about what the return rate is like.

In another forum, I found info about how to toggle the device into developer mode and modify the setting from the command line, though I ran into issues booting into developer mode and could never get access to the shell.

Also, the Chromebook didn't recognize my Droid when I plugged it in to see if I could transfer files back and forth between the devices, which made me wonder how the Chromebook handles driver issues (I'm guessing that in most cases, it just doesn't).

I really wanted to like this device, and approached it with reduced, realistic expectations that it would not replace a computing device with a full-featured operating system. Even with the lowered bar, so far it has failed. The hardware itself is great, but this is my first experience with Chrome OS, and from what I've seen so far they've stripped away too much to make it viable, even as a casual secondary device.

Thursday, June 30, 2011

Recording Your App In Action

Lately I've been working on a couple of new game projects, one that is mostly outsourced, a physics-based game called Save the Egg, and one that I'm doing mostly myself, Flick Hearts, a local multiplayer version of Hearts, using multiple devices.

Video screen capture doesn't allow me to show the interactions between devices, which is important to demo for users who might be interested in the game. So I decided to try recording the devices with a video camera.

This immediately poses some technical issues. For the camera, I shopped around a little, but decided to just use my girlfriend's Canon digital camera, which records pretty high-quality video. There's no sense buying a dedicated video camera for close-up video shoots. Then there's the issue of stabilizing the camera for recording. A traditional tripod doesn't work, because what you need is a top-down perspective, from about 2 feet away. I read that what I needed was a copy stand. Not wanting to shell out the cash for a relatively simple piece of equipment, I read some DIY advice on a couple of forums.

Then it was a trip to Lowe's to buy some PVC pipes and screws. $15 and about an hour later, and I had my own recording stand.






This last shot shows the stand set up on my Poker table. The biggest problem was that the camera is picking up on light, and the devices produce a lot of light, being backlit. Suggestions from the forums included lowering the brightness on the devices and trying to get ambient light balanced with the brightness of the devices. I fiddled around with this for a while with mixed results.

The resulting video is okay...not great. You can at least get a sense of how the game works. Lower brightness settings did work better, but this is with the brightness set to the minimum on all devices. My Motorola Droid was the brightest, even at min brightness.


I had a couple of issues flicking from the Eris. I need to adjust the sensitivity for the gesture, but you get the general idea. Hopefully I can continue to refine the recording procedure to make it look even nicer in the future, but this isn't a bad first cut.