Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I learned some OpenGL ES and some shader coding. But is it really a necessity for developing Android, iOS and windows phone games? Windows phone I'm 99% sure that it is not even supported but have not researched it yet.

share|improve this question

closed as not a real question by Tetrad Dec 10 '12 at 18:46

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

In short, no. I've had a lot of fun recently developing 2d games for iOS that don't directly use opengl. – Orin MacGregor Dec 7 '12 at 20:20
what about 3D games? – John Demetriou Dec 7 '12 at 20:20
I haven't done 3d yet, but I would think if you use something like Unity you won't need it. However, I have no experience with Unity so I may be mistaken. – Orin MacGregor Dec 7 '12 at 20:38
"Is it necessary" well what exactly are you trying to do? – Tetrad Dec 10 '12 at 18:46
up vote 3 down vote accepted

Speaking to Android specifically, there is a 2D drawing API available as documented here that is not OpenGL ES based:

If you aren't specifically looking to avoid OpenGL ES entirely and are just looking for a convenient abstraction on top of it to prevent you from having to work with it directly there are more options. For instance, while I haven't used it personally, starting with Android 3.0/API 11 it is possible to use hardware acceleration for the aforementioned 2D API:

It does use OpenGL ES "under the sheets" but you wouldn't need to concern yourself with the details and/or create custom shaders. If this is acceptable you might also want to consider something like AndEngine:

With iOS, you probably want to check out their documents on Quartz 2d:

In terms of 3D, there are libraries that can buffer you from OpenGL ES a bit. I used the Irrlicht port for API level 8/2.2 a few years ago although it looks a bit dusty now:

You might consider libgdx:

share|improve this answer

When you want to create 2d games, then no, you won't need it.

When you want to do 3d games, you should first consider the available 3d engines and do a cost/benefit analysis of creating your own 3d engine. In most cases, this analysis will tell you that using an existing engine will allow you to bring your game to market in a lot less man-hours.

Every software developer has the urge to reinvent the wheel. But most of the time it's wasted effort, because others have already done it better than you could ever do it, and they offer it for a fraction of the price it would cost you to repeat their work. An important skill for every software developer is the ability to suppress ones pride, and realize when it's more efficient to buy an existing solution instead of inventing an own.

But note that "free" solutions aren't really cost-neutral: you still need to invest time and money to understand their API and integrate it into your project. An expensive one which comes with good documentation and support can turn out to be cheaper than a free one with poor documentation and without professional support.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.