Game Development On Android
Gamasutra is running an article about the state of game development on Android. The author explains some of the strengths and weaknesses of the platform, and makes comparisons to development on the iPhone. Quoting:
"While iPhone apps are written in Objective C, the Android SDK uses relatively more programmer-friendly Java. The iPhone store charges developers $99 a year to distribute their apps, while Android has a one-time $25 fee for developers. And the review process for iPhone apps grows increasingly lengthy — sometimes weeks or more — and it's somewhat arcane. Android apps go live as soon as the developer hits the publish button. Google handles the review process post-hoc, and is much more lax in terms of content. ... For now, if a developer decides to implement a game exclusively for a particular smartphone platform, and the choice is between the iPhone and Android, the tradeoff is between trying to get noticed in an incredibly crowded and competitive market where the potential payoff is huge for those at the top, or entering a market with low barriers, little competition, currently low returns, but the possibility of potential growth."
I think that Android's future depends not on Google but on the devices that run it. Apple has the advantage of controlling both the platform and the device. So you know that whatever you develop for the iPhone it will work. But Android resembles more the PC market where there are different memory capacities, 3d acceleration or not, multi touch or not, keyboard or not, etc. That's why I don't play games on my PC and I bought a separate games console. Because I don't want to care about requirements.
mov ax,4c00h
int 21h
You're being shortsighted though. While your numbers might currently be true, you're not seeing the big picture in all of this. Apple is 2 years old on the market, they are past their initial launch boost and they have exactly 1 product with different capacities.
Android is less than a year old on the market, many of the Android devices are announced and coming this fall/winter. They have many more carrier deals than the iPhone has, and already more devices. Expect the tables to turn in 1-2 years. Apple will become the niche and Android will be everywhere. That is if they manage to supplant Symbian which right now has 3 times more market share than the iPhone and Android put together.
"Not to mention all the idiots who use words like boxen."
Anonymous Coward on Monday August 04, @06:49PM
Twenty years ago, in Europe, the PC was a dull machine that you only ever ran business applications on. Maybe a flight simulator if you're lucky. The Mac was an obscure machine for desktop publishing. If you wanted gaming, you bought an Amiga or Atari ST. Now look where we are.
You're pointing at the entrenched PC games market, where everyone has hugely invested in writing in C++ for the Microsoft Direct3D API.
By comparison, smartphones are relatively new and the investment in Apple's iPhone API is tiny compared to the gigantic Windows-only ecosystem (Windows-only middleware, Windows-only tools, Windows-only 3D programmers, etc.) that keeps gaming chained to PCs.
So, given Android programming is much easier (far more programmers know Java than Objective C), and there's not yet a huge iPhone-only ecosystem in place, switching is still relatively painless. All it would take is one damn good phone running Android to topple Apple off its perch.
Does my bum look big in this?
No, they're really not. iPhone and Android compete in the same space, with the same kind of marketing and appeal to the same kind of crowd. They are Internet devices that happen to have phones in them. And Android is pretty device agnostic contrary to Symbian. The Android Market is open to all Android phones and Apps aren't really limited to certain phones yet (the ones on the market all share the same specs under the hood). You can think the iPhone is safe, but Apple has a lot of competition coming in the next few years and they better be ready to fend it off.
"Not to mention all the idiots who use words like boxen."
Anonymous Coward on Monday August 04, @06:49PM
1. Windows Mobile is on a lot of different devices but according to Canalysis, the iPhone outsold all WM devices combined worldwide last quarter.
2. Rob Glaser, founder and C.E.O. of RealNetworks (circa 2003), ''It's absolutely clear now why five years from now, Apple will have 3 to 5 percent of the player market.'' Plays4Sure devices were suppose to overtake Apple and leave Apple a niche player....
http://www.nytimes.com/2003/11/30/magazine/30IPOD.html?ei=5007&en=750c9021e58923d5&ex=1386133200&partner=USERLAND&pagewanted=all&position=
Yes, Android uses a converter that changes java bytecode to a different beast entirely, and performs a large number of global optimisations that decrease size and increase speed - ones that a compliant Java VM isn't allowed to do. So it ends up going about the same speed as JIT, but only needs the power a small phone supplies.
As for garbage collection - Android performs about as well as a C/C++ program filled with malloc()/free() or new/delete. C/C++ games programmers could do that, but they choose not to because they know that avoiding malloc/free/new/delete gives them a performance boost. Android has exactly the same tradeoff - avoid object creation in your code! Create what you need at the start of a level and then don't free it until the end of the level. You'll get good performance. Android has an entire section on how to get good performance, just like C/C++ programmers have plenty of strategies for getting good performance out of any platform.
Does my bum look big in this?
I have no idea about the Android JVM, but in a regular Java JVM object creation is actually significantly faster than malloc. This article is quite old, but shows that even back in 1.4.2 days it was nothing to be scared of.
---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"
name a market segment that cares about *any* of that then get back to me.
Non impediti ratione cogitationus.
Someone please mode this up!
The latest release of the NDK now officially allows OpenGL ES access from C/C++.