One of the major changes that
Microsoft has made for Windows Phone, as compared with the previous
Windows Mobile platform, concerns hardware requirements.
The huge diversity of
hardware could provide quite a barrier for entry for Windows Mobile.
Devices all had different screen resolutions, different hardware
buttons, and a fairly substantial range of other internal hardware.
Writing games and applications that worked across the entire set of
devices could result in a considerable amount of additional effort,
whereas saving time by not addressing all these platforms could exclude a
significant proportion of the potential customer base from being able
to use the application.
This has been tackled head
on in Windows Phone by requiring a very rigid set of hardware
requirements. It will be interesting to see how they evolve as time
passes and technology evolves, but for the time being you can depend
upon this hardware platform being present in all Windows Phone devices.
Let's take a look at what we can expect.
1. Screen Hardware
To begin with, all
Windows Phone devices will have a screen with a Wide VGA (WVGA)
resolution (480 pixels across by 800 pixels tall), which will greatly
simplify the task of ensuring that games and applications properly fit
on the screen without having to stretch, shrink, or leave large areas of
the screen unused.
Microsoft has stated that future
devices might use a Half VGA (HVGA) resolution of 480 pixels by 320
pixels, but at the time of writing no such devices have been announced.
All Windows Phone7
devices will have capacitive touch screens. Capacitive screens tend to
be much more durable than the resistive screens used in many older
devices and tend to be more sensitive. They also offer support for
multitouch input, which is generally not available on resistive devices.
The main disadvantage of capacitive screens is that they require
interaction from a conductive source (such as a finger) and they don't
work with a stylus (although special capacitive styluses are available
if you hunt around). The design of the Windows Phone operating system is
based around touch input rather than stylus input, a decision that is
consistent with most smartphone platforms and operating systems
currently in production.
Windows Phone devices will
support multitouch, with a minimum of four distinct points able to be
tracked at once.
An important consideration
when designing a game for a mobile platform is that the screen
orientation can be rotated when compared to that of a desktop PC,
resulting in a screen that is tall rather than wide. This benefits some
types of games (Tetris-style games, for example), but can be problematic
for others. Fortunately, Windows Phone 7 has extremely good support for
rotating into landscape orientations, so you can take advantage of
whichever screen layout best suits your game.
2. Hardware Buttons
One of the details that
Microsoft has been very strict about for devices running its new
operating system is hardware buttons. All devices must have exactly
three buttons on the front of the device: a Back button, a Windows
button, and a Search button.
Having consistency
over the available buttons is good for developers as it means that we
don't have to worry about lots of combinations of control mechanisms.
However, this limited set of buttons means that there will be no
directional pad available, which is a pity because they are very useful
as a game input device.
Instead we can use the touch
screen for input, and there are lots of clever and creative ways that
this can be done, from designing games that the user interacts with by
touching objects on the screen to displaying movement buttons at the
bottom of the screen for the user to press.
These rigid requirements don't
rule out the possibility of a device manufacturer including a hardware
keyboard with the device, however, and this is likely to be a common
feature among Windows Phone 7 devices. Keyboards can be implemented
either as a slide-out panel behind the screen or below the screen in a
similar style to BlackBerry devices. The presence of a keyboard opens up
the opportunities for the player to control your game, but in most
cases it would be sensible to avoid making this a necessity for your
game to avoid excluding a large proportion of your audience.
3. Processors
The Windows Phone 7
platform specification states that all devices must be equipped with at
least a 1GHz processor. This should result in excellent performance
across all devices.
You should expect processor
speeds to increase as the platform evolves, so it is important to cater
for devices that are running at faster speeds than this, but as a
minimum it does mean that a significant amount of processing power will
be available on all devices.
4. Graphics Hardware
One of the problems that
developers on the Windows Mobile platform faced was in the choice of a
graphics application programming interface (API). It was uncommon for
Windows Mobile devices to have hardware acceleration, which meant that
the only graphics API available across all devices was the Graphics
Device Interface (GDI), which was very lacking both in terms of features
and performance.
This problem can be put firmly
in the past with Windows Phone. The graphics API for high-performance
games is XNA, a powerful library based around the DirectX technology
that has been powering desktop PC games for the last decade. The phone
implementation isn't quite as powerful as on the desktop, but it still
has very impressive capabilities for a mobile device.
Alongside the API is
hardware graphics acceleration, which the phone needs to create
fast-moving, complex two-dimensional and three-dimensional scenes
without bringing the device to its knees. Because it will be included as
standard in all devices, the opportunities for gaming are immense.
5. Location and Orientation
Also standard on all devices will be an accelerometer and a Global Positioning System (GPS) receiver.
The accelerometer can
be very useful for game developers. It allows the device to detect which
way up it is being held and can sense in detail any movement that
results in the device being rotated. This provides an excellent input
control mechanism, allowing players to influence what is happening on
the screen by physically moving their phones.
Probably of less interest
for gaming is the GPS functionality. When appropriate line-of-sight
reception has been established with the GPS satellites, the device can
detect where in the world it is located. This opens opportunities for
making games that revolve around the player's whereabouts, but the scope
for this in gaming is likely to be limited.
6. Cooperation with the Device
Let's not forget an
extremely important fact: your game is running on other people's phones
and personal organizers. They will place more importance on tasks such
as answering a phone call or responding to a calendar reminder alert
than in continuing to play your game.
Running applications
have limited control over what happens when other features of the device
become active. An application that loses focus will be closed down,
regardless of whether the user was finished with it.
These terminated
applications can be resumed at a later time, and the operating system
will indicate that they are being relaunched rather than restarted from
scratch. To ensure that users don't lose their progress in a game, we
can take care to behave nicely under these conditions: we can save the
game state to the device prior to exiting so that it can be
automatically restored the next time the game starts and automatically
pause when the game resumes to allow the user time to adjust to what is
going on. People will appreciate details like these.
This kind of feature often becomes invisible when it works well but is much more likely to be very visible when it doesn't work. Make sure that you take these unexpected interactions into consideration.