Friday, November 05, 2010

From my inquiries during the last 3 days at I found out that right now there is no real 3D game engine or even render for Android. There are a few interesting 2D engines, but no 3D. Perhaps there is some proprietary known only to the gurus in this field.

One other thing is that I could not find good OpenGL ES tutorials. There are some, but I find them very limited.

There is only one conclusion: I should make such tutorials and I should create at least rendering engine, better a fully functional game engine for Android.

Problems: First, I am a real beginner concerning 3D programming. Second, I can not draw and I do understand very little of design. Third, I like simple things and I am a big fan of the KISS(keep it simple stupid) principle.

So how will I proceed?

Let's talk about the tutorials. They will be organized in three categories.


  • How Things Work

  • Optimize

  • Beautify

The fist category of tutorials will teach how different aspects of OpenGL ES work and how different tasks can be accomplished. The second one will bring optimizations and how we can make programs faster. The last one will be on how to make our 3D worlds more real, more beautiful and less edgy.

That's for tutorials, now the engine.

The engine will be easy to use and easy to integrate, where ever you need to integrate the whole engine or only some part of it. I will start with the rendering engine, because I feel is the integral part of the game engine and because I need such an engine now.

Rendering Engine. It will be build upon OpenGL ES 2.0 in C. Why 2.0 and C instead of 1.0(or 1.1) and Java. Simple: OpenGL ES 2.0 is supported only devices that run at least Android 2.1 and those are more powerful devices, which I consider much better for real 3D rendering. I will use C instead of Java for two reasons: first it is more portable across platforms, and second the Java OpenGL ES, is just GLES20 class in which you call the same functions as in C, with same names in the same manner and thus I do not see any real advantage in using Java, just some overhead that can slow down the whole 3D experience.

Besides that, I am not sure what a rendering engine should do :-) Let's see what I want mine to support and then we will see what the Internet thinks it should support.

1) Easier to use than OpenGL ES 2.0.
2) Easy to integrate.
3) Simple API.
4) Easy to import 3D models from at least one popular format.
5) East drawing of all 3D models.
6) Easy support of 2D and just as easy for 3D.

Hm, not very specific. It will become more specific with time.

One last thing. There is no schedule on when each of this engine and tutorial things will be done or I will be working. It is just something that is missing at the moment and I believe I should fill the gap.

Let's get to work.

No comments: