Project page

Spring4droid, Android port of SpringRTS


Status : Work in progress

Devlog

05/11/2011
Following the first release of Lincity4droid, I've decided to port SpringRTS to Android. SpringRTS is an open-source real-time strategy game of pretty high quality. Code is much more complex than the one from Lincity.
I don't think it will be any good on tablets because this RTS is fast paced, it involves having fast mouse and keyboard reaction to get the most of it. But it would still deliver an interesting experience action as the 3rd millenium general, giving orders on the battlefield by pushing units on a tablet.

Here are SpringRTS dependencies:
SDL
Boost (version 1.35 or later)
-> threads
-> regex
-> signals
-> system
-> program-options
libdeviL (IL)
OpenAL (openal-soft, older openal-0.0.8 does not work)
OpenGL headers (mesa, GLEW, etc.)
zlib
freetype (2)
ogg, vorbis and vorbisfile

=> Compiled libdevil without any problem.
- Not sure about OpenAL, supposed to ported on Android.
- I've got to find a working version of boost.
- freetype, vorbis and vorbisfile should be ok.
- Boost Library situation is more complicated, it uses very advanced C++ that is not supported under current Android NDK. Instead I'll have to use CRYSTAX NDK http://www.crystax.net/fr/android/ndk and patched version of Boost.

06/11/2011
Few ! I've finally successfully compiled Boost against Crystax NDK R6. Would only work on Linux and not in Windows 7 x64. :(
The script was found:
https://github.com/MysticTreeGames/Boost-for-Android
But I had to customized it a lot.
Hope that it will run properly...

08/11/2011
Trying to compile SpringRTS, by creating a proper Android NDK Makefile. Huge task, there are 400 cpp source files in this project.

12/11/2011
...running into trouble, SpringRTS is extremly complex C++ code, and tight x86 link :(
Scrap the streflop lib which is no use on Arm CPU.

13/11/20011
Big break-trough, I've compiled the whole source code to the end except for sound part.
I've successfully linked Boost the SpringRTS source. But they there still tons of linking errors. Now my goal is to remove or translate OpenGL call to OpenGL ES.
I'm hitting the compile time wall : The project is more than 400 cpp files big and takes 5 minutes to compile on my very powerful rig : Intel 2500k 4cpu@4.5Ghz, SSD SATA 3.0 :(