What do I need to use to make this happen? I have no experience when it comes to making videogames, but would like to give this a shot. I have heard of both OpenGL and using Unity to make Android games before, but do not know the advantages/disadvantages to using either of these technologies. I have access to Lynda.com for training in these areas, but I'm not entirely sure which to go with.
If anyone has any alternative suggestions or can chime in with an opinion, I'd really appreciate it.
I would recommend having some first hand knowledge of android first. 1-2 small android apps to get an idea of usage of different concepts. There are good books that tell you about game programming in android. "android_game_programming_for_dummies" is one of the good books. It teaches you to build a fair 2-D game. and from there on you can move forward.
**OCP, Java SE 6 Programmer**OCM, Java SE 6 Developer**
It's worth looking at Unity if you want to create games that can be deployed across both Android and iOS. I've never used it, but I believe coding for that is typically done in C++. Unity has the reputation of being the *professional* game development platform. But you can do a surprising amount with OpenGL and Java. A significant part of the work getting OpenGL to work is modelling the world (GPUs typically only know how to render triangles, so the rest of the work is normally done by a library like GLU) and writing the shaders, which control the appearance of the triangles on the machine.
If you've never done 3D development before, my guess would be that the OpenGL (non-Unity) route might be a simpler introduction.
But this is based on very little experience :-)
Head First Android Development
You can do 3D on Android, using OpenGL ES. I have ported (not yet released) some Bioinformatics 3D code to that, from Java3D. The thing to understand about OpenGL, is that it is not Object Oriented, really. There is one god object you leverage, and that basically works like a collection of static methods, with very little object state. In fact, the philosophy behind modern OpenGL, is the less state the better. The real coding should be in the shader language.
Not being true OO means that you may want to add a layer above OpenGL and use those objects. But, really, you can do it however you like. There are actually some things that are not just handed to you when you do OpenGL, such as picking (selecting objects on the screen), and rendering text. There is no one call in OpenGL that says, 'give me the thing at screen position from mouse', nor a 'drawString' method like in Java2D. Games might not need to render text, but the picking better be there. That said, there are resources out on the web to do both.
Perseverance is best when informed.
pie. tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop