|
Features

Developing Online Console Games
Development
Issues
All
the console makers provide socket-level interfaces for network programming.
On PS2, developers can choose from a variety of network stacks,
including Sony Inet, Sony libeenet, SN Systems' NDK, and Access
AVE-TCP (Japan). Each library has its own unique performance characteristics
and features. For instance, the NDK stack includes tools that simulate
various network rates and connection types, while Inet and libeenet
provide access to ISP setup data that may be used in all titles
across the platform.
On
Xbox, the network stack is a combination of Winsock 1.1 and additional
security-related functions. The Xbox network stack automatically
handles packet encryption and authentication. On PS2, developers
can use SCE-RT for traffic encryption, use a middleware solution,
or provide their own security mechanisms.
On
PS2, developers have many choices when it comes to online service
libraries. The SCE-RT library, developed by Sony and RTime (a networking
company Sony acquired) provides game server and lobby functionality,
including account management, matchmaking, voice chat, buddy lists,
clans, and ladders. This library is free to PS2 developers. GameSpy,
one of several popular network middleware vendors, provides libraries
for peer-to-peer matchmaking, statistics, security, and voice chat.
GameSpy provides similar libraries and services for Gamecube. GameSpy's
history with PC network solutions makes it a good choice for cross-platform
development on PCs, PS2, and Gamecube. Pricing is title-dependent
and is negotiated with GameSpy. On Xbox, the Xbox Software Development
Kit (XDK) provides all the APIs and libraries required for accessing
services like matchmaking, friends, statistics, content delivery,
and voice chat. The XDK also includes tools used for Internet simulation.
Xbox
provides technology developed by Microsoft Research for measuring
connection bandwidth and latency. Game developers can use these
functions for detecting the quality of service between various consoles
and servers. On PS2, each network stack varies in its ability to
provide ICMP-level functionality. For instance, SN Systems' NDK
does not provide a ping interface, although the stack will respond
to ICMP pings.
Each
console vendor is taking a different approach to dealing with network
address translators (NATs). A NAT is a device (typically a router
or gateway) that allows multiple network devices to share an IP
address. NATs are prevalent in home environments where an Internet
connection is shared among PCs and game consoles. Some NATs also
act as firewalls, blocking suspicious packets. Such NATs can be
difficult for games to negotiate, particularly peer-to-peer games.
The only viable option requires a mediator informing both peers
about their port mappings. On PS2, games can use Sony's SCE-RT library
or middleware libraries and services like GameSpy. On Xbox, NATs
are handled automatically using a combination of the network stack
and the Live service.
On
Xbox, the Xbox Dashboard handles all network configuration issues.
If an Xbox game can't establish a connection to Xbox Live, the game
simply allows the player to run the Dashboard. The Dashboard saves
network settings on the Xbox hard disk. Xbox games don't need to
provide custom network management. PS2 players configure the Sony
PS2 network adapter for connection to their ISP using the Network
Startup Disc that comes with the adapter, which then saves these
settings to the memory card for use by all games. Developers of
PS2 games may also choose to embed a standard network-configuration
UI library provided by Sony, in case players haven't yet set up
the network configuration with the Network Startup Disc.
Because
of their architecture and memory constraints, consoles have other
limitations in comparison to PCs. Even though console network stacks
require a comparatively small amount of memory, every byte is precious
on a console. For instance, on PS2 the IOP (I/O Processor) memory
can be a limiting factor, since it's used to load drivers for USB,
keyboards, the network adapter, game pads, and memory cards. On
Xbox, memory is not generally an issue, since the unified 64MB can
be utilized by all devices. However, the automatic Xbox packet encryption
and NAT traversal algorithms require developers to be aware of underlying
performance issues they're not used to if they've done networking
on other platforms.
On
PS2, the first-generation network stacks required multithreaded
implementations to achieve asynchronous network I/O. These first-generation
stacks also contained many operations that would block due to data
transfers between the Emotion Engine CPU (EE) and the IOP. The latest
Sony network library provides a complete BSD socket API on the EE.
This library eliminates previous blocking issues, and also abstracts
away the underlying multithreaded I/O implementation.
On
Xbox, the networking libraries are designed to work primarily in
a single-threaded environment, although multithreading is also supported.
The Xbox Live libraries use a task-pumping architecture. Each online
task (searching for game sessions, for example) is "pumped"
once per game loop. During this period, the task performs a minimal
amount of work and then returns control to the game. Typically,
the minimal amount of work simply involves checking to see if data
has arrived on the network.
Testing
Perhaps
the most difficult part of developing multiplayer games is testing
and tuning. In the PC world, the answer to this problem seems to
be to let the players test the game, then release patches, ad infinitum.
The console world does not follow this pattern. Once a console game
has been certified and released by the console manufacturer, it
is virtually never updated. That means console multiplayer games
must undergo extensive real-world testing long before they ship.
There
are multiple approaches to the problem of testing multiplayer console
games, and the console manufacturers still have a long way to go
to improve life for developers in this area. For instance, early
PS2 online game developers had to test their games on every possible
USB modem, which Sony now discourages supporting in favor of the
official network adapters. Early Xbox Live game developers had to
build custom network-testing tools because tools provided by Microsoft
were limited.
The
primary problem in testing multiplayer games is emulating real-world
Internet conditions. Even sophisticated tools fall short, because
the Internet is such an amorphous and changing environment. For
instance, the Internet doesn't randomly drop or delay packets -
drops and delays tend to clump together as router queues become
clogged. Imitating this behavior in a realistic fashion is extremely
difficult.
All
the console manufacturers are supporting online beta programs to
various degrees. Microsoft runs an Xbox online beta program with
selected players on custom Xbox hardware. PS2 developers have two
options: Sony can administer the beta, drawing from a pool of network
adapter owners, or the publisher itself can administer the beta
with beta discs mastered by Sony. From a development perspective,
the important part is planning for a beta period, and including
time in the schedule to respond to issues raised by the beta.
Console
manufacturers also include online testing as part of their normal
game certification process. Microsoft has many additional certification
requirements for Xbox Live games, mainly around specific features
like friends and voice. Microsoft also has minimum bandwidth and
latency requirements which games must work under without noticeable
lags or stutters. Sony has no such official requirements. Games
are simply expected to perform well for the number of players they
officially support.
Microsoft
is alone in requiring that all games support a patching mechanism
called AutoUpdate. During Live sign-in, if the game detects that
a newer version is available, it automatically downloads the updated
version to the hard disk. The primary purpose of this feature is
for fixing security flaws or scaling issues in the game. Sony also
has a limited ability for games to patch after release. Currently,
only one PS2 title supports patches, which are stored on the memory
card.
|
Online
/ Multiplayer Console Comparison
|
|
Feature
|
PS2
|
Gamecube
|
Xbox
|
|
Console
launch date (North America)
|
October
2000
|
November
2001
|
November
2001
|
|
Online
launch date (North America)
|
August
2002
|
October
2002
|
November
2002
|
|
Internet
connection
|
Dial-up/broadband
|
Dial-up/broadband
|
Broadband
only
|
|
Networking
hardware
|
Network
Adaptor ($40): supports both dial-up & broadband
|
Modern
Adaptor ($35) or broadband adaptor ($35)
|
Built-in
|
|
Hard
disk
|
Add-on
(currently Japan only)
|
None
currently
|
Built-in
|
|
Voice
headset
|
Included
with SOCOM ($50)
|
Add-on
(price unknown)
|
Included
with Starter Kit ($50)
|
|
Online
subscription, per year
|
Free
|
Free
|
Included
with Starter Kit ($50)
|
|
Ability
for games to bill customer for subscriptions or content
|
Yes
|
Yes
|
Yes
|
|
Support
for custom game servers
|
Yes
|
Yes
|
Yes
|
|
Game
server hosting
|
Sony,
publisher, or middleware provider may host
|
Publisher
or middleware provider may host
|
Microsoft
or publisher may host (with MS approval)
|
|
Games
require voice communication
|
No
|
No
|
Yes
|
|
Games
support voice communication
|
Some
|
Unknown
|
All
|
|
Keyboard
option
|
Yes
|
Yes
|
None
currently
|
|
Network
configuration
|
Network
Startup Disc, stored to memory card (and optionally in-game)
|
Unknown
|
Xbox
Dashboard (never in-game)
|
|
Packet
encryption/authentication
|
SCE-RT
or middleware
|
Middleware
|
Xbox
network stack
|
|
NAT
traversal
|
SCE-RT
or middleware
|
Middleware
|
Xbox
network stack
|
|
Supports
global identity
|
Coming
in some games
|
Unknown
|
Yes
|
|
Buddy
lists
|
SCE-RT
or middleware
|
Middleware
|
XDK
|
|
Peer-to-peer
matchmaking
|
SCE-RT
or middleware
|
Middleware
|
XDK
|
|
Game
statistics
|
Middleware
|
Middleware
|
XDK
|
|
Supports
downloaded content
|
Memory
card or hard disk add-on
|
Unknown
|
Hard
disk
|
|
Voice
libraries
|
SCE-RT
or middleware
|
Middleware
|
XDK
|
|
Cross-platform
communication possible
|
Yes
|
Yes
|
No
|
|
Communication
with external web or other types of servers possible
|
Yes
|
Yes
|
No
|
|
Mod
chip detection
|
None
currently
|
No
|
Yes
|
|
Network
interface
|
Sockets
(multiple net stacks available)
|
Sockets
|
Sockets
(Winsock)
|
|
Supported
protocols
|
UDP,
TCP, custom voice protocol, others
|
UDP,
TCP, others
|
UDP,
TCP, custom voice protocol
|
|
Supports
patching
|
Via
memory card or hard disk add-on
|
No
|
Yes;
security fixes only
|
The
Future
The
future for online console games looks bright. The fact that every
console manufacturer is supporting online play is a good indication
that it will become an important feature of new games. The ability
to use the Internet affects single-player console games as well.
Console games now have the opportunity to persist game scores, download
new levels or rosters, inform players of tournaments and game-related
news, advertise fresh content within the game, and even access real-time
data like weather and sports scores.
One
major frontier for online console games is figuring out ways of
building community. Some new games are already starting to do this
in simple ways. For instance, MotoGP, a motorcycle racing
game that comes with the Xbox Live Starter Kit, shows how you rank,
not just overall, but against your friends. Only a handful of players
have the incentive to be the best racers in the world, but almost
everybody has an incentive to beat the people they play with every
day. This is just one example of using the community aspect of multiplayer
gaming to enhance the game.
In
the future, expect console games and services that integrate player
feedback mechanisms (like Ebay.com customer ratings), clans, tournaments,
ladders, and detailed game stats. Expect web interfaces with features
like sign-up, statistics, session reservations, game ladders, and
so forth. Microsoft already supports a minimal upload service for
game scores and leaderboards. Future versions of Xbox Live may support
content upload for things like replays, game levels, and perhaps
even game mods. With the advent of voice as a viable communication
mechanism (as in SOCOM, for example), developers have the
opportunity to innovate in new ways, including command and control
mechanisms, character-specific voice masks, and other clever voice
tricks.
Online
console games have the potential for changing gameplay in the living
room. The ability to invite your friends to your virtual couch and
enjoy a high-quality gaming experience is irresistible to most players.
The market itself is still small - not many folks have an Internet
connection next to their TV - but it's growing quickly, and the
technology for enabling online play within console games continues
to improve.
For
More Information: Online Console Middleware Providers
Gamespy
- www.gamespy.com
SN Systems - www.snsystems.com
Access - www.access.co.jp/english
______________________________________________________
|