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
The way the section quoted in the summary plays up the "wide-open field" of Android just strikes me as very silly. If you replaced "Android" with "Mac" and "iPhone" with "Windows," you'd have a pretty good approximation of the marketshare situation in the PC game market...and no one's suggesting that writing games for Mac is smarter than writing games for Windows due to massive overcrowding of the Windows games market.
(Apologies for any incoherence. Please blame posting before fully waking up.)
Dan Aris
Fun. Free. Online. RPG. BattleMaster.
You can use logic all you want to show the advantages Android phones have, but until the shine wears off for the iPhone fans and people realize just how tied their hands are, it will remain the dominant phone. Really, the average user doesn't even care, although they usually realize later that they should have. The article that predicted 2012 for Android to surpass the iPhone is probably accurate, or perhaps even early.
Android is definitly a tempting choice for development - purely because of the ease in which you can push a product to market. But then again, there's also Symbian, which is used on things like the Nokia N97, which has been around for ages (in various itterations), the latest one is the true smart-phone style thing, but I have a 3 year old phone with an older version of Symbian on it that can still run Java Games, meaning there is already the possibility of a large market for simple apps that can run on older phones as well as the newer smartphones
It pays to be obvious, especially if you have a reputation for being subtle.
That's depends entirely on the taste and skills of the programmer.
One argument would be the available tool set and support for Java-based technologies is much larger than that of Objective-C.
Additional, the collective knowledge (and hence publications) for Java, is again, larger.
Could you please explain the link between hardware requirements and game innovations ?
I just don't see it.
Segmentation Fault in "Life, Universe and Everything" at line 42. Don't Panic.
What is the utmost important for developers is to get them paid for their hard work. The openness of Android platform is actually hurting developers' profits since it encourages pirate copies of their software freely distributed on the internet. With the tight-control of the distribution and installation of software, iPhone platform seems to provide a stronger incentive to developers to write innovative applications for iPhone. The popularity of the iTunes' App Stores has proved my point.
Maybe because there are more Java programmers than Objective C ones?
First, I have an N95 8GB which is the best "phone" I have ever seen. Symbian is fine as long as there are buttons to push. I mistakenly bought the steaming pile of shit, that Nokia refers to as the N97. Nope, Symbian is not god for, ready for, should be used on, anything with a touch screen. This thing is a disaster. Update the OS, doest it make it any better? Nope. Symbian has hit a brick wall. N95 = good (V3) N97 = not only bad, but embarrassing for Nokia.
I think the reason Nokia is releasing the N900 is because they hit a dead end with Symbian 5 and the N97.
Development? go look at maemo.org. Everything you could want. Apple C or Java, puullleeese, it's Debian Linux with every tool you can think of.
Nokia prolly was reluctant to do this, but with the embarrassing failure of the N97 and Symbian 5, they had no choice. The N900 is light years ahead of the iPhone, or Android, and all the development choices are your. You don't have to pay or ask permission from anyone to develop in Linux.
* Carthago Delenda Est *
Oh yes, every game developer would MUCH rather program in Java than in C/C++ (of which Obj-C is a superset). It is soooo much easier to write OpenGL code in Java than in C. What a joke. This article is completely idiotic.
By the logic of this author, it's better to open a store in the middle of nowhere than a shopping center, because the middle of nowhere is not saturated with competitors. The number of applications on the iPhone actually draws in more customers, Apple advertises rather heavily the fact that you can find an app for anything!. It's also been shown that iPhone users are willing to pay money for applications, has the same been shown about android users? Also I question whether Java is more developer friendly than objective - c. The syntax is more familiar ... perhaps, but thats really its only advantage, Objective C also has memory management (if you want it).
That doesn't mean that Java is more programmer-friendly than Objective C.
My other account has a 3-digit UID.
This is also why consoles are stuck with the same copy-of-a-copy-of-a-copy games while the real innovation happens on the PC.
Ohhhh.... so that's what all those junky cookie-cutter FPS and RTS games on the PC are, innovation! All this time I thought they were a quick way to make money by tapping into other games' success.
Apparently wizard is not a legitimate career path, so I chose programmer instead.
Anything from Bloom/HDR to Anisotropic filtering back all the way to 3d textured FPSes. The jump from, say, Doom to Quake was entirely driven by uptake of hardware 3d acceleration.
If you decide to "not see" those as innovation, well, that's your choice. They're certainly innovations in the style of games that can be portrayed. When/if the next change comes to realtime raytracing, that will completely change the way games can be designed (no need to count maximum visible polys, for a start), and that will be hardware-lead, too.
That doesn't mean that Java is more programmer-friendly than Objective C.
Right, it just means that more programmers are Java-friendly.
Write your representatives! Repeal the 2nd Law of Thermodynamics!
Java may appeal to some, but many of us just want C/C++ (Objective-C, allows that).
Games on consoles and PC are normally not developed in Java for many good reasons. Game developers that want to transition to phones are likely to prefer to stay with C++ where they can use their tools of choice, such as Visual Studio.
In fact, I think that a few people out there already develop C++ on PC and keep the actual iPhone/XCode build on the side. This is a big plus for those that are already making games and would like to try to use their knowledge and tools for a cell phone game..
"La presi e te la pagai (480.000 Lire)"
I have to agree to a certain level. Apple has a level of quality control that people tend to forget and think of it more as a proprietary system. Its true Apple does not make sense in their choices most of the time and for some reason it works. A elite cliche type of expression if you own their products.
Whiles others that see room for improvement in their model try the same with looser controls and it never seems to be able to catch that distortion field momentum that Jobs is so good at creating.
One could argue the other side and say that by not having to worry about innovating on the tech side to fit a game into an unknown hardware spec, the developers can spend more time innovating on the game play side.
But really, I think the argument is moot. Both PCs and Consoles need each other even if just as an adversary such that there is no stagnation in the industry. Without PCs, Consoles have no reason to go to the next gen. Without Consoles, PCs have no reason to make drastic changes to game play.
However, you aren't forced to buy Windows games only from the Windows Store(TM) where each game must be approved by Microsoft before you can buy it. If that were the case, developing games for Mac would suddenly start to look at lot more appealing, in spite of the smaller installed base.
Support Right To Repair Legislation.
To be fair, the bar for indy development on PC is much lower - see Penumbra (yes, it's a FPS engine, but it's a First-Person-WHATTHEHELLISTHATRUNAWAYAAAAAGH, and for that it's pretty awesome, even if, yes, horror survival is nothing new). Introversion also has a lot of awesome stuff under their belt in terms of innovative, and there's the "game as art" lot, even if a few of those later had console ports (and of course, there's the game everyone seems to be trying to clone, like Patapon (initially for the PSP), and that seems to spring up on pretty much on anything every once in a while)
Portal was the same, but was first launched on console, while some of the more innovative strategy games (early 4x ers, grand strategy, breaking from tactical leverl gaming) have been on PC, it's a question of interfaces and input, Konami's strategy games were cute (I less-than-threed them a lot), but oh so fucking limited. A lot of Sierra's awesome but slightly broken ideas (Homeworld, Outpost (bug-ridden piece of crap but superb idea)) have yet to have anything on console, or anything retaking their ideas on any platform at all really (okay, not true with Homeworld, Star Wolf did try to bring some of its elements on the table)
But, true, so long as corps like EA, Blizzard or Ubisoft (even if they had a few great things) exist in both fields, there's no way mainstream gaming is innovative anywhere, period. Besides, like in movies, I'm no pedant - I like some arthouse stuff and I like some of the commercial schlock, for different reasons.
But if you want it to be cross (CPU architecture) platform easily, you'll want to stick to it.
You can actually build native code with the Native Development Kit using C/C++/whatever, and so far all the current phones are pretty well compatible as far as native code goes, but if someone rolls out an Android device with a different CPU architecture than the current ARM incarnation, you'd have to rewrite or at least recompile your native code for it, and either distribute multiple versions of the app or include the native code for all versions and dynamically pick the correct one at run time.
Already on Sprint (as of a few days ago) with the chinless Hero. And on Nov. 1st, the Samsung Moment. So, not only does Sprint have Android, but they will have two devices within weeks.
relatively more programmer-friendly
[citation needed]
The statement "given Android programming is much easier (far more programmers know Java than Objective C)" is nonsensical. True enough that Java is popular, but Objective-C is trivial to learn. Actually the languages themselves don't have much bearing on the ease of development for the two platforms. It's the APIs. I've recently started messing around with Objective-C and Apple's Cocoa, and the language itself is VERY easy to pick up (and I'm not a professional developer s much as a person that uses programming as part of his job). The Cocoa API, however, is another kettle of fish. Not that Cocoa isn't well designed -- it's astonishingly well designed -- but, it's huge. Java is similar in that the language is relatively simple (on par with Obj-C, more or less), but you've got LOTS of APIs to learn.
I suspect that if you are a game developer, you're probably making little use of most of the APIs, and if you are big enough, I'm sure that you use a toolkit that abstracts-away the underlying platform. In either case, the primary language used probably has little bearing on the ease of development of games on either platform.
How is this any different from application development on PCs? It's really hard for me as a developer to feel remorse for a mobile application developer when it comes to backwards compatibility.
Clearly define what your hardware requirements are for your application. If the user doesn't comply, it's their own fault. Nothing new here.
interactive hologram, or it didn't happen.
I am in love with my new phone. The Android Marketplace from what I can tell is almost %80 free. I plan to personally download the SDK and Eclipse stuff and make my own apps/games in java. The Hero is a solidly built phone with every feature you could ask for including exchange sync. Love it!
Portal was launched simultaneously on PC and console, but it plays far better with a mouse.
Paradox
Not if you learn it properly - ie you learn the C side of it. Any idiot can learn the high level fluffy OO stuff. Get the same idiot to learn about pointer arithmetic or functions pointers or pre processor macros or casting issues or 101 other C gotchas and its another story entirely. Its the same story with people who claim to "know" C++ when in actual fact all the know is how to use "new", "delete" and maybe the STL and know jack shit about the in depth complexities of the language.
Are you serious?
The Iphone may have a better market share than Android, but this isn't Windows to Mac, it's more like Mac to Linux, or I dunno, AmigaOS to RISC OS.
There are a vast range of companies in the phone market - none of them have a Windows like share, but for the larger companies, look at someone like Nokia.
I'm astonished at the sheer ignorance of the reality of the mobile market here - that people continue to propagate this myth that Apple are not only in the lead, but have a monopoly, when neither is true. Slashdot was once a place to come where people knew about the tech industry - sadly not anymore.
... but one has to wonder if technology based vendor lock in for music will remain a valid strategy forever
Um...what technology based vendor lock in?
You do know that not a single track sold on the iTunes store since April has had FairPlay DRM, don't you?
Dan Aris
Fun. Free. Online. RPG. BattleMaster.
Java vs. Objective-C is a non-starter compared to what libraries are available to each platform.
Most serious game developers on the iPhone aren't even writing much Objective-C - they often use a framework like Unity, which lets you script in Javascript or C#.
Even those using some of the free frameworks like Cocos2D are spending more time thinking about Cocos objects than they are about Objective-C syntax, which is pretty easy to pick up. Syntax is only a tiny part of any modern platform, it's all about libraries... and even for application development the iPhone has a richer set of libraries than does Android (though Android is pretty close).
"There is more worth loving than we have strength to love." - Brian Jay Stanley
I wrote the iPhone version of Repton primarily in C++. It is easy to mix Obj-C and C++, and I prefer C++ for OpenGL usage. A few UI items I implemented using the Cocoa Obj-C interfaces because Interface Builder is so pleasant to use.
Any one suggesting iPhone development is limited to Obj-C is inexperience in iPhone development. Any one suggesting Obj-C is hard to use compared to Java may have a point, but primarily because the Java IDEs are so good compared to XCode. As far a game dev goes, I prefer C++ to Java especially the OpenGL bindings, and I think game dev benefits from new/delete control one has in C++.
The biggest strength the iPhone platform has is that the screen sizes are all the same, which makes game development much easier. You can optimize for that resolution and the standard set of inputs, instead of having to accommodate some people without multi-touch, some people with a keyboard and some without, all with different screen sizes that may affect the playing field.
The iPhone game developer does have the same issues as far as 3D power though, because the 3Gs and newer Touch devices support a more advanced version of OpenGL than does the original 3G platform (and remember, those are still being sold new!). So you have to decide if you want to support just one platform or program to allow for downgraded capability on some devices (which Apple makes about as easy as it can be I think, but it's still some work).
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Once again, Apple shoots itself in the foot with their closed architecture and rigurous standards. With Tegra and Snapdragon coming to Android devices Apple is going to lose the hardware edge it has right now on Android devices and be left with no edge other than the "cool" factor; I'm not claiming the iPhone is going down in flames, it'll still do well. However, in terms of market share it will definitely go down to 3rd or 4th place in the market. I'm not an Apple hater, their products are solid, albeit overpriced. I am a proud Android user, I had the choice between the two devices and I went with a G1 over an iPhone because I saw its potential to become the top dog in the mobile market. Is Apple wrong to stick to its mentality? I wouldn't say that necessarily, they've enjoyed the No. 2 spot and laughed themselves to the bank every year while enjoying consumer popularity as opposed to the usual Microsoft hatefest.
The Android Market is open to all
But remember we are talking about games here.
We are not talking about Flash players or Google Voice or apps that skin the home screen.
For game developers, there has basically almost never been a problem with rejections outside QA issues (like crashing). So how is the iPhone market really less open for them? You can market your game any way you like to take users into the app store, and many more people are likely to see your game on the iPhone just browsing for games.
I'm sure the Android game market will improve with a lot of new devices going out, but you'd have to be mad at this point to not put a game on the iPhone first, and then decide if you would see enough return to port to Android.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
If you are making your platform choice based solely on the primary development language of the platform then you might not be ready for game development. The knowledge and understanding necessary for making something as complicated as a video game transcends programming language.
Anything from Bloom/HDR to Anisotropic filtering back all the way to 3d textured FPSes. The jump from, say, Doom to Quake was entirely driven by uptake of hardware 3d acceleration.
Bull. It was (really) 3D and fully software rendered out the box. The 3D part is what drove Quake's success, not hardware. Everything in quake that actually took advantage of 3D hardware was a hack bolted on later. Like transparent water.. hehe.
Portal was launched simultaneously on PC and console, but it plays far better with a mouse.
That's an opinion I have Portal on PC and on my 360 and its easier with the mouse but it was more fun on a console because it took a little different skills.
Anything can be found funny, from a certain point of view.
Well, I can tell you that getting the original Half Life game was the motivation for me to buy my first video card solely with 3D graphics capabilities in mind. The only time I can think of that I upgraded my system specifically for a game. (Well, I upgraded my last system because I really wanted to play Fallout 3, but it wasn't the ONLY reason.) I still remember trying to play Quake 2 on my old S3 with no floating point built into the CPU. It was like watching a very jerky slideshow... Was probably getting like .3-.5 frames per second.
"But this one goes to 11!"
but the possibility of potential growth
Don't step in all that potential.
Why bother
While 90k+ apps & over 2bln downloads makes it harder to get noticed, those numbers say it all.
I've used a few Android phones and I like them. But the thing that makes the iPhone great to develop for (after you get past obj-c hurdle, the api's are actually really good) is that it's *standard*. One form factor, end of story. I can't help but think Android is gonna fall into the same hole that J2ME did when it tried to support everything. Already developers are maintaining separate branches for separate devices for Android. I've developed J2ME apps before and they are a f-ing nightmare. That platform never took off for a reason, because there's *too much* choice and diversity. Everything to all people; good luck.
There are also no where near as many Android users as iPhone and so developing for that platform with the intent to make some money on your app is not very plausible at this point. Maybe in a few years, maybe not. (Plus I hate Eclipse, so much unnecessary bloat, just like Java. I want tools that are fast and that don't require 5mil downloads of some frameworks I'll never use. But the Eclipse thing is only my hang up and I'm sure most Android devs won't care.)
So as a developer what makes more sense? 5 code bases for 5 Android phones - all with different form factors / features - and relatively little money for all your toil? Or one platform and the chance to hit it big? It's the same argument on a PC; develop for the huge Windows market, or everyone else?
The jump from, say, Doom to Quake was entirely driven by uptake of hardware 3d acceleration. If you decide to "not see" those as innovation, well, that's your choice.
Wrong. Quake was software rendered. Quake II encouraged hardware rendering but was still software rendered for many people (Unreal did the same). It wasn't until the time of Quake 3 that hardware 3d acceleration really took off.
1). I don't really care about innovations done for "scalability" done for PCs. With a console, you know exactly what everyone has, therefore you can optimize your art assets, audio assets, and your engine to run on that specific hardware. With a PC, you're wasting time trying to figure out how to dynamically determine if this player has obscure graphics feature C and dealing with turning it on or off. That's time that could be spent on real innovations, such as gameplay, that the "market" (players) actually care about.
2). Console generations are typically longer, than graphics card generations. This gives the developers more time and experience with the hardware, and the ability to do amazing things on it a few years after its launch that no one thought possible at launch. And these innovations are available to everyone who bought the console, not just those that decided they have the money to spend on 8 nVidia cards running at once.
3). There are plenty of "low-end" systems out there; they are called handhelds, and there is some terrific innovation going on there in trying to get more graphics power from their already limited processors. Take Square-Enix, for example. When they ported Final Fantasy III to the DS, they wanted to include some FMV cutscenes. Unfortunately, the processor for the top screen wasn't powerful enough to draw it alone. So they innovated, and brought in the processor for the bottom screen to help.
First you say that Dwarf Fortress couldn't not exist on a console, then you laud it for its portability. Wouldn't that portability lend itself to being ported to a console?
About the only point that still stands is the modability of PC games, which I will concede. Most developers are quite good at packaging the same tools they used to create the game, and giving them to the community at release or shortly after.
Objective C is the retarded inbred child of C and C++ after that one night they hit the sake and redbull!
So you are saying there arent hundreds of games for the iphone on torrent sites?
No, it's actually the purely object oriented, dynamically typed, late bound, garbage collected, message passing, compiled-to-machine-code child of C and Smalltalk.
My other account has a 3-digit UID.
With C++ filming it all....