Someone asked me what can be done in the Android port, so here is a small TODO list:
1. Improve generate_assets script to make the apk smaller.
We can automatically check textures in data/karts/*, data/tracks/*, data/library/* to make sure that there are no unused or duplicated textures. Unused textures can be checked in similar way like in the convert_b3d() function.
2. Allow to change resolution for better performance.
There are two ways to do it. Using our scale_rtts_factor or using ANativeWindow_setBuffersGeometry. The frst option works only when we have advanced lighting enabled. We can force using RTTs when advanced lighting is disabled, but in this case we have preformance boost only for very low resolutions.
The ANativeWindow_setBuffersGeometry gives much better performance and works when advanced lighting is disabled. But I saw some crashes in this function and it also affects the behaviour of ANativeWindow_getWidth/Height functions. Also our irrlicht device can be initialized multiple times, so it needs some thinking how to do it properly.
3. Automatically detect if there is external keyboard connected.
Disable multiplayer icon if there is no keyboad, and disable software keyboard if there is external keyboard available.
4. Gamepad support
It should help a lot for playing on Android TV. Multiple gamepads support is not trivial, but simulating keyboard events when gamepad event is received in irrlicht android device should be easy.
5. Better kart control
Current solution works fine on a tablet (especially that we already have buttons scaling, a possibility to move steering wheel to the right side etc.), but it chould be better on phones with small screens. Not sure how to solve it, maybe try to use some gestures.
6. Add support for current NDK
A bit more info:
https://android.googlesource.com/platfo ... Headers.mdhttps://github.com/android-ndk/ndk/issues/445https://github.com/openssl/openssl/issues/38267. A lot of other work:
- better screen keyboard layout
- show a progress bar also when old data is removing and not only when new data is extracting
- try to detect some issues in assets manager, i.e. if user deleted some important files
- try to get system language (should be possible with AConfiguration_getLanguage)
- add support for native calling conventions in angelscript for aarch64 to make scripting working for 64-bit builds
- better progress bar screen (i.e. add a background, STK logo etc...)
- try to adjust our guiengine to high dpi screens