Jump to content

  • Log In with Google      Sign In   
  • Create Account

Android Game Development, Where should i start?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
15 replies to this topic

#1 omidh   Members   -  Reputation: 129

Like
0Likes
Like

Posted 05 October 2012 - 12:39 AM

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 Posted Image

Edited by omidh, 07 October 2012 - 01:35 AM.


Sponsor:

#2 jbadams   Senior Staff   -  Reputation: 18575

Like
7Likes
Like

Posted 05 October 2012 - 04:00 AM

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! Posted Image

#3 EngineProgrammer   Members   -  Reputation: 295

Like
0Likes
Like

Posted 05 October 2012 - 04:29 AM

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. Posted Image


~EngineProgrammer

#4 jbadams   Senior Staff   -  Reputation: 18575

Like
4Likes
Like

Posted 05 October 2012 - 04:46 AM

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.

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.

#5 omidh   Members   -  Reputation: 129

Like
0Likes
Like

Posted 05 October 2012 - 05:03 AM

Nice answer, Thank you Posted Image
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!

Edited by omidh, 05 October 2012 - 05:05 AM.


#6 jbadams   Senior Staff   -  Reputation: 18575

Like
3Likes
Like

Posted 05 October 2012 - 06:05 AM

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++.

(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! Posted Image

Edited by jbadams, 06 October 2012 - 01:39 AM.
Corrected a typo.


#7 omidh   Members   -  Reputation: 129

Like
0Likes
Like

Posted 05 October 2012 - 08:15 AM

I don't like Java, i'm more comfortable with c++, Can you recommend some books?
Thanks you answers is very good :)

#8 rockstar8577   Members   -  Reputation: 259

Like
2Likes
Like

Posted 05 October 2012 - 08:25 AM

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.

#9 jbadams   Senior Staff   -  Reputation: 18575

Like
3Likes
Like

Posted 05 October 2012 - 07:37 PM

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.



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

#10 jbadams   Senior Staff   -  Reputation: 18575

Like
2Likes
Like

Posted 05 October 2012 - 07:59 PM

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

#11 Buster2000   Members   -  Reputation: 1664

Like
1Likes
Like

Posted 06 October 2012 - 03:59 AM

If you want to develop apps for Android go with Java, if you want to write games then go with C++. C++ will alow you to support a wide variety of platforms other than Android and from your post it does say you are interested in smartphone development not just Android.

A good book to get you started would be this one:
http://www.amazon.com/Graphics-Programming-Android-OpenGL-Programmer/dp/1119975913/ref=sr_1_1?ie=UTF8&qid=1349517217&sr=8-1&keywords=Game+and+Graphics+Programming+for+IOS+and+Android+with+OpenGL+ES+2.0

It goes through all the steps of writing an engine that supports Android and iOS and then creating a FPS with the engine.

If you would like to use an off the shelf engine then I can highly recommend either Cocos2d-x which is a C++ version of Cocos2D that supports Android BB10, iOS, WP8 and a couple of others or the RIM gameplaySDK which is a lightweight framework that supports Android, BB10, iOS, PC and Mac development.

#12 Strategy   Members   -  Reputation: 187

Like
2Likes
Like

Posted 06 October 2012 - 05:23 PM

As jbAdams says, the smart way into Android development is Java. Java is the native language of the platform, and using it means that you'll be programming to the strengths of the platform, rather than fighting its peculiarities.
Michael A.Designer/Developer
A Brief History of Rome
Pirates and traders

#13 Turok   Members   -  Reputation: 123

Like
1Likes
Like

Posted 06 October 2012 - 11:13 PM

Did you consider Moscrif SDK? It is based on JavaScript, so no need to learn any advanced language like C++ or Java and the result is the same as the code will be transformed to native. Moreover, you will be able to reach much bigger audience with your game because the game will be ready of Android, iOS and other platforms. There is a free license available without any hidden fees.

Here is the official website: http://moscrif.com

#14 omidh   Members   -  Reputation: 129

Like
0Likes
Like

Posted 07 October 2012 - 03:47 AM

Thank you but i don't like Java!
I take a look at Cocos2d, It seems suitable for me, Cross platform and use c++ Posted Image

I have a huge and detailed book, C++ primer plus, Fifth edition by Stephan Prata, Is it good?

Edited by omidh, 07 October 2012 - 03:47 AM.


#15 jbadams   Senior Staff   -  Reputation: 18575

Like
1Likes
Like

Posted 07 October 2012 - 04:27 AM

I have a huge and detailed book, C++ primer plus, Fifth edition by Stephan Prata, Is it good?

Yes, that's an excellent book.

#16 exalted   Members   -  Reputation: 99

Like
-1Likes
Like

Posted 17 October 2012 - 10:18 AM

Depending on the size of your project, you could always hire a company to develop the app for you. Besides learning your programming language of choice, continue to stay on top of the latest happenings in mobile development!

Zco corporation has a regularly updated blog that tracks trending mobile app dev issues: http://blog.zco.com/




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS