Version 4 (modified by Anders Feder, 12 years ago) ( diff )

--

This page documents how 0 A.D. might be ported to the Android platform.

Plan

  1. Set up a generic Android NDK build environment.
  2. Find and adapt replacement libraries for every dependency in the PC edition.
  3. Port graphics and sound to OpenGL ES and OpenSL ES, respectively.
  4. Come up with a suitable UI for mobile devices.
  5. Implement the new UI on Android.
  6. Build the package with Android NDK and SDK.
  7. Publish the package on Android Market.
  8. Rock.

Target devices

Samsung Galaxy Nexus

  • 720×1280 px at 316 ppi
  • !16:9 aspect-ratio
  • 16M colors
  • Multi-touch, capacitive touchscreen

Design

User Interface

Due to the vastly different controls and form factor, the whole user interface of the game needs to be rethought for the Android edition.

Libraries

Android-compatible replacements must be found for all the dependencies of the PC edition. This is what we have so far:

  • GCC - the Android NDK provides its own ndk-build tool for compiling.
  • Subversion - assuming this is just for obtaining the source, this can be done on a PC workstation.
  • SDL - is already ported to Android.
  • Boost - there is an unofficial port.
  • zlib - libz is part of the native NDK.
  • libpng - there's unofficial ports like this one.
  • libxml2 - Google publishes a tree that is tuned to compile on Android.
  • OpenGL - this must be ported to OpenGL ES.
  • OpenAL - this should be ported to OpenSL ES.
  • zip - not sure which exact library this refers to.
  • libogg - may be covered by Tremor (below).
  • libvorbis - this can be done with Tremor.
  • libcurl - may be ported like this.
  • Gamin - don't know about this one.
  • CMake - all build tools are provided by the NDK.
Note: See TracWiki for help on using the wiki.