It has been seven years since I’ve last updated the original Under the Sea live Wallpaper application for Android. The app turned out to be surprisingly popular, but busy with other projects I did not find the motivation to give it a much deserved rewrite. Until now, that is.
The Android live wallpaper was written using just some Java and Open GL 2.0 for shaders. At the time running a 3D scene at the background was a bit less common than today. And since no tried and tested framework was used, development and especially debugging was quite tedious. The Android dev tools in 2013 were not as advanced as today.
For the new version I wanted to make sure the development process is as painless as possible, so I opted for a bit of overengineering and bootstrapped Unity 3D game engine as a wallpaper. A bit of Java is still needed to run Unity player as a wallpaper engine, everything else can be handled by the game engine itself. And making custom shaders in the new Unity Shader Graph is a breeze, all the in-app purchases can be handled with Unity IAP package and some custom C# scripts. Only the UI proved to be quite a challenge since this is not handled as well in Unity as some other things.
Performance wise, running Unity game engine as a wallpaper proves not to be resource intensive at all, indeed, some performance tuning was needed to make it run smooth on older devices, but other than that no issues. With all the flexibility that comes with a game engine, this might not be my last live wallpaper implemented this way.
Available now on Google Play. Please check it out and let me know what you think. Thank you!