Android`s JmeSystem class

After several changes to src/android/* classes, I was able to compile and run Test.java in the android SDK emulator and on Droid X. There is no statistics on the screen and the input system is broken.



I’m going to try to create a separate build.xml file that builds and packages the android part of jme3.



Why do we have two different classes with the same name and package (com.jme3.system.JmeSystem)? Why dont we have an AbstractSystem and two implementations for Android and Desktop?



Thanks.

Fantastic work, look forward to trying it out when its ready. Will there be any limitations in what classes you can use from JME such as terrain etc?

I just compiled it. There is nothing fantastic :slight_smile:



Actually right now the Android Renderer does not use shaders, so there are lots of limits. We cannot use anything but simple textured objects.

But now android 2.2 supports shaders, so may be if the android renderer gets rewritten, we can get something useful from jme3 on android.

antonyudin said:
But now android 2.2 supports shaders, so may be if the android renderer gets rewritten, we can get something useful from jme3 on android.

Yes, that is happening right now, somebody is working on that.

Can I get an email address of this person that works on creating a shader based android renderer?

I’m planing to try to port the lwjgl renderer to android OpenGL ES 2, but if this person already had made some progress, that would be really nice.

antonyudin said:
Can I get an email address of this person that works on creating a shader based android renderer?
I'm planing to try to port the lwjgl renderer to android OpenGL ES 2, but if this person already had made some progress, that would be really nice.

Sent you a PM :)
erlend_sh said:
Sent you a PM :)


Shouldn't contact have just been made within the forum? ;)
sbook said:
Shouldn't contact have just been made within the forum? ;)
Ideally yeah, but Elizeu the Android developer is being hard to reach even by e-mail atm, so we're better off with direct contact at this point. Also considering he is not a native English speaker and not so comfortable with the language, I think he'd prefer e-mail. Hopefully someone like @antonyudin here can be our "man on the ground" for greater transparency :)

It is always better for a person with an actual android device to develop for android.

We counted on Elizeu to do so, so said he succeeded, but when asked to commit the code, he disappeared.

Anton, if you want, I can give you access to the googlecode repository, so you can commit any improvements you have to the jme3-android package.

antonyudin said:So let me first achieve some results and then we can think about commiting something. It would really helpful if I got the latest code from the android guy. For now I will try to write the renderer by myself.
That sounds great. You'll have our full support. Once we're seeing some progress I've got a small network of Android developers who'd be interested in seeing what we've got. If you're good with collaborations, I'm confident I could hook you up with some very capable Android programmers. Although Elizeu is a very experienced Java programmer with a fair share of OpenGL ES 2 savvy, he's quite inexperienced with jME, so we've got a nice "skill-spread" there already ;)


P.S. I tried to contact the android guy through email. I have not gotten a response from him yet.
I haven't heard from him either, since October 1st. This is getting to the point that it's worrying, although I wouldn't say we've ever truly been frequently in touch.

You are right about the device. For example, right now I cant get OpenGL 2.0 support in the emulator, yet I can use it on the devices itself. The “tools/adb logcat” is a very helpful tool!



The thing is that I just started playing with Android. And also I’m not great with OpenGL.

But on the other hand, I’m a pretty experienced developer and I have been using JMonkeyEngine in several projects. So I will try to create a shader based android renderer, but I think I will need some help from OpenGL+JME specialists.



What I see right now is that the JME rendering system is not well designed. For example, the shader renderer can use the template method pattern so that the androidrenderer needs a few changes and does not need to be rewritten completely. Additionally, that will help to port any changes from the main jme3 code to android code base, because any structural changes in the main renderer system will require changes in the android renderer code (that is actually a good thing if you want to keep android renderer alive).



So let me first achieve some results and then we can think about commiting something. It would really helpful if I got the latest code from the android guy. For now I will try to write the renderer by myself.



P.S. I tried to contact the android guy through email. I have not gotten a response from him yet.

1 Like

Hello.



I just want to report on the progress.



I created a OGLESShaderRenderer based on LwjglRenderer and GLES20TriangleRenderer (example from android-8 sdk) classes. I’m using a Droid X/Android 2.2 for testing.



This is only the first version, but right now SolidColor and SimpleTextured materials work as expected. (These are the most simple shaders).

Also I adopted an existent AndroidInput to the current InputManager in the JME3, so it is possible to move the camera as it was working with the previous (not-shader-based) renderer.



As soon as I remove my verbose logging from the code, I will upload it here and then continue to test other materials.



The porting process was actually simple (I did not expect that!). So there is a chance that everything will work :slight_smile:

1 Like

Great news!

Good job! I talked on length with Elizeu (Android developer) recently and he mentioned he got back to you right? I expect he will be publishing his first commit very soon, as well as making a presence on the forum.

Unfortunately, I have not received an email or message from him yet.



In my implementation of the shader-based renderer changed only OGLEContext class and I created a new OGLEShaderRenderer class. Will it be possible to keep both implementations? (for example if Elizeu modified the original OGLERenderer or created his own class).

When can we expect a commit of your work on the jme3 branch ?

Hello.



Right now I’m waiting for Elizeu commiting his version.



This is what was posted before:


Good job! I talked on length with Elizeu (Android developer) recently and he mentioned he got back to you right? I expect he will be publishing his first commit very soon, as well as making a presence on the forum.


As soon as he commits his version, I will compare whether there is something in my version that may improve the renderer. Or if the commit does not happen, we might commit my version.

@antonyudin you are welcome to commit your changes. If you provide us with the address of your google account we will give you contributor access. Since Elizeu is having such difficulty communicating his progress, maybe it would be better if we did not rely on him to take the lead in this development. So I say, go ahead and commit when you’re ready and he can modify his changes to comply with yours instead.



In essence, for starters all we’re looking for is a bare-bones working version of jME3’s Android branch, i.e. the Android renderer.

I will have code ready this weekend or next weekend.

I got busy with some projects in my university.

One project, in which I use JMonkeyEngine3, will be shown at IDMAa conference in Vancouver!