N-GAGE TECHNOLOGY

Nokia Research Center: Expanding the Potential of Mobile Gaming

March 20, 2009 

Creating a compelling user experience starts with the technology. Nokia Research Center’s ambition is to research and solve complex scientific problems to strengthen Nokia’s competitiveness in the converging worlds of internet and mobility.  It drives breakthroughs that reach far into the future, enabling new business opportunities for Nokia.

Nokia Research Center works closely with all Nokia business units and at GDC this year, NRC brings an exciting line-up of demos that could potentially open doors for mobile gaming and blur the lines between reality and virtual reality. These four demos from Nokia Research Center may help to inspire your creativity:

Nokia Image Space

ImageSpace 
Nokia Image Space
, developed by NRC, is a prototype of a new online community tool that creates an exciting image based mirror world by combing a wide range of digital media in a highly personalized and entertaining way.  This new online service brings user generated photos, videos and sounds together with location and movement information. Nokia Image Space allows users to share content from their real world experiences with friends in a social networking environment. The service uses digital maps, location-based content and MapTP technology from NAVTEQ.  

For example, you may want to share a pleasant experience at a local park with friends. Using Nokia Image Space they'd be able to see a satellite image of the park, then follow in your footsteps as they virtually wander through it enjoying the different sights and sounds you experienced via pieces of multimedia. These could include links to the history of statues in the park, video footage taken during your walk, and relevant sounds, such a music concert recently performed in the park. Content from other users can be added to help enrich your own information and fill any possible gaps.

Nokia Image Space uses a device’s ability to sense its surroundings to gather relevant information automatically. Sensors in the mobile devices gather spatial and temporal data, all the time. This is combined with user generated multimedia information to create a compelling online environment.

This project is part of a series of NRC studies focused on enhancing interaction between users and the different media and information in the world around them.  It is built on more than a decade of academic research into mixed or augmented reality. It was also listed as one of the 10 top technologies by the MIT Technology Review.
events page

Gaze Tracker

Gaze Tracker is a wearable near-to-eye display with integrated eye gaze tracker for mobile hands-free experience with full interaction capabilities. Besides conventional pointing, tracking the user gaze point on a virtual image or even in the real world enables disruptive and intuitive applications possible with no other input device. Watch the Gaze Tracker video.
 CD Cover Recognition

 

CD Cover Recognition

Take a photo of your favourite music album cover and gather detailed information on the artist and songs.  A prototype has been created which sends a query using the photo to a product database in order to identify who the artist is and what the song titles are.

 

 

Landmark-Based Navigation

 

Landmark-Based Navigation allows for automatic 3D modeling of urban scenes from unstructured photo collections, such as popular photo sharing sites. Using GPS

 N95Build
information from the photos, the reconstructed 3D model is automatically registered to a map and used in a number of location-based services. For example, a user can take a photo and match it against a database of photos.  The system can then show where a user is located, embed easy-to-follow navigation directions into the reconstructed scene, and otherwise annotate the scene with detailed information on the landmark and its surroundings.

Imagine what mobile gaming could be with the application of these device technologies. Music and maps could become a pivotal part of the mobile gaming experience. To some extent, we have already seen this with the integration of users’ personal music tracks into the N-Gage game, Dance Fabulous. Users may one day be able to interact with the space around them as part of a game. Future mobile games could use elements of a virtual scavenger hunt where objects and places become part of the game play.
 
Virtual communities and the trend towards social networking could become that much more powerful with the use of Image Space. Bringing new user generated content into a virtual community could make the mobile gaming experience different each time you play.  And with the technology of Gaze Tracker, mobile gaming could even become completely hands free!

Come see and interact with these device technologies at GDC 2009, Nokia Booth 5605 in the North Hall.  For more information on these demos and what else is happening at GDC visit our events page.

 

Supporting You at Every Turn: N-Gage Platform Developer Support

February  5, 2009

The Developer Support team works closely with N-Gage developers and publishers to provide support throughout the lifecycle of the game project. We provide workshops to help new N-Gage game developers get started with the N-Gage SDK. We also offer assistance in reviewing technical design documents to ensure that a game’s design fits within the capabilities of the N-Gage platform. Periodically, we publish documents to offer guidelines and tips on various aspects of N-Gage game development.

The following are methods of communication which support our game developers and publishers throughout a project:

The N-Gage  Knowledge Base Wiki

 

Wiki

 
The N-Gage Knowledge Base Wiki is a compilation of common issues raised from Support Requests, Discussion Forum posts, and Certification Reports. 

 The N-Gage Developer Discussion Board

 discussion_board

 

The N-Gage Developer Discussion Board is available to all N-Gage game developers and monitored daily by our support engineers. It is a place where game developers can ask questions related to the N‑Gage SDK and find answers to other previously asked questions.

The Online Technical Support Tool

 

otss 

 
Game developers with urgent, or confidential issues can direct their questions to the Online Technical Support Tool. This tool is also monitored on a daily basis by our support engineers. Support is available in English, Chinese, and Japanese.

If you are interested in becoming an N-Gage game developer, please follow our simple application process. To find out more about being an N-Gage game developer, visit our FAQ section.

 

The Three Objectives of DRM

 Join the Discussion

As you may know, N-Gage games are electronically distributed, making it technically possible for players to acquire games from multiple sources – official or unofficial. For example, players can download games from www.n-gage.com and store them on their computers. From there, they can e-mail copies to friends or post them on MySpace, where other people can download them.

Although games are copied in this example, the licenses to play these games are not. In short, licenses themselves cannot be copied as these are only exchanged between the N-Gage device and the licensing backend via a secure connection. Additionally, during the activation process the licensing backend will verify that the license has not previously been activated for a different device. All of this is handled via the OMA DRM 2.0 standard. Note that when we refer to licenses in this article it’s actually a simplification of a complicated set of interactions between activation codes, rights objects, and device private and public keys. However, it’s outside the scope of this introductory article to detail this relationship.

On the N-Gage platform we have the following three key objectives for DRM:

- Enabling Try & Buy

- Triggering In-Game Purchasing

- Protecting the license

For the first objective of Try & Buy, the game developer splits up the game experience into two sections. One section allows the players to play without obtaining a license and the second section encompasses everything else, which players can only access once they have obtained a license. In practice, an introductory level could be part of a free section, whereas everything else would need to be purchased. This straightforward approach can get complicated if it is not taken into account early on in development. For example, if you were developing a chess title, how would you create both free and purchased sections when the game might not have any particular difference between the various levels?

The second objective of triggering the in-game purchase comes as a consequence of dividing the game into the two sections. The section, which players are able to access when they have obtained a license, is encrypted with DRM. Encryption is easily achieved by a DRM encryption tool provided with the N-Gage SDK. Once the File Access API (also provided with the N-Gage SDK) is used to load data from this section, and if a valid license doesn’t already exist on the device, an observer will prompt the game to trigger the purchase process. This implies that it is quite important from a user experience point of view to make sure that the DRM protected assets are accessed at the right time. For example, you might want to give players the option to obtain a license (or not), before they start loading the level, as opposed to giving the player this option once they have waited for a 15 second loading screen.

Finally, the third objective of protecting the license is the reason for having DRM. For N-Gage, we focus this protection on the license keys while allowing the game to be copied freely. As previously mentioned, this restriction is enabled by only allowing the keys to be transmitted and stored securely. The key transmission is handled at the system level without any interaction needed from the game developer.

As a result of these objectives, game developers can focus their efforts on the associated user experience and what to protect, while they leave the specifics of security, purchasing, and activation to the platform – a huge amount of work that can now be achieved with a minimal effort.

If you are interested in learning more about DRM in general, visit Forum Nokia for a large amount of articles on the subject .

 

Secrets of the N-Gage Messaging API

 

Games based on the short message service (SMS) were some of the first to get wide attention on cell phones. The SMS technology was built into the GSM system, so potential customers were "limitless."

The original games themselves were pretty crude and the game designers were under some very strict design restrictions. For example, ideally each message had to be under 160 characters, which is essentially 25 words, and the number of messages had to be minimized as well to keep the cost for the player from soaring. The lag of sending messages is measured in minutes, so designers had to be especially creative to keep players’ attention for long.


So what is N-Gage bringing to the table that makes this outdated technology interesting in the development of today's cutting edge mobile games? In short we have included an SMS Messaging Server Service as part of the N-Gage application. This enables games to send messages directly to players without going over the GSM network. Additionally, we expanded the system to include Multimedia Messaging Service (MMS), enabling the delivery of graphics and audio from the game to the player’s inbox. In practice this means that the following game scenario can be easily achieved:

With great excitement you have just started playing the latest N-Gage Role Playing Game (RPG). After you have proven yourself as worthy on one of your first missions, you are requested to meet up with your future mentor. You decide to embark on the journey to find your mentor but end up quitting the game because of an interruption. At this point the games sends an MMS message to the N‑Gage Messaging Server Service describing the task that you have been given along with an image representing a map of the location you need to find. In addition, the message is configured to be delivered to your inbox in 48 hours.

Now if you start the game again within 48 hours the message is canceled. However, if you do not play the game within 48 hours the message will be delivered to your inbox. This happens whether or not the N-Gage game or N-Gage application is running.

This reminder will prompt you to rejoin the mission in the game, and pull you back into the action.

Everything in the above example is completely configurable. The game decides what to send, when to send it, when to cancel it, and can even queue up several messages for delivery at different times. However, from a design perspective, remember that less is more — nobody likes to be spammed, so make sure that each one does indeed have a message (no pun intended).







Hidden power of Device Status API

 

Welcome to the first tech brief for the N-Gage SDK. Our focus with these briefs are to bring attention to the functionality of our API’s and how they can be used to create state of the art games on the N-Gage platform. Our first focus is the Device Status API and the role and potential it has within development.

The Device Status API is an important API to master for any developer wanting to have their game running well on the N-Gage platform. For the API the help list the following type of Classes and Observers:

  • IDeviceStatusBattery
  • IDeviceStatusNetwork
  • IDeviceStatusProfile
  • IBatteryObserver
  • INetworkObserver
  • ITelephonyObserver
  • IAccessoryObserver
  • IAlarmObserver

The above Classes and Observers inform the game of certain events and changes to states of the mobile device. All of them are not necessarily directly applicable to games, but the methods do offer a developer the option of utilize a number of key features not available on other portable gaming platforms.

For example via this API would allow the game to incorporate the status of the phone into the decision making of certain behaviors within the game. For example if the battery level of the phone drops below 25% and the local time on the phone is 11:15 AM (this can be achieved by using the clock_gettime from libc), the game might make the conclusion that 1) the device will “shortly” run out of battery and 2) the use might have a whole day in front of them before getting access to a phone charger - accordingly the game could bring this to the attention of the user either via a simple user interface screen or if appropriate for the game some non player character could even inform the player.

Another key functionality is available via IDeviceStatusNetwork and INetworkObserver. By utilizing these, a game can obtain information related to approximate location and change of location of the player. The most important are:

  • aMobileCountryCode
    These are defined by the International Telecommunication Union in the “Land Mobile Numbering Plan” and are used to identify the country location of the wireless network currently connected to.
  • aMobileNetworkCode
    A network code is a subset of the Country Code and used to identify the operator currently connected to within that country.
  • GetNetworkCellId
    A finally the Cell ID is an identifier for the base station that provides the cell signal currently connected to. The area an ID covers can ranger anywhere from a few hundred meters to several kilometers depending on the density of base stations.

Although this information does not allow a game to pinpoint the location of a user, it can still be used within a game to extend the experience. For example you could add country information into score submission in Rankings API and later on display the players’ country on a rankings display.. Or you could let the game keep track of the Cell IDs a player is connected to, so that Easter eggs in a game can be tied to a physical location.

The extend to how this can be utilized and how deeply it can be integrated, largely depends of the game design and how this builds upon the fantasy created. In future tech briefs, we will further explore a number of other API’s which provide a link between the user and the game in such a fashion that the results can be used for decision making logic emulating artificial intelligence.

 

Platform Technology Information

 

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 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

 

CD Cover Recognition
ImageSpace
N95Build

Technology Archive