Forgot your password?
typodupeerror
Cellphones Portables (Games) Games

Game Development On Android 211

Posted by Soulskill
from the pong-on-a-positronic-net dept.
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."
This discussion has been archived. No new comments can be posted.

Game Development On Android

Comments Filter:
  • opinion (Score:4, Interesting)

    by amnezick (1253408) * on Wednesday October 14, 2009 @07:15AM (#29742771) Homepage
    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.
    • Re:opinion (Score:4, Interesting)

      by sopssa (1498795) * <sopssa@email.com> on Wednesday October 14, 2009 @07:41AM (#29742875) Journal

      It's not really a problem in PC, it can be assumed everyone has atleast keyboard and a mouse and if you're playing games, graphics card too. What it comes down to is if you have enough RAM, CPU and powerful enough graphics card and you can see the requirements from the package (or online).

      Phones are different because of the actual hardware differences. Like you said, some phones might have (multi)touch or not, physical keyboard or just software keyboard, 3d acceleration, different types of physical keyboards, different resolutions and so on. Since iPhone is always the same kind, it's easier to develop to it.

      However for Windows Mobile and Symbian game developers have usually released different versions for different devices. It might create more barrier for an indie developer to entry the market because they have to test their software on all the supported devices and make adjustments, but for studios it's not so much work. But then again, big studios port their games to all platforms; Symbian, WM, iPhone and Android.

      But Java on Android.. meh.

      • Re: (Score:3, Interesting)

        by e2d2 (115622)
        But Java on Android.. meh. One could easily say the same about Objective C on the iPhone. It's no Sunday walk in the park.
        • Re:opinion (Score:4, Interesting)

          by XxtraLarGe (551297) on Wednesday October 14, 2009 @10:19AM (#29744329) Journal

          One could easily say the same about Objective C on the iPhone. It's no Sunday walk in the park.

          A programming language is a programming language. They all have features that people like and dislike. With Obj. C 2.0, Apple has made quite a few strides in making Obj. C programming much easier, with things like properties replacing your standard setter/getter methods & allowing for dot notation. The only real pain is that the iPhone doesn't support garbage collection due to performance issues, so you still need to manage your memory. Obj. C is also pretty verbose, but with CodeSense that doesn't matter much. Most people who complain about Obj. C probably haven't spent the week or so it takes to learn all of the nuances. There's even a book out now called Learn Objective-C for Java Developers [tr.im] which helps to bridge the gap.

          • Re: (Score:3, Interesting)

            by e2d2 (115622)
            I should have been more clear, apologies - I know both objective-c and java. I don't really scoff at either one, they both have quarks but also unique advantages. I don't get attached to either one, but if someone dislikes java, I don't understand why they'd favor objective-c over it. Syntax is similar and performance issues are moot these days given the VMs out. To me it's like the old saying goes - six in one hand half a dozen in the other. I'll take either one. My initial comment is just displaying my
          • Re: (Score:3, Interesting)

            by s73v3r (963317)
            I have to ask: I've been programming Objective C off and on for a few years now (around the time they switched to Intel), and while Objective C 2 brought a lot of good stuff with it, is dot notation really that big of a deal?
            • Re:opinion (Score:5, Insightful)

              by XxtraLarGe (551297) on Wednesday October 14, 2009 @03:29PM (#29748707) Journal

              I have to ask: I've been programming Objective C off and on for a few years now (around the time they switched to Intel), and while Objective C 2 brought a lot of good stuff with it, is dot notation really that big of a deal?

              It's not a big deal for most people, but if you're coming from Java or C++, it makes it look slightly less exotic. So instead of having to write

              [myThing setThing:5];

              You get to write

              myThing.setThing = 5;

              It turns out to be about the same # of characters, so you don't really gain anything there (unless you don't like using your pinkies :-), but if it helps some people overcome their mental blocks, then it is probably a big deal for them.

        • Re:opinion (Score:5, Interesting)

          by ivucica (1001089) on Wednesday October 14, 2009 @03:32PM (#29748767) Homepage
          Company I'm working at is working on ports of our (originally Python-Ogre-based) games to iPhone and we did most of the work in C++ with OpenGL on Windows and GNU/Linux, with ObjC being a tiny wrapper added in Xcode. I did most of the work on one of those ports, and I haven't touched ObjC with a single line of code.

          Just sayin'.
      • Re: (Score:3, Interesting)

        by mdwh2 (535323)

        It might create more barrier for an indie developer to entry the market because they have to test their software on all the supported devices and make adjustments, but for studios it's not so much work.

        Indeed, but to add to that, it's far less work that porting to another platform such as the Iphone.

        A developer can pick whatever phone they like to develop for. If it turns out that some of those share a common platform (such as Windows, Android, etc) that make it relatively easy to run on other devices, in n

    • by Nerdfest (867930)
      Of course, your game console has a proper controller.
    • 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.

    • I completely agree, Apple has the advantage of having all of their hardware being the same, makes development easier, and users don't have to worry about different requirements. Other platforms like Android or Windows forces you think different, not a familiar concept in Apple land despite the fact that it's their main slogan.
    • by mdwh2 (535323)

      Personally I'd rather not return to the bad old days where every phone was incompatible with each other, but:

      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.

      There's nothing stopping you from developing for one specific brand of phones. Indeed, this is precisely why such a comparison is ludicrous - and what about all the other phones out there? Even if you stick to one brand, there are plenty of others, that sell more

  • 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.
    • by sopssa (1498795) *

      I do care about the openness of Phone, or so I always think. I love Windows Mobile (and my HTC has better interface than the usual WM one) because theres no restrictions on what apps you can install, like on iPhone and Symbian.

      But then again, why? Yes it's great when you want to install certain app and theeres nothing in way of that (as long as theres such app available), but frankly I dont use the phone so much that I really care much. I might sometimes play around with some new fancy app I found, but then

    • Re: (Score:3, Insightful)

      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.
      You're half right, the other part of the shine equation is eventually, the air of exclusivity will wear off and apple will become the next burberry and chavs will have them and then no one will want one.

      • Re: (Score:3, Insightful)

        You're half right, the other part of the shine equation is eventually, the air of exclusivity will wear off and apple will become the next burberry and chavs will have them and then no one will want one.

        Don't assume that everyone picks a phone based on who else uses it or whether it is trendy.

        Many people pick phones based on how it works and what it does - I certainly chose an iPhone on that basis, because the UI was the first one which felt like it was actually designed with a user in mind. The UI on the iPhone is good in my opinion, much better than what came before. It's quite a good phone (*if* your telephone service is good), the software is updated regularly, and in spite of Apple's control freak ten

    • Yeah, cause everyone out there is just waiting for a chance to stick it to the man (or fruit) and rid themselves of the chains of tyranny.

      Using, and developing for, an iPod touch (can't afford the iPhone) I fail to see how my hands are 'tied' or how a regular user would ever 'realize their hands are tied'. Dream on Mr. Revolutionary Geek, and make sure you fight the power of sleek designs.
    • Android phones are a usability mess.

      I was out on a smoke break with a friend of mine who owns a G1 a few weeks ago. I was also bashing out some mobile specific web app and wanted to test it with a G1.

      Because the fact that /, -, and some other common symbols are hidden in weird places on the keyboard, it took me a bit to get to my own app, even on the soft keyboard.

      I don't care what's under the hood, usability is king among consumers. Freedom? That's a huge after thought.

  • 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 old

    • 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

      • by gbjbaanb (229885)

        Amen.

        iPhone - locked down to what Apple wants you to do.
        Android - locked down to what Google wants you to do (ie Java/Dalvik development only with their own version of the app store and installation verification)

        Maemo - pure, open, Linux loveliness.

        (and then there's WebOS and Moblin too)

        ArsTechnica has a little review about Nokia's plans and the N900 [arstechnica.com]. Its step 4 on their 5-step Linux/Maemo strategy. Certainly it will set the bar higher for the other players and possibly dominate the smartphone/tablet/MID ma

  • That's depends entirely on the taste and skills of the programmer.

    • by Timmmm (636430)

      And more to the point, what about garbage collection? Every time the garbage collector kicks in the UI freezes for a short time. You really don't want this in a game (or at all really). In fact can anyone name any popular games written in Java? As far as I know they are nearly all C/C++.

      Luckily you can write OpenGL Android games in C++ using the NDK.

      • Re: (Score:3, Informative)

        by kill-1 (36256)

        This problem has been solved long ago by incremental garbage collection. Apple's Objective-C 2.0 also has garbage collection BTW.

        • Re: (Score:3, Informative)

          by Timmmm (636430)

          Android doesn't use incremental garbage collection. Or JIT for that matter.

          • by kyz (225372) on Wednesday October 14, 2009 @08:43AM (#29743233) Homepage

            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 [android.com], just like C/C++ programmers have plenty of strategies for getting good performance out of any platform.

            • by Timmmm (636430)

              It doesn't convert it to a 'different beast entirely'. It's still bytecode, and slower than native code.

              new/delete is still much faster than garbage collection, and doesn't freeze the UI like Android's GC does.

              Check out this paper, they found that java with manual free's performs much much better than GC java, especially when memory is limited (as in phones):

              http://www-cs.canisius.edu/~hertzm/gcmalloc-oopsla-2005.pdf [canisius.edu]

              • by radish (98371)

                1) That paper is 5 years old. Things change.
                2) They actually say that GC (from 5 years ago) is just as fast as manual malloc/free if you have plenty of RAM. Not true on a cellphone, sure, but true in many cases.
                3) They didn't look at the Android GC impl, for obvious reasons.

            • by radish (98371) on Wednesday October 14, 2009 @09:42AM (#29743827) Homepage

              I have no idea about the Android JVM, but in a regular Java JVM object creation is actually significantly faster than malloc. This article [ibm.com] is quite old, but shows that even back in 1.4.2 days it was nothing to be scared of.

        • by drerwk (695572)
          Yes, Obj-C now support garbage collenction - but not on the iPhone OS. http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html [apple.com]
  • Give us C++ (Score:2, Insightful)

    by kyashan (919683)

    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 li

    • Re: (Score:2, Troll)

      by radish (98371)

      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.

      I can see wanting to stick with C++ because it's what you're used to or what you like. But Visual Studio? Seriously? I have to use that POS every day and to be honest it's only made even remotely usable by adding ReSharper, which gives you some of the features from IntelliJ. The best Java IDEs are leagues ahead of VS.

    • by Hast (24833)

      You're welcome [android.com]. (Android NDK allows for native development.)

      You still need a Java wrapper to handle communication with Android (keypresses and such) but the game can be written entirely in C/C++.

      I'd say as far as development friendliness you should take into account that you can develop for Android on many platforms. For iPhone you must have OSX.

  • relatively more programmer-friendly

    [citation needed]

  • 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 lib

  • 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
  • by Lysol (11150) on Wednesday October 14, 2009 @12:31PM (#29746301)

    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?

"But this one goes to eleven." -- Nigel Tufnel

Working...