Overview
Nokia brings mobile gaming to a new level of entertainment through the introduction of the N-Gage Platform. N-Gage games are now playable on a range of S60 smartphones, allowing the user to choose between different styles, form factors, and prices. This new technology enables Nokia to direct its high-quality N-Gage games to a larger and more diverse user base.
Nokia provides an easy-to-use and reliable service for users to acquire their games through the N-Gage application. The N-Gage platform offers an exceptional mobile gaming experience by allowing an easy way to discover, try, buy, play, share, and manage mobile games. The aim of the N-Gage platform is to eliminate the hassle of finding a game compatible with a particular phone, working out how to purchase, download and install it. Nokia is investing heavily in the supporting technologies and back-end infrastructure in order for this service to function flawlessly.
The overall experience will be managed from a client application called the N-Gage application. This application will work on every phone supported by the N-Gage platform and can be downloaded from the web if it is not already pre-installed on the phone when it is purchased.
What the N-Gage Platform Offers Developers
The issues caused by the differences between phone handsets (device fragmentation) are constantly being addressed by handset manufacturers who utilize the S60 platform to provide a common set of features across a range of phones. However, even with this platform, developers still spend a large amount of time and development budget in creating and supporting native games across multiple devices, each differing in hardware characteristics such as amount of memory availability, screen resolution and display size, and input capabilities.
Therefore, to reach as many consumers as possible on the smartphone platform, the developer should be able to create one SKU (stock keeping unit), that is, one deliverable that runs on all devices.
Introducing the N-Gage Software Developer’s Kit (SDK)
The N-Gage SDK addresses the issue of portability between different S60 smartphones by providing a set of libraries that presents a consistent interface for the games to establish hardware capabilities and manage the differences between them. The SDK provides an abstraction layer between an N-Gage game, the services running on the device as well as the phone hardware. The game code is insulated from the S60 platform and Symbian OS, and it must use only the APIs and methods provided within the N-Gage SDK. Although this can be limiting in certain perspectives, the abstraction layer guarantees compatibility across different devices, taking the responsibility away from the game developer.
N-Gage SDK Abstraction Architecture
The N-Gage SDK provides a single point of contact for the game in terms of how its code is exposed on a device. As the number of devices supported by the N-Gage platform grows, older games will automatically be supported by these newer devices without the developers being forced to handle any expensive code maintenance and conversion.
How the N-Gage SDK Works
A good example on how the N-Gage SDK works as an abstraction layer in practice can be illustrated by considering the issues required to support game playing in landscape orientation on different phones. For example, some phones support portrait orientation only, others support both portrait and landscape; some have two variations of landscape-orientation while some allow the user to twist the device into a certain orientation. Moreover, on some devices, certain orientations cover the keypad and prevent numeric input.
The set of S60 phones that are N-Gage enabled will grow to add more phones, a large number of which will come to market after a game is shipped. How is the developer to implement the game code? It would require a logic flow that takes into consideration the behavior of each N-Gage phone (current and future) so that the game can adjust the graphics for the screen mode and input keys accordingly. As you expand the number of devices, the decision tree for handling all this logic becomes untenable in a single SKU.
When using the N-Gage SDK, a developer does not have to manage all this logic, since it is handled for them at a platform level. The SDK provides the developer with a handful of methods to detect what orientations a phone supports, what the current orientation is, and how to set a new orientation. The underlying alignment of display and keys is handled in the background by the platform. Avoiding the code required to handle even a single issue like this saves a developer a significant amount of implementation time, as well as testing effort.
Testing and Certification
To port seamlessly between N-Gage enabled phones requires a process within Nokia to ensure that the N-Gage SDK behaves the same on each phone. SDK testing is performed using a standard set of tests to verify that each device behaves correctly when using every API provided by the N-Gage SDK. This is called terminal, or device certification.
The device certification team also plays an important role in verifying the technical solutions to known issues where different behavior exists across devices. For example, a game should include a screensaver for display when the game is idle; however , this proves to be complicated at the S60 architectural level as the native screensaver functionality varies across different S60 product versions. The N-Gage platform must conceal this, and present a simple interface to the user. The solution must also provide flexibility to incorporate new behaviors in the future without breaking binary compatibility.
N-Gage Compatible Devices
As new S60 smartphones are created, they are assessed against the N-Gage terminal requirements to determine whether they have the minimum capabilities needed to support N-Gage games. A large number of Nokia S60 smartphones will eventually be N-Gage compatible, with a correspondingly-sized audience of potential gamers.
Terminal Requirements
N-Gage compatible smartphones must meet a minimum set of terminal requirements to give game developers a common set of hardware and functionality when creating their games:
Minimum System Requirements:
- Minimum allocatable heap size of 10 MB
- Minimum storage capacity of 64MB
- Bluetooth 1.2
- OMADRM 2.0
Recommended Specification:
- Landscape-orientation and portrait-orientation
- Dedicated controller keys