GSoC 2012 Android Blenderplayer Port with OpenGL ES (2.0)

Third (Point One) Release

Change Log:

  • More optimized build (physics, graphics)
  • Uses (forces) VBO
  • Much more fixes!
  • One apk (includes all libs and python)

First, uninstall previous app.

Download:
https://docs.google.com/file/d/0Bz7exufkIdsna0hUMU82MmVLbXc/edit?usp=sharing
(fix for Tegra 2, updated svn) (remove previous app)
Follow instructions:
http://wiki.blender.org/index.php/Doc:2.6/Manual/Introduction/Installing_Blender/Android

First opening can take few seconds.

P.S.
Disable Use System Framerate to get three times faster performance.
P.S.S.
To get FPS, connect device to computer and type “adb logcat” into terminal (adb is part of android sdk)

Hi,
I’m porting Blenderplayer to Android for GSoC

Major Targets

  • Make BGE compatible with OpenGL ES 2.0 (Mobile graphics)
  • Port Blenderplayer to Android

First week or so I will set up major libraries. I already compiled headless blender for Android! So Mango will be the first movie rendered on mobile devices :slight_smile: (maybe). Python is almost working thanks to PY4A project. I will probably will start with SDL for initial phase if it goes well, but I might switch to native android api for wider functionality.

The second, major part of the project will be converting and refactoring Blender’s OpenGL to comply with OpenGL ES 2.0 which Android supports. OpenGL ES 2.0 drops glBegin/glEnd and uses primarily shaders. I will be collaborating with Jason Wilkins. Probably he will be focused on optimizing and encapsulation of view code, while I be focused on writing OpenGL ES “classes” for this encapsulation for BGE code.

Here is more info:
http://wiki.blender.org/index.php/User:AlexK/Gsoc2012

Soon, I will finalize and publish build and instructions. Installation will probably be 2 steps due to Android apk limitations.

Any suggestions and comments are welcomed.

Alex

If you are looking for current distribution, have a look at this page – http://developer.android.com/resources/dashboard/platform-versions.html

That being said… I believe honeycomb removes alot of restrictions that earlier android builds had in terms of OpenGL?

I am using Android 4.0 with the tablet. It is not in the list above. I wish you good luck… I am so looking forward to this project. A Dream will come true when this project is finished.

@doublebishop
Thanks for the graph. I had older info and also wanted to see what versions Blender users use.

Afaik honeycomb doesn’t change anything with OpenGL ES 2.0. It was introduced in Android 2.2. OpenGL ES 2.0 is a standard, so later BGE can be more ported to iPhone, Paspberry Pi.

quick question
only the game engine or blender 3d editor also?

Alex,
do you need a testfile? I can create a little demo file with some animation and very basic touch interaction. Maybe some little python code that is also working… And some GLSL Materials?

@swathi
I think his priority will be the blenderplayer for now. But as far as I know Ton wants Blender completely working on Android :slight_smile:

I was just about to ask the same question. Probably just the game engine because it wouldn’t be practical to have a complete 3d application inside a phone

I also think that having blender editor itself inside android is quite pointless because it would not be comfortable to use and other must-use software wouldn’t run on it making workflow hard. Anyway, blenderplayer is a great addition to blender. Looking forward to it.

Thats totally awesome if we have this ported to android =) (Hope there will be also an iOS version?) Will change a lot (more channels for distribution - phones and tablets …) and even more possibilities?

I’m running Android version 4.0.2 on the Samsung galaxy nexus.

I have ICS 4.0.3 on my original Transformer, I suggest you add 4.x to the list if you can. Otherwise, best of luck to you! I’d love to be able to take blender with me, and I think with the right touch control, it’ll be just as easy to use as the desktop version. Best of luck to you!

http://www.ubuntu.com/devices/android

:RocknRoll:

This is already done, and working, on Cube2 game engine (Open Source) made by Wouter van Oortmerssen the dude who make CryEngine, it has a Pure Javascript port ( http://cubeengine.com ) and it can import Blender .blend

with tools like bsurface and skin modifier imagine the possibilities ----

@ Alex
what will be the procedure for the enduser later? How will I build the game for android? It would be great if we have the “export game as” functionality as we have it now for windows, linux and mac

Yes yes yes!! Such a great project!! Good luck!

A Dream will come true when this project is finished.

(+1)
It’s probably the most important project to the BGE survivor in a indie/commercial scene since GLSL integration.

so… any news to share? ^^

I’m not sure the final goal of this project.
Will this project allow a Blender game to be packed into an APK for Android Market distribution?
Will this be equivalent to Unity 3D or Shiva?
Maybe, someone can open source their final game, as a proof of concept.
Very excited.:eyebrowlift:

Finished writing documentation how to compile Blender for Android. Still, a little complicated and rough. I think I mention everything which is needed, but I could miss something. It is targeted for people who already built blender on linux.
http://wiki.blender.org/index.php/User:AlexK/Gsoc2012/Building_Blender_for_Android
For now it is just Blender Render. (you have to enable float points flag to get a good performance)
I’m available at #blendercoders for help.

Also, I started working on OpenGL code
http://www.pasteall.org/pic/show.php?id=32563
There is no lighting, no color/textures, and no global position/perspective.

ndee, CG_Tiger,
I didn’t yet decided on final distribution model. Probably we will have both. Blenderplayer on Android reads regular .blend file. So
a) We can have file/game selector
b) It can be package as APK
But blender player is about 16MB
Also, you have to compile Blenderplayer yourself
To change unique app name