Wanting to make games for android
Hi beside answering, I would like to ask your experience level in programming and/or unreal engine? Because to me, based on what you wrote, it looks like you are just starting out in game-dev. land, and if that is the case I suggest focusing on learning a bit of programming and game development concepts with the basics of the engine you are planning to use (in this order) before jumping into the development of a game like Castle Crashers because that is already going to take a solid skill level to finish. Especially no 3d and no online, although an engine can help you out, that is just too much to tackle at first!
If you've settled on unreal currently there is two supported ways to program logic and features: C++ which is a bit harder but really flexible and Blueprints which is an easy to use but less flexible visual scripting language for the engine. If you don't have much programming experience or you don't plan on becoming an expert in this field the later one is a good choice.
Tips on where to start with unreal and android development:
https://docs.unrealengine.com/latest/INT/Platforms/Android/GettingStarted/
As I know android development for unreal is not yet streamlined due to the dev. team focusing more on desktop and console targets. Works perfectly but there may be less resources if I'm not mistaken.
Another really beginner friendly and popular choice for cross platform development is Unity.
Works like a charm on many platforms and millions of tutorials can be found on the net for it. Supports C# scripting, which is really similar to java and it is a much more beginner friendly language than C++.
Another option if you are really new to this whole thing is Game Maker: Studio, but it is pretty limited in feature set compared to the other two contenders mentioned.
Blog | Overburdened | KREEP | Memorynth | @blindmessiah777 Magic Item Tech+30% Enhanced GameDev
Well...I don't have any experience in programming or the unreal engine. And I'd rather stick with unreal because, well personally I think it's ridiculous that unity charges 75 bucks a month just so you can get your games published, I can't afford that kind of money. So, would unreal be a bad idea for android game development?
And should I learn java, c++ and c#?
Learning more languages is generally useful, as it improves your view on strengths and weaknesses of each language.
I think it is however better to first learn one language well, before you move on to the next. Pick one language, and start writing simple games. For C++, I'd recommend doing a few text-only games, like hangman or higher/lower, and then move on basic graphics, like pong, tetris, etc). Once you have done that, you have a basic understanding of programming and the programming languages, and you have seen the global structure of a game.
Many programming languages have a lot in common, so learning another language later is easier after you have seen the basic ideas of one language.
If you try to do all languages at the same time, you'll get confused, as different languages do really different things even with a simple statement like "a = b;". By knowing at least one language well, you have a base to compare against, and you can focus on the differences rather than everything in every language.
Unreal isn't a terrible choice. It has less support, but their device compatibility list has an enormous list of "expected" and "not supported" entries. They are working on them, so go that route if you want.
As for learning languages, that's best done before jumping in to making a major game. Since you decided to put engine before language, if you go for Unity you'll want to learn C#, if you go for Unreal you'll want to learn C++.
Wait, so hypothetically speaking, if I were to make an android game with the free version of the unity engine, and I made under the $100,000 year mark, I wouldn't have to worry about the pro version?
Also, since alberth said go for 1 language at a time, would c++ be another good language to learn for unity, or instead just focus more on c#?
You could also supplement the answers above by reading the forum FAQ
can't help being grumpy...
Just need to let some steam out, so my head doesn't explode...
Since you decided to put engine before language, if you go for Unity you'll want to learn C#, if you go for Unreal you'll want to learn C++.
Also, since alberth said go for 1 language at a time, would c++ be another good language to learn for unity, or instead just focus more on c#?
What frob is trying to say, is that after picking Unity, you don't have a language choice anymore, since Unity can only be programmed in C#.
Likewise, if you want to program with Unreal, there is only one language you can use, namely C++.
It's good to learn multiple languages, but C++ is useless for Unity, and C# is useless for Unreal.