Two technologies are making a significant difference to mobile games; graphics hardware accelerators and OpenGL ES. Imagination Technologies is enabling these features on Sony Ericsson's UIQ 3 phones. Richard Bloor finds out what is on offer to all software developers.
Games are big news on mobile devices. From the teenager heading home from school to the business executive waiting at an airport, mobile games seem to be transcending the traditional image of the console gamer. However, until recently rich games for mobile devices have presented developers with two significant hurdles.
Mobile devices are limited in comparison to games consoles by power consumption and hence performance; creating detailed, fluid 3D graphics is not easy. Also, mobile games have required unique implementation for each platform, due to differences in device specifications (such as screen resolution) and capabilities (such as floating point support), although a number of third party middleware engines have attempted to overcome this issue.
Graphics hardware accelerators have long been a feature of games consoles, enabling the advances in visual realism seen in today's console games. Sony Ericsson has included this technology in all of its UIQ 3 phones released to date. The P900, M600 and W950 (along with their Asian variants) rely on the IP of British company, Imagination Technologies, built into the NXP processors used on these phones.
Imagination Technologies has been around for a while; it was first listed on the UK stock market back in 1994. However, the company's current direction was set in the late '90s when it evolved into a pure IP provider. Imagination Technologies now specializes in pre-silicon IP in three areas: baseband technologies (for signal reception in domains such as mobile TV), core processor technologies (for running operating systems and processing audio), and video and graphics technologies.
From its roots in the PC space, Imagination Technologies has supplied graphics technology to consoles, such as the Sega Dreamcast, as well as a range of arcade games and amusement systems.
The success of Imagination Technologies' IP comes from taking a different approach to processing graphic information. "Conventional graphics systems think of the screen as a single contiguous piece of data, held as one entity," says David Harold, head of public relations. "Our technology takes a very different approach to graphics, it treats the screen as many small tiles of information. As a result processing can be done on chip reducing the power and bandwidth requirements. So while most graphics technologies, which started out in the PC or console worlds, have not scaled down to mobile well, ours has. As a result most mobile devices delivering rich graphics use our technology."
For Sony Ericsson's UIQ phones Imagination Technologies supplies three components: the PowerVR MBX IP Core integrated as part of the Applications Processor supplied by NXP (formerly Philips Semiconductor), OpenGL ES 1.1 compliant device drivers to enable software developers to use the graphic processor (which Imagination Technologies supplies directly to Sony Ericsson), and technical support through a free OpenGL ES SDK and online forums.
OpenGL ES is a 2D and 3D graphics API created by the Khronos Group (www.khronos.org), a member-funded industry consortium focused on the creation of open standard, royalty-free APIs. The goals of the group include the creation of APIs that provide consistency for implementing graphics software across a wide range of hardware solutions. OpenGL ES is a subset of the desktop orientated OpenGL API. Imagination Technologies supports the OpenGL ES 1.1 specification with a number of extensions.
So what does the combination of PowerVR and OpenGL ES provide developers?
"The most obvious difference on Sony Ericsson's UIQ 3 devices is image quality, it is considerably improved," says Kristof Beets, Imagination Technologies' third party relations manager. "The other important difference is a gain in software performance. Now the CPU is only running the phone Operating System and the game logic, it is no longer doing the drawing. As a result the CPU can spend more time on the gaming experience; developers can implement more complex game play, improve artificial intelligence and use richer audio effects. As a result games developers can improve more than simply the look of their game."
However, hardware accelerated 3D graphics enables much more than improved games graphics. This technology allows almost any application with a rich visual component to offer its user a better experience; 3D user interfaces, 3D navigation, graphical calculators, or music visualization are just a few of the potential applications.
Kristof highlights several areas where noticeable improvements can be seen in graphic quality on the Sony Ericsson's UIQ 3 phones, these include:
? Texture filtering. In software based graphics surfaces are not texture filtered, so when an object gets close to the observer the object surfaces become pixilated. This does not happen with hardware acceleration.
? Anti-aliasing. With hardware acceleration the staircase effect seen along edges and lines are virtually eliminated; resulting in a smoother and more realistic look and feel.
Another key performance feature unique to PowerVR is texture compression for the images applied to the surface of 3D objects. With PowerVR textures can be defined with only 2 or 4 bits per pixel rather than the usual 16 or 32 bits. This not only helps with performance, but also reduces the game's distribution size, a key improvement when OTA delivery is required.
While good graphics are an essential part of any game, the frequency at which the images can be updated is also very important. While benchmarks are not available for native OpenGL ES performance on Sony Ericsson's UIQ 3 phones, David describes their performance as similar to Sony PlayStation 2 or Dreamcast, such that these phones are "comparable with PSP, not a Nintendo DS."
OpenGL ES provides a low level API interface, designed around triangle primitives which allow complex graphic elements to be created. Manually creating 3D objects (such as cars and characters) from triangles is complex process. As a result game developers generally create a game's graphics using tools such as AutoDesk 3DStudio Max or Maya. Converting graphics from tools like these to code is an essential part of efficient games development.
This is where the final part of Imagination Technologies offering comes in. In addition to the hardware and drivers, Imagination Technologies has also supplied Sony Ericsson with an SDK, which is available from the Developer World Web site.
"The SDK builds on the experience of our dedicated mobile support team, one of the most experienced and largest in the industry," explains Kristof. "It includes tools to export graphics from commonly used graphic applications into a format optimized for mobile devices. Then we provide example code which explains how to take that data file and efficiently render it on a phone using OpenGL ES." The SDK also includes tools to compress texture information and examples that guide developers through advanced features such as lighting, shadows, reflection mapping, and cartoon effects. "Its all about helping developers create the best looking and performing game in shortest time," says Kristof.
The SDK includes an emulator which allows OpenGL ES graphics applications to be developed and tested on a PC, however there is a small wrinkle if developers want to take advantage of Symbian OS specific features. "The shell abstraction framework in the SDK means that C or C++ game source code can be easily compiled for a PC or Sony Ericsson phone," says Kristof. "However, if a game needs to make use of Symbian OS specific features it will need to be tested in the UIQ 3 emulator." The wrinkle is that the Symbian emulator does not fully support all the graphics features available from Imagination Technologies' hardware. As a result, while games will function correctly on the UIQ 3 emulator the graphic may be missing certain elements. Textures defined using Imagination Technologies' compression would not render for example. According to Kristof Imagination Technologies are currently working with Symbian to overcome this issue. Until that happens, applications that use Symbian OS specific features may need to be tested both in the Imagination Technologies' simulator and the UIQ 3 emulator.
All this leaves one important question: to use Java or native. OpenGL ES can be accessed through the Mobile 3D Graphics API for J2ME? (JSR-184), which is also implemented on Sony Ericsson's UIQ 3 phones and a range of its feature phones. "Using Java adds an overhead compared to the native OpenGL ES APIs," says Kristof. "While we don't have public benchmarks, developers can expect to see a performance improvement of up to three fold from using native APIs compared to developing their applications in Java."
Sony Ericsson has already built a considerable reputation for offering Java developer's significant opportunities through JSR-184 on a range of its feature phones. The inclusion of graphics acceleration on the latest UIQ 3 phones, along with the supporting tools from the OpenGL ES SDK for UIQ 3 should enable developers to take UIQ 3 users' visual experience to the next level.
PowerVR is a registered trademark of Imagination Technologies Ltd.