Take the tour ×

I've been trying to learn OpenGL ES 2.0 to create a simple 2D game. I bought a book on android development, but after seeing that the author uses his own SDK that implements OpenGL ES 1.0 I decided to just use online tutorials. I've been so lost trying to find out what to use. The Matrices and shaders of 2.0 confuse me and I can't find any tutorial that just explains how to texture map a simple 2D image. Basically:

  • OpenGL ES 1.x or 2.0 for simple 2D with little OpenGL experience
  • If 2.0 Any good tutorials for 2.0, I've found so many for 1.0
share|improve this question
If the mathematical concept of matrices confuses you, you need to do some background learning on the topic. That's non-optional learning for graphics programming because you are going to be using matrices everywhere. If it's just the way OpenGL handles them that confuses you... you'll still need to learn how to deal with them. –  Jonathan Hobbs Sep 24 '12 at 4:32
Do you have any suggestions on where I learn these skills? I understand the mathematical concept of matrices, just not what OpenGL does to them or how to implement them into Android via Java. –  akadouri Sep 25 '12 at 1:08
Having not learned OpenGL ES 2.0 myself I can't give you any specific advice, but I can give you general advice. I get the impression you just want to learn how to texture map something without the fuss and bother of a tutorial. If I'm right: don't be that way. Do a tutorial and let the tutorial lead you. You'll learn a lot along the way and be glad you did it. Right now I'm studying Learning Modern 3D Graphics Programming which eventually teaches texturing. It teaches graphics programming (and teaches OpenGL as a means not an end). –  Jonathan Hobbs Sep 25 '12 at 1:17
There aren't "a few simple lines" because it takes understanding the entire way OpenGL does things, and probably learning to show an image is so trivial that every tutorial that explains those things also says how to do it. Regarding the second question re here or SO: our FAQ covers that in the very first section. Ask yourself: "Would a professional game developer give me a better/different/more specific answer to this question than other programmers?" If yes, ask it here, if not it might be better placed on SO. –  Jonathan Hobbs Sep 25 '12 at 1:37
An Android implementation of Breakout, developed specifically as an example of using OpenGL ES 2.0 for a 2D game: code.google.com/p/android-breakout –  fadden Dec 14 '12 at 20:13
show 1 more comment

5 Answers

up vote 4 down vote accepted

I'd rather say, First clear your concepts with OpenGL ES 1.x then go for OpenGL ES 2.0 because the former will make your base strong and so you may not have any trouble in learning the latter one.

Overall, i believe the choice is your's. If however, you need an e-book for OpenGL ES, you can ask me for it. I shall paste the link here.

share|improve this answer
I would very much appreciate an eBook for OpenGL ES, also would recommend coding OpenGL in Java or Android's NDK in C/C++? –  akadouri Sep 25 '12 at 1:11
@akadouri i have both the books, OpenGL ES for Android and openGL ES 2.0 in C/C++. :) I just look for the concepts in them, and i code according to my requirements. Should i paste the link? –  Sid Sep 25 '12 at 4:27
If you're allowed to, i'm not sure of this site's rules. –  akadouri Sep 28 '12 at 0:59
@akadouri Here are the links. dl.dropbox.com/u/99054577/… and dl.dropbox.com/u/99054577/… Hope these will be useful to you. –  Sid Sep 29 '12 at 17:56
@akadouri do acknowledge me after you download the books :) –  Sid Oct 1 '12 at 5:23
show 2 more comments

OpenGL ES 2 is the best choice for Android if you are not seeking for backcompatibility.

Take a look at this tutorial https://code.google.com/p/gdc2011-android-opengl/ it's well explained.

share|improve this answer
Thank you, I will look that over. –  akadouri Sep 25 '12 at 1:08
add comment

ES 2.0 does have a steeper learning curve and you don't really need it to get started or learn alot of useful things about opengl programming. Even with ES 2.0, you'll probably build a fixed function library, similar to ES 1.x for drawing graphics primitives.

So I would say, stick with OpenGL ES 1.x for now and when you master that you can try ES 2.0 and shaders later. Most games only need a couple basic shaders unless you are doing something special. Here is a good tutorial for 2.0 shaders in android. http://blog.shayanjaved.com/2011/03/13/shaders-android/

Also, there are engines which do all the opengl work for you. If you like Java then maybe libGDX (http://libgdx.badlogicgames.com/) and if you like C++ then maybe cocos2d-x (http://www.cocos2d-x.org/projects/cocos2d-x/wiki)

share|improve this answer
add comment

OpenGL ES 2.0 is not more complex then ES 1.0 We switched to ES 2.0 and do not support ES 1.0 in real apps. ES 2.0 is supported on iPhone 3GS and newer. It is most iOS market now. On Android situation is similar but there are much more devices on market.

I recommend to learn and use ES 2.0 because you have to know ES 2.0 You should know ES 2.0 or both People how know ES 1.0 have to learn 2.0

ES 2.0 requires shader but you can add shader in 5 lines of code

If ES 1.0 code was compatible with ES 2.0 you could learn it first. But it is different. You will waste time learning ES 1.0 and switching to ES 2.0 later.

It is time for ES 2.0 especially if you learn something.

share|improve this answer
Do you have any suggestions on where to learn ES 2.0? I can't find any tutorials on how to do basic texture mapping. Also should I be using C/C++ though the NDK or native Java? –  akadouri Sep 25 '12 at 1:10
add comment

Well, If you are having only 2D contents then OpenGL ES 1 would be fine, but if you are intending to have 3D content then OpenGL ES 2 would be appropriate.

share|improve this answer
add comment

Your Answer


