Physics is implemented using Box2D in C/C++ compiled for ARM and JNI. Marbles are rendered with an OpenGL ES 2.0 fragment shader.
I decided to develop for android because when my old phone stopped working I found a good deal for an android phone.
At the beginning I thought learning android programming would be nice so I developed an app for internal use checking a web service status.
After that I wanted to give a try to something I enjoy more: graphic programming.
Well.. Mad Marbles is the result.
![smile.png](http://public.gamedev.net//public/style_emoticons/default/smile.png)
Some of the lessons I learned during this project are:
- how to write (and use) native code in android for CPU-intensive tasks
- how to implement a live wallpaper with OpenGL ES using custom preferences, reading orientation, etc.
- how to effectively use intents, create a shortcut, select (and scale) images from device, write code adapting to different resolutions
- how OpenGL ES works (I've been a Direct3D guy for years)
I also learned how hard it is to get visibility on google play!!!
![sleep.png](http://public.gamedev.net//public/style_emoticons/default/sleep.png)
If you have an android device you can give a try to the free version:
https://play.google.....madmarbleslite
Click here to view the iotd