Gamasutra: The Art & Business of Making Gamesspacer
Developing Online Console Games
View All     RSS
June 24, 2017
arrowPress Releases
June 24, 2017
Games Press
View All     RSS






If you enjoy reading this site, you might also want to check out these UBM Tech sites:


 
Developing Online Console Games

March 28, 2003 Article Start Previous Page 2 of 2
 

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


Article Start Previous Page 2 of 2

Related Jobs

Tangentlemen
Tangentlemen — Playa Vista, California, United States
[06.23.17]

AI Engineer
Infinity Ward / Activision
Infinity Ward / Activision — Woodland Hills, California, United States
[06.23.17]

Senior Rendering Engineer
Infinity Ward / Activision
Infinity Ward / Activision — Woodland Hills, California, United States
[06.23.17]

Engine Software Engineer
Infinity Ward / Activision
Infinity Ward / Activision — Woodland Hills, California, United States
[06.23.17]

Associate Tools Engineer





Loading Comments

loader image