1

Topic: Neverball Ported to Android

Since Neverball ME is very out of date, and I couldn't get it to build with current Android SDKs, I have taken the latest Git version and ported it to Android. Branch is here: https://github.com/camthesaxman/neverball/tree/android

The build scripts and Java stub are in the android/ directory, and the changes to the rest of the code are fairly minimal, so it could be merged into master without too much trouble.

2

Re: Neverball Ported to Android

Cool!

How well does it run? What phone are you testing on?

Is it possible to build an APK without having to set up the Android SDK?

3

Re: Neverball Ported to Android

I'm testing it on a Moto g6, which is a mid-tier phone from last year, and it runs great. I get a solid 60 FPS on most levels,  even with reflections turned on. Easy 9 suffers a bit with reflections, but it's still smooth and playable. I still think this phone is above average of what most people will have currently, so performance will vary.

There still are a few issues, most of them minor.
OpenGL ES does not support cube mapped textures, so those fancy metal effects don't work. I made it fall back to rendering a solid color for these materials by zeroing out the texture matrix so it doesn't look ugly.
I could not find a version of PhysicsFS that worked on Android, so custom content packs won't work unless you extract them manually. I have it extract the data files to the app's internal storage directory on first run.This shouldn't be necessary with PhysicsFS, since an apk is really just a zip file.
Even when the main function exits, the Android activity is still there, so you have to manually close the app to quit.
I'm not sure of the best way to handle tilt in a game like this where the screen is being tilted, so I mimicked Super Monkey Ball Sakura Edition and made it so that tilting the screen at a 45 degree angle is neutral.

As far as building, you will need the Android SDK and NDK. You don't need Android Studio, just the command line tools.

4

Re: Neverball Ported to Android

You can read APK assets via SDL. I did this in my unreleased half-baked Android port. It worked pretty well, although I had to buffer the reads for performance. Check it out: https://wiki.libsdl.org/SDL_RWFromFile

5

Re: Neverball Ported to Android

I couldn't find any way to enumerate files in a directory using SDL rwops. How did you implement that?

Are there plans to implement zip support in fs_stdio without using PhysicsFS? I seem to remember a discussion on GitHub about that.

6

Re: Neverball Ported to Android

No, it only lets you read directly out of the APK assets folder. Presumably you already know what's in it. ZIP file discovery and loading would indeed require ZIP support. I have no plans towards that, at the moment. It is a release requirement, though.