做人的原则和底线:Online game infrastructures, Part 4: Address ...

来源:百度文库 编辑:中财网 时间:2024/04/29 02:34:56

Online game infrastructures, Part 4: Address community requirements, game upgrades, and account maintenance

An architectural approach to providing online game infrastructures

Document options

Print this page

E-mail this page


Hey there! developerWorks is using Twitter

Follow us


Rate this page

Help us improve this content


Level: Introductory

Veronika Megler (vmegler@us.ibm.com), Senior IT Architect, IBM Sales & Distribution

27 Jul 2004

The business of the online gaming industry is a complex one, requiring the input and integration of many variables -- people, business conditions, product goals, and more -- to create, implement, and distribute a successful online game. In the fourth of five articles in this series, IBM® Senior IT Architect Veronika Megler offers some patterns-based solutions to handle community interaction needs, to address adding new content for users of the game environment, and to provide assistance when users want it.


It's been an in-depth journey getting to this point, but you're almost finished with your project -- establishing the groundwork so game providers can implement an online game environment.

In Part 1, you learned to:

  • Migrate from a game focus to a business focus, using an e-commerce model to ensure success.
  • Apply business patterns to the development of a game environment.
  • Craft a business description of the environment you want.
  • Take that description and pull out pertinent elements, and build a solution overview of the project.
  • Use the overview to identify patterns you need to develop the infrastructure.

In Part 2, you learned to:

  • Refocus on the game, applying a patterns-based perspective to illuminate its design.
  • Outline and understand why you should choose certain patterns, based on your determinations.
  • Walk through the application, applying patterns as you go.
  • Examine scale requirements and determine which patterns fit those best.
  • Integrate Runtime patterns into a workable solution.
  • Match real-world products with the runtime functions.
  • Determine when and where reuse (buying or borrowing) is appropriate.

In Part 3, you learned how to:

  • Identify a new scenario -- game playing as a lifestyle -- and the resulting requirements.
  • Select the requirements needed to create ancillary products for the gamer to purchase.
  • Identify potential graphics issues in translating game images to physical items.
  • Use the components necessary to build a barter/exchange system that works within the gaming world and between the game environment and the real world.
  • Examine the realities of connectivity between the game and the multitude of devices that gamers can use.
  • Understand the critical issues in connectivity regarding devices.
  • Match the useful patterns to help adapt the solution to allow a larger number of potential gamers to access the most services in the environment

Find, also, the key design concepts discussed in this series in this handy chart. In this installment, you'll tackle the how-to issues that arise when gamers want to interact with other gamers in a variety of ways, when you want to introduce new content to the game, and when gamers want assistance from the environment.

Community: friends and enemies

Of course, your game has to be fun and your content fresh, but these attributes are not enough in themselves to ensure success after the first few months of the game's availability. You know from the experiences of other game providers that gamers continue to play a game -- and pay the access fees -- if a feeling of community develops among them. It is in your interest to foster this sense of community in any way you can.

You need to provide a set of information for the players to access:

  • FAQs about the game
  • Interviews with the authors or the first person to reach each higher level in the game
  • Tutorials about how to play
  • A searchable database of questions asked and answered by customer service

You also want to provide information about service availability, upcoming maintenance, new downloads, and so on. Given the quantity of information you want to provide, you understand the value of using portal technology.

While this material can clearly be part of creating a community, some industry watchers believe the most effective communities occur when gamers are given the basic tools to create their own communities.

How can you help make this happen? Take a look at the following scenario.

A scenario

A number of self-regulating communities, each associated with a specific in-game guild, have spontaneously formed around your game. One of the most popular was started by Ken. It is a Star Trek-themed guild that holds its chat sessions and updates its news board in Klingon. To make it a little more accessible to guild members, they use an English-alphabet interpretation of Klingon rather than the Klingon character set -- except in special cases. You are considering adding text-to-speech capabilities, to include a Klingon reader.

Ken and other members of this guild get an extra kick out of playing tournaments against an opposing Star Wars-themed guild. For the quorums of each guild to compete against each other, they regularly schedule times using the calendaring functions you've made available.

To make the game more accessible to new players and build a community around the more casual, less hard-core players, you've created a Newbies' Guild, which features a little extra hand-holding, more basic information, and more structured quests. One way you provide the hand-holding is by creating videos for newbies that show some of the tricks of the game.

The Newbies' Guild is where Barbie and her friends hang out. People can graduate from this guild and join the other guilds, giving the more committed players an in-game career path. You provide some information that allows players to choose their new guild intelligently, such as average play-time by guild members, average score, seniority of the characters, and so on. This way, the game can allow self-selecting communities of every level of commitment, from casual gamer to the hard-core aficionado.

Oh, and whenever Barbie's playing, she tries to locate Ken in the game. She gets extra enjoyment from appearing where he is and teasing or interfering with his character, much to his frustration.

She's also recently started flirting with another gamer, Blaine. Now, if only she can track him down in the game!

The new, community-oriented requirements

You've just identified a number of collaboration- and community-oriented requirements, including:

  • The need for self-regulating communities in the form of guilds (These communities have access to a number of functions, such as Web pages personalized for their guild, calendars that they maintain, and chat capabilities. In this case, you also have chat in Klingon.)
  • A focus on purpose-built content (The Newbies' Guild, run as another community, represents this requirement.)
  • Personalization, by recognizing a guild-member relationship and providing the member with preferred, guild-related content
  • Streaming video for education
  • Presence (While Barbie can find Ken -- and Blaine -- by scouting successive locations in the game, she might want the ability to communicate with other players inside the game to see if they are present or to potentially find them.)
  • The need to provide some level of matchmaking (The matchmaking capability uses statistics gathered about in-game play.)

Look more closely at this diverse set of community-related activities. Many of them are standard portal-based functions you've already provided -- personalization of content, content aggregation, and so on.



Back to top

Serving the community

Several products available today allow portal members to administer, manage, and update a set of pages. (For example, IBM Lotus® QuickPlace® that works with IBM WebSphere® Portal server, provides such a capability.)

Since the Klingon guild is maintaining its own set of pages in an English alphabet, they can provide the content in Klingon without any technical concerns on your part. You can allow the guild to provide links between their own pages with Klingon labels; they can choose to add images that contain special embedded characters, without requiring additional support from you. You can use available Klingon pronunciation guides to create the Klingon text-to-speech reader, if you choose to do so.

In some cases, today's portals also provide chat capabilities [in the case of WebSphere Portal server, through Lotus Instant Messaging and Web Conferencing (Sametime®) portlets]. Once you provide access to chat, noting whether someone is present is a small step since many chat products already provide online awareness capability.

If you create this chat infrastructure external to the game, you could potentially use the same infrastructure to support chat inside the game. For example, Lotus Instant Messaging and Web Conferencing (Sametime) provides a toolkit that can be used from inside application code to provide chat functions. If these functions are being called from your game code, you can manage the representation of the chat window and even filter or modify the chat traffic. In theory, this will let you also use the chat infrastructure from a nontraditional device, such as a game console.

Can Barbie locate Ken in the game? You could certainly provide an indicator of whether or not someone on a gamer's buddy list is currently playing the game. It's technically possible to add a game location indicator to someone's presence indication in the chat program; however, this is something that gamers might not want to divulge (like Ken, after the first time Barbie disrupted him). Consider adding an indicator that gives a rough idea of what sector in the overall game map the buddies are in. This at least helps Barbie identify in which direction to head, while not making it too easy to find Ken.

Many groupware products provide group calendaring capabilities you want to use and allow each guild to maintain their own calendar. Many groupware products (Lotus Notes®, for example) can be integrated with portals. So, providing this capability with off-the-shelf components is a straightforward task.

Matchmaking is a little more difficult. This is a common function in the game industry, and it is possible to purchase off-the-shelf applications (generally, collections of APIs) that provide this functionality. To collect and process game statistics that inform the matchmaking component, you'll add a data-analysis package to your game zone.


Figure 1. Adding community functions to the game infrastructure



Back to top

Game evolution

Now add another twist to upgrade the game and let gamers access new content. Here your'e moving into a new set of functions: functions that exist outside the basic applications, but are important to maintaining and managing your business.

A scenario

Ken has heard a patch is available for the game. He accesses your Web site and searches for the upgrade. When he finds it, he downloads and installs it.

He decides, in a moment of goodwill, to upgrade the game on Barbie's computer, too. He notices that it's been a long time since she upgraded her version of the game. That's OK, though, because the download site automatically detects the current version of the game and download all required fixes.

On her cell phone/hybrid device, Barbie receives a notification that a new version is available, and she clicks Accept to install it. She's excited because she's heard that this version contains a completely new set of customizations she can play with.

The new upgrade requirements

Here is the list of requirements just added in this scenario:

  • Download a patch.
  • Install the patch.
  • Recognize the version of the gamer's game and install all patches to take it to the latest version.
  • Provide an indicator that a new version is available.
  • Provide automatic install when the user accepts.

As games get larger and more complex, the size of the patch files also increases. For example, Anarchy Online had a 75MB patch on day one; for someone with a PC on a slow dial-up connection, downloading a patch this size becomes an impossible challenge. Even for someone on a broadband connection, it's a huge annoyance.

Since many of the changes provided in patch files are required to improve game play, the patch file is something that most gamers are likely to download. The bandwidth required by thousands (or, hopefully, tens of thousands) of gamers downloading the file in a fairly short period of time is quite large.



Back to top

Aiding content evolution

While you cannot help with the last mile (the speed of individual gamer's access), you can ensure the only constraint the gamer encounters is their connection speed and not one created by bottlenecks in your infrastructure.

Well-understood methods can reduce the strain that large downloads create on the core network, even if they do not help with the last mile. Caching the patch files at the edge of the network is a simple approach to reducing the load inside the infrastructure. You can also work with a service provider that specializes in providing caches in points of presence close to concentrations of your gamers.

From your side, you need to create a patch file or upgrade file that is internally consistent and serially upgradeable. This means:

  • The upgrade should not reintroduce any previously fixed bugs (first, do no harm).
  • The upgrade should have all the required components and co-requisites of the fixes that it does have.
  • Each upgrade should layer atop the previous upgrade without concerns about incompatibility.

To manage patches and upgrades on an ongoing basis, it is important that adequate problem-management and version-control capabilities are implemented in your development processes. You need to:

  • Recognize which problems were fixed in each patch and which problems remain to be fixed.
  • Link this information to your gamer-accessible problem database so a gamer who receives an error can quickly and painlessly identify whether an available upgrade is known to fix his problem.
  • Recognize which patches were downloaded and installed on this gamer's version of the game and which patches still need to be downloaded.

A gamer finds few things more frustrating than downloading patches and upgrading software, only to discover that he still has the same problem. Then, he calls the help desk and someone tells him that it's a known problem that has not been fixed yet.

Generally, you should plan to group the patches into a bundle, and give them a consistent number such as V1.8.11. When a gamer connects and requests a download of a patch but has not previously downloaded all prerequisite patches, you should identify the list of patch files he requires to upgrade his current level to his desired level, and then automatically download all of them.

A complementary approach -- one that may be particularly appropriate for pervasive devices such as cell phones -- is to use a managed provisioning system to provide download capabilities. For example, a new patch becomes available for a specific device type or class of devices (when, say, just the game version for the N-Gage has a problem). The administrator creates a job that will notify all devices of this type that a new patch is available when the user next connects to the site. The provisioning system keeps track of which devices have successfully downloaded the patch and which have not. As a result, if a gamer connects after having missed several patch notifications, the provisioning system can notify the user of the full set of patches they should download, ensure that they are applied in the correct order and that the next one is not started until the previous one has been successful.

This kind of functionality has become popular for enterprise systems during the past few years because of the difficulty of ensuring that large numbers of PCs and laptops receive security patches for the most recent worm or virus. It is becoming more popular in consumer software, too; for example, the upgrade capability in Quicken or the operating system fixes downloaded by Dell. IBM also has an off-the-shelf component called Tivoli® Device Manager, which is designed to manage this kind of environment.

Another way of adding content

You can add content to the game using a different method.

In the game, Buffboy approaches a ferry at the bank of a river. The ferry requires a toll. Paying the toll will let Buffboy take the ferry to a new land, complete with new challenges and quests.

This is a content upgrade of a different kind; it gives you a nice, neat way to expand and refresh the content available to the gamer. You can easily place locations around the game that act as entry points to additional content. Whether someone has the right to pass into the new section of the game needs to be checked only when their character arrives at the entry point and attempts to enter. Once they are in the new section of the map, you can assume that they have the right to enter.

Implementing the toll is also simple, using mechanisms similar to those discussed in the Creating a barter/exchange system section in part three of this series. The right to access the new content could be listed as a catalog item external to the game for the gamer to purchase. In reality, paying the purchase price alters a setting in the gamer's directory entry. Once the character reaches the toll bridge, your software can check the gamer's directory entry to establish whether they've already paid.

In addition, you can set a price in scrip and the gamer can make a purchase from inside the game when his character approaches the toll gate. At that point, a download is triggered if changes are required on the game client. If the new part of the game content merely reuses existing code on the client, then no download may be required.

This scenario adds quite a few functions here. However, if you look at the services that your infrastructure needs to support, you'll discover that these functions are already provided -- including portal functions and several forms of collaboration, such as chat, e-mail, and presence. What you have done is reused this same infrastructure to provide new capabilities.



Back to top

Helping the users

Access to customer service is also a key part of creating the community. Expect customer service needs to vary in many ways, from resetting access passwords to getting a player unstuck, from handling account disputes to fielding complaints about the behavior of other players. And of course, collecting information about bugs.

For a large game, customer service can be a significant expense. Automation is critical. A useful rule of thumb:

Individual contacts with your gamer base can easily equal the total number of subscribers you have.

These contacts range from technical support requests, billing and account management issues, e-mails, and in-game help requests.

A scenario

Now, add one last set of meta-level functions.

Ken needs to pay his bill. He thinks he's earned enough from weapon and spell sales to purchase the new version of the game that is about to become available. He wants to check whether the new graphics are at a sufficient resolution to exploit a new, high-definition screen he plans to purchase. Meanwhile, Barbie has got herself into a predicament. Whenever she tries to play, the game tells her someone else is already playing her character. She needs to call on one of the game gods to get her going again.

The new customer-service requirements

You are adding the following functions (plus some obvious extensions):

  • User account management (self-service) that allows gamers to renew their subscription, check their account status and balance, and so on (You want to provide this function only for registered users.)
  • Customer service through multiple mechanisms: e-mail, chat, or telephone (only for registered users)

You must strike a balance: you need to provide easy access to appropriate assistance without drowning under the volume of requests. You can move in this direction by providing useful self-service mechanisms to gamers. In situations in which this is not sufficient, you can provide access to customer service personnel through chat.

The solutions

As a last resort, or when the gamer cannot get access at all, you can provide a telephone number. In this situation, a voice response unit can reduce the cost of customer service by providing information and simpler or more common transactions. Automate simple transactions and provide personalized responses by using Voice over IP (VoIP) technology combined with a VXML browser. Recent advances have enabled the movement from fixed, preprogrammed responses and inflexible programming models requiring specialized skills to technologies that are easy to program and integrate.

If you add these components into our Runtime pattern overlay, you'll end up with the following updated diagram.


Figure 2. Final overlay of Runtime patterns



Back to top

What's next?

In this article, I discussed needed community-issue functions such as:

  • Providing for self-regulating communities in the form of guilds
  • Focusing on purpose-built content and personalization
  • Giving groups the ability to recognize their own members for the purpose of content distribution
  • Offering gamer education
  • Identifying the need some users might have to communicate with other players within the game
  • Possibly providing a statistics-based function that could help "matchmake" gamers

 

When it comes to upgrade issues, I discussed:

  • Downloading and installing patches
  • Recognizing the current version a player is using
  • Automatically installing any patches needed to bring that version up to speed
  • Providing an indicator of when a new version is available
  • Offering automatic, user-accepted installs of new versions

 

For customer-assistance issues, you examined self-service user account management that would allow registered gamers to renew their subscription, check their account status and balance, and additional functions. You learned when to use customer service over multiple mechanisms such as e-mail, chat, and telephone.

For all of the new functions covered, I offered pattern advice and helped start the process of matching the functions with real-world products to meet those requirements.

In the next (and last) installment in this series, I'll recap the entire process and describe how to put the game environment to work. I'll deliver a revised build-buy-borrow outline, complete with some real-world product solutions, and offer some ideas about further potential functions for the environment you may want to consider.



Resources

  • With Business Integration for Games (BIG), provide a framework using Web services as the underpinning technology and take advantage of reusable business function, distributed throughout the network.

  • Try Patterns for e-business Development Kit Lite (PDK Lite), a self-configuring, end-to-end skeleton Web application in one self-extracting package for implementing various Self-Service solution designs.

  • Visit The Klingon Language Institute to discover some of the difficulties involved when serving community needs (such as the need to be able to easily "internationalize" content). So does Klingon for the Galactic Traveler (Star Trek; 1997), by Mark Okrand.

  • Read the author's other articles in this series:
    • For more about developing a high-level business description and identifying patterns, review "Online game infrastructures, Part 1: Develop a high-level business description and identify patterns" (developerWorks, June 2004).
    • In "Online game infrastructures, Part 2: Concentrate on the game," focus on scalability options and complete the last two steps of the patterns-based solutions modeling as you integrate the runtime patterns of the online games infrastructure into a first-level solution and outline whether outsourcing is the best path (developerWorks, June 2004).
    • In "Online game infrastructures, Part 3: Integrate additional device-support functions," focus on integrating new device-support functions into the existing online games infrastructure and meet e-commerce and device-connectivity requirements (developerWorks, July 2004).
    • Recap the game infrastructure design process, look at a final revised build-buy-borrow template, and note a few additional potential functions in Online game infrastructures, Part 5: Make the game work (developerWorks, August 2004).

  • Visit the IBM e-business Patterns site, a repository of pattern resources, including a walkthrough exercise that may make it easier to choose the correct patterns for your design.

  • Check out the The International Game Developers Association, a non-profit membership organization that advocates globally on issues related to digital game creation.

  • Get a quick overview of pattern usage in "Patterns for e-business" (developerWorks, June 2000).

  • "Business Integration for games: An introduction to online games and e-business infrastructure" (developerWorks, October 2003) discusses the technology solutions behind the business and revenue models of online games systems.

  • In "Tetris meets the Java bean," learn how to take Tetris game elements, wrap them as Java objects, and create reusable game components (developerWorks, April 2002).

  • Read "'EverQuest' spins its own economy" and uncover the closed-economy boom spawned by this game.

  • In "eBay, Yahoo crack down on fantasy sales" and "Sony to ban sale of online characters from its popular gaming sites," get the details of eBay's, Yahoo's, and Sony's responses to the closed EverQuest.

  • Enable collaboration capabilities for portal users with WebSphere and Lotus Sametime technologies in "Integrating WebSphere Portal Extend V4.2.1 with Lotus Sametime 3.0" (developerWorks, June 2003).

  • Integrate VoIP and VXML in "Talk to my VoIP" (developerWorks, November 2002).

  • Patterns for e-business: A Strategy for Reuse (IBM Press, 2001), by Adams, Koushik, Vasudeva, and Galambos, is the basis for this article. Read a chapter from the book.

  • Check out Developing Online Games: An Insider's Guide (O'Reilly & Associates; 1996), by Mulligan and Patrovsky, an excellent book describing the business requirements for running an online games infrastructure.

  • Find articles about every aspect of building for the World Wide Web in the developerWorks Web Architecture zone.

  • Browse for books on these and other technical topics.

  • Develop and test your Web applications using the latest IBM® tools and middleware with a developerWorks Subscription: You get IBM software from WebSphere®, DB2®, Lotus®, Rational®, and Tivoli®, and a license to use the software for 12 months, all for less money than you might think.


About the author

 

In the early 1980s, Veronika Megler was part of the birth of the computer games industry in Australia as the first employee of the heralded Melbourne House Publisher. While there, she wrote best-selling computer games, including a legendary cult game, the best-selling game ever on the Spectrum 64 home computer, The Hobbit. Twenty years has taken her career full circle -- after working in operations, application development, systems programming, systems management disciplines, project management, and IT management consulting, she spent a large part of 2003 working to match IBM's products with the nascent online games industry. Now a Senior IT Architect for IBM Sales and Distribution working on Offerings for Emerging and Competitive Accounts, she is passionate about making IBM solutions and technology usable by customers and consumers. She enjoys building architectural solutions to solve real business problems, then proving they work in practice. Reach Veronika at vmegler@us.ibm.com.