kwaak3::Port of a famous 3d shooter to Android
This is a port of Quake3 to Android.
When I received a Motorola Milestone phone, I wanted to get into Android development. I had seen ports of Quake3 to the iphone and the N900 which have similar specifications (all use a similar CPU and the PowerVR GPU), so I thought why not bring Quake3 to Android. As a start point I used the N900 version of ioquake3. It only took me a day to get the game to compile and to load the Quake3 main-function. After that it took me a few more days to get OpenGL and some input working. In the weeks following the initial port I added touchscreen support, networking and sound.
The minimum required Android version at this point is 1.6. Note the G1 doesn't have much RAM and due to this is very sensitive to crashing. The game might be more stable if you disable audio. Future work Audio: use direct buffers to make data copying to Java more efficient and optimize the mixing code using Neon instructions
3D rendering:
use VBOs for uploading geometry and prevent unneeded re-uploads
Input: improve controls on phones without keyboard like the Nexus One
Profile: profile the Quake3 code and optimize slow parts
Screenshots

Installation¶
- Download the kwaak3.apk from the download section and install it on your phone. (Note you need at least Android 1.6)
- Create a directory quake3 in the root of your sdcard and also create a baseq3 directory inside it.
- Copy pak0.pk3 of your Quake3 CD (or from the demo) to the quake3/baseq3 directory.
- Download the Quake3 1.32 point release and copy pak1-pak8.pk3 to quake3/baseq3
- Start the game

Controls:
The game is controlled using the keyboard, touch screen and trackball (if available). The most important controls are:
* Movement: a/s/w/d, up/down arrows
* Look: touch screen, trackball and left/right arrows
* Shooting: Alt / D-pad center / tap on screen / trackball
* Tilde (quake3 console): search button
* Escape: back button









