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.

Stefan Fidanov

My main goal is at the end, after I finish this OpenGL stuff, to be able to draw a figure. More precisely a pawn, a static pawn with the size and color I want. It will have only one main color at first, so as to be easier to implement. I am not a designer so it will be difficult to create something more compelling on my own. An idea, at first the pawns should be cubes. Once done, I should make a function that can import models from some popular formats, and find a gallery with this format.
I've been reading recently OpenGL ES Programming Guide from Addison and Wesley, which has almost everything you need to know. At the same time, some simple topics are discussed in too much length or repeated too much, and thus they seem much more complex than they really are. All in all, a very good book.

Thursday, November 04, 2010

OpenGL ES, shaders seems to be very, very powerful. The only thing that I am a little bit worried that there are tons and tons of functions and variables. In the same time things are getting more and more clear, the main thing I am not sure now is about the coordinates. What are those coordinates that I give to the vertices array? How are they connected with the screen size?
I have decided. I will read about OpenGL ES and the try to modify a little bit the Qualcomm code. Then a little bit more and I will do this until I end up with a code that can load and draw static 3D models at specific position. Once done I would have the first milestone reached. Wish me luck :-)

(this blogging thing is better then twitter when it comes to expressing your self, twitter is great for news and short sharing)

Wednesday, November 03, 2010

Restarting my blogging :-) My first post here. I will write in English for wider audience. I will use the blog to express my self and free my thoughts. Hopes it helps me to be more creative.