1. Quake 3: OpenGL → GL ES: Overview
• Porting the Engine...
• Overview of the changes from OpenGL to GL ES.
• Quick-n-dirty optimization: 1/sqrt(x)
• Input Challenges...
• Dealing without a conventional keyboard and mouse.
• Exploring different input methods on N900.
• Aiming assist, and why it's not cheating.
• Demonstration!
• Closing remarks, comments, etc.
1
2. Porting the Engine...
• Everything is native OpenGL ES/EGL
• Except PulseAudio sound via SDL (but this could be done natively too.)
• Modest amount of changes to the source code:
– 58 files changed, 3071 insertions(+), 502 deletions(-)
• 1/sqrt(x) Optimization:
• Required for vector normalization and a major bottleneck in the engine.
– Fast Inverse Square Root, by Chris Lomont
• ARM performs much faster by simply using the standard libc version,
• But optimizing with NEON instructions would certainly help.
2
3. Input Challenges...
• We don't have a conventional keyboard and mouse, but, we do have:
• Mini-keyboard,
• Touchscreen,
• Accelerometer, and
• Proximity sensor.
• Special thanks to Phil Carmody for his efforts and code for the accelerometer/proximity sensor.
• Added support for auto-aim (aka aiming assist)
• Limitations from not having a full keyboard and mouse.
• The game must still be fun!
• The best way to show how these are used is in the demonstration.
• I will also take questions/comments during the demo.
3
4. Demonstration!
Email comments,
Maybe you'll see this in Ovi store!
quake.on.maemo@gmail.com
4