Android Game Development, Where should i start?

Started by
14 comments, last by exalted 11 years, 6 months ago
Hi, I'm really interested in making 2D games for smartphones (specially android) but don't know where to start and what to learn. I'm only know some c++ basics, Should i continue learning c++ or pick another language? What should i do after i learned that language? How much time it takes to learn every necessary things? Help me please, Thanks smile.png
Advertisement
Your best options for targeting Android are Java or C++. There are alternatives, but they're less well supported and in some cases seriously under-developed -- the main alternative worth mentioning is probably Unity3d (yes, it can be used for 2d as well!) which can be programmed using JavaScript, C#, or Boo (which is similar to the language Python), and is quite a powerful engine. If Unity is something that interests you, research it separately, there have been plenty of dicussions of it and there's lots of information on the website. Otherwise if you'd like to use Java or C++ I would advise spending some time learning your language of choice on PC before you attempt Android development, as you'll then be able to concentrate first on learning the language itself -- as well as general programming skills common to any language and environment -- and can then separately focus on the specifics of the Android platform.

Personally I would suggest Java as the more suitable option for Android development, as it's generally considered more beginner friendly, and you'll find a wealth of documentation and examples for Android. It also performs very well on the majority of Android devices, some of which even directly execute Java bytecode.


Either way, you'll want to head to the Android Developers portal, and get the SDK (or NDK if you choose C++) and tools. The site also provides training tutorials, API guides, a reference, The training material should walk you through correctly setting up and using your tools as well as getting you started with the basics of Android.




How much time it takes to learn every necessary things?

Unfortunately no one can provide a real answer to that. Every learns differently and at different speeds, and different people will put in differing amounts of time and effort. You could potentially write your first Android app within a couple of weeks, but it also wouldn't be unexpected for it to potentially take between 6 and 12 months. Just work at whatever speed you are comfortable and get help if you become stuck.



Alternatively, if you're not really interested in learning programming you could try some of the tools mentioned in my recent posts "how to make games without programming" and "more ways to make games without programming". If this is something that interests you, be sure to read the websites carefully so that you're sure of what capabilities each package offers, and have a good try of the free or trial versions offered before paying any money; these are good products for people who approach them with reasonable expectations, but some of them are reasonably expensive, so you want to be sure you'll be happy with what you're getting and are aware of any limitations you might encounter. Making a game is still hard, and these programs are not a shortcut that makes it easy -- they're just an alternative that lets you create the games with minimal or no programming, but still require you to put in lots of work.


Hope that's helpful! smile.png

- Jason Astle-Adams

Ah this is a good place where I can ask a question about android as well. (this question continuous on the OP's question)
Android games give you profits. But how much? I can't find everywhere how much % you get from each buyer.

Assume, I've written an android game that costs 1€ on the android store. My game is decent so I have 10 000 people buying my game. How much profits will I have? Would be nice if someone could answer on this. smile.png


~EngineProgrammer

Android games give you profits. But how much? I can't find everywhere how much % you get from each buyer.

See the Developer Distribution Agreement -- specifically section 3 "Pricing and Payments":

3.2 The price you set for Products will determine the amount of payment you will receive. A Transaction Fee, as defined below, will be charged on the sales price and apportioned to the Payment Processor and, if one exists, the Authorized Carrier. The remainder (sales price less Transaction Fee) will be remitted to you. The "Transaction Fee" is set forth here and may be revised by Google from time to time. Developer is responsible for determining if a Product is taxable and the applicable tax rate for the Payment Processor to collect for each taxing jurisdiction where Products are sold. Developer is responsible for remitting taxes to the appropriate taxing authority.
[/quote]
At present you receive 70% of sales. You might also lose some money if there are additional transaction fees charged by your bank or service providers, and may have to pay a fee for currency-exchange if applicable. You would probably also need to spend some money on marketing for your app to become popular and sell well.

I don't have any stats to link, but it seems that the "freemium" business model tends to do better on Android, whilst you might have more luck getting up-front sales in the iOS app store.

- Jason Astle-Adams

Nice answer, Thank you smile.png
It seems learning c++ is better, But after that i need use a game engine, right? is there any game engines that use c++ language, be 2D and for android?

What people use for creating 2D sprites? some people said "adobe photoshop" but it's so huge!
I'd actually strongly recommend Java rather than C++ to a beginner interested in Android development. Java is generally considered to be a simpler language for beginners, and you'll find more examples and documentation for programming Android with Java than with C++. Read the following notice from the Android NDK homepage:

The NDK is a toolset that allows you to implement parts of your app using native-code languages such as C and C++. For certain types of apps, this can be helpful so that you may reuse existing code libraries written in these languages and possibly increased performance.


Before downloading the NDK, you should understand that the NDK will not benefit most apps. As a developer, you need to balance its benefits against its drawbacks. Notably, using native code on Android generally does not result in a noticable performance improvement, but it always increases your app complexity. In general, you should only use the NDK if it is essential to your app—never because you simply prefer to program in C/C++.
[/quote](Emphasis mine.)

It is however completely your choice, and if you really prefer C++ you should go with your own preference. I wanted to stress my recommendation of Java rather than C++, but it's your choice and I won't continue to push the point if you've really considered your option and still want to use C++.



But after that i need use a game engine, right?

Not necessarily. An engine can be helpful for developing more complex games without having to do all the work for yourself, but often for simpler games or if your needs are particularly unusual it can be beneficial to simply write your game using the functionality in the SDK or a simple lower-level framework.

If you'd like an engine or framework for targeting Android from Java you might consider LibGDX or Angle. There's also an Android version of Slick in the works that would likely be a good option -- it might be worth looking at after you've spent some time learning on PC first.

If you'd rather C++ and would like a framework you might look at Allegro or SDL, both of which can also be used on PC whilst you learn beforehand.



What people use for creating 2D sprites?

Any graphics software package. You might look at InkScape for vector art, or GraphicsGale, GIMP, Paint.NET or PhotoShop for pixel art. This is really a huge topic of it's own though, and I'd suggest checking out our Visual Arts forum and asking any art questions you have there.



I hope that's helpful! Do what you prefer, but consider your options. Good luck! smile.png

- Jason Astle-Adams

I don't like Java, i'm more comfortable with c++, Can you recommend some books?
Thanks you answers is very good :)
Some libraries that are c/c++ like allegro that can run on android might be a good option for you. It's either allegro can do it or they are working on it. Either way Idk how it works, but I would check it out. Someone else might know some more libraries that can do the same thing.
I'd suggest C++ Primer 5th Edition for learning C++. It's not Android-specific, but it's an excellent book for a beginner to C++ which covers the most recent updates to the language and encourages best practices. If you're looking for something you can obtain free-of-charge you might try Bruce Eckel's Thinking In C++, which has not been updated to cover the latest standard but is otherwise an excellent book. You could also consider an online reference such as LearnCpp.com.


I'm not personally aware of any Android specific books, but if you get a solid grasp on C++ before attempting Android development the official documentation provided by the developers portal (linked above) should be more than sufficient.



[size=2][s]...and on a slightly separate matter, it's very rude of you to publish the contents of my response verbatim elsewhere without permission.[/s] EDIT: Sent a private message to deal with this outside of the forum.

- Jason Astle-Adams

Oh, and don't forget to check the Mobile and Console Development forum faq. smile.png

- Jason Astle-Adams

This topic is closed to new replies.

Advertisement