Post subject: Android game development?
Judge, Skilled player (1289)
Joined: 9/12/2016
Posts: 1645
Location: Italy
What are the best softwares for developing games for Android smartphones and tablets? Also, what are the best documentations for learning from zero?
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Noxxa
They/Them
Moderator, Expert player (4139)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
It depends on what you want to get out of it, how much/what kinds of relevant experience you have, and how advanced you want to get into it. First off, if you don't have at least some basic programming experience with a relevant (or similar enough) programming language, I would recommend doing that first. Struggling with both the language/programming basics and the device-specific interface or libraries all at once is asking for a painful experience. So look up a simple tutorial for Java/C#/etc first if you don't have such an experience. What language exactly, will depend on what your next plan is. Ideally, get at least some basic experience on game programming too (not mobile game specific), to get familiarity with game engine basics like drawing, game update loops, etc., that'll also help understanding the process later on. Second, for Android-specific matters, there are a few different ways to go. I'm not listing them all, but here are a few relevant and practical options: A) Get Android Studio and SDK Tools. This is the official app development suite, which can also be used for game development. It allows a lot of flexibility and has exhaustive libraries for basically everything that an Android phone or tablet can do. However, it's probably harder to get something going with it than with option B. B) Use a game engine such as Unity3D that can deploy to Android (will also require the Android SDK tools). This is probably the simpler option for someone with less programming experience, and allows you to focus more on the game development part than on mobile or Android specifics - you can just develop a game normally on PC, and then worry about the deployment to phone/tablet part later. Unity3D can use C#, JavaScript, or Boo - in practice I find C# is used in the (vast) majority of cases, so it's easiest to find help for that. I would recommend this if you don't have significant programming experience (and probably just in general, for that matter). Pick up your tools of choice outlined above, read up on tutorials and documentation about it, then just try to get going! See how long it takes for you to get stuck at something, try to find a solution for it, and repeat. Eventually it'll get somewhere. As for documentation links, you can easily find them for whatever specific software or programming language you're using in question (just google 'X documentation' where X is the tool or language in question, add more specific queries as necessary). Tutorials, likewise. Look for official guides from the software's or language's developer's site in particular.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Judge, Skilled player (1289)
Joined: 9/12/2016
Posts: 1645
Location: Italy
Thanks for your reply, it's exactly what I asked for! By the way, you asked for details that I should have specified earlier; I'll go in order: First, I'm right now only having some ideas for a game that would require to store some data in order to resume the game after opening the app again; then I also want the game to support multi-touch. About the game engine, I want to write it by myself, but I'm proably go with a simpler solution for the graphic engine. I have the basics of game programming (drawing, input poll, etc): I learned how to program games with Allegro, that is literally: "Allegro Low LEvel Game ROutines". To be more specific: it's a free C and C++ library, which recently got support for Android. Then about what to choose... Of course I already considered going with the official Android development package, but it's probably overkill, not to mention that I don't posses a PC with that meets the system requirements. About the engines, I've got my interest on these ones: Allegro, SFML, SDL, and of course Unity3D. So I have two questions now: is multi-touch support available from everywhere, or is it necessary to stick to specific software environments? Second: how do I protect my software from being stolen?
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Noxxa
They/Them
Moderator, Expert player (4139)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
If Allegro is what you're familiar with, then try using that and see how far you can get with it. If that doesn't work out, then you still know what other options are available to try out.
ThunderAxe31 wrote:
is multi-touch support available from everywhere, or is it necessary to stick to specific software environments?
Whether it's available depends on whether each respective API implements it or not, so I can't give an universal answer to this. The official SDK naturally does, Unity3D does, I'm not familiar enough with Allegro to know whether it does, and for anything else that's also another question. It's up to you to figure out depending on what you're using (or want to use).
ThunderAxe31 wrote:
how do I protect my software from being stolen?
Official App licensing or Anti-piracy. Besides that there are plenty of other tools or tricks out there as well, like code obfuscation/ProGuard. They won't perfectly stop anything (in the world of piracy, practically nothing does), but they'll make it somewhat harder. However, that isn't something you should really have to concern yourself about yet when you're just starting to make your first amateur app.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Demon_Lord
He/Him
Joined: 2/20/2011
Posts: 80
Location: Chicoutimi, Qc, Canada
Regarding piracy protection, besides the "default" ones that Mothrayas mentioned, don't waste your time on this stuff if you value your time at all. Take the many days it would take to get something that even amateur pirates will break in a few hours and fix bugs or improve your game instead. The extra downloads brought by an improvement in quality will very much offset the losses to piracy. Also remember that pirates have friends too, who might end up getting a legit copy of your game. Why waste time to people who will not pay anyway? If you need server code or resource transactions between players, that's a hole lot harder to get right and you might want to use existing services instead. Managers and people without a clue want piracy protection, but it is not worth it.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Demon Lord wrote:
Managers and people without a clue want piracy protection, but it is not worth it.
At least on iOS, in-app purchases can be verified in such a manner that they can't be cheated without modifying the executable binary of the program itself. Anybody who has a rooted device and the proper software installed can cheat in-app purchases for any game (that performs no checks), with zero knowledge or skill required. However, an app that performs the check it's significantly harder because the game binary itself needs to be hacked.