Where to Start?


In many ways, choosing technology for an online game starts at the same place as a retail home unit: with the basic libraries and commercial development tools available on the market today. Since you'll be working with both a client and a server complex, there are some interesting additions:

  • Base (data structures and utilities)

  • Database

  • Encryption

  • Input/Output (I/O) and sockets

  • Network messaging (TCP or UDP, with UDP preferable in most cases)

  • 2D/3D sound

  • 2D/3D graphics

Note that the encryption, I/O and sockets, and network messaging are going to require a different skill set and core competencies than most game development teams normally feature.

What Database, Database Structure, Client View, and Language Will You Use?

Let's approach these topics one at a time.

Database and Data Structures

If you aren't planning to have your online game be database-driven, you're already about to make a huge error. The easiest way to add content over time is to make sure the database and structures support easy, on-the-fly additions of new objects, classes, and art.

Objects and Content Addition

Online games must be refreshed with new content constantly to keep the game alive and exciting for the players. The easiest and most convenient method for this is simply downloading the new content onto the player's computer via the patching process.

If you are going to sanely add content to your game over time, using a 3D client, objects, and a flexible database on the backend are pretty much necessities. Take, for example, UO 's situation from launch in 1997 until late 2000/early 2001, when UO: Third Dawn , the 3D upgrade, was shipped. Until Third Dawn , UO 's structure for the art and graphics files used what can only be called the "monoblock" approach: one huge, inherent file that was several hundred megabytes in size. This meant that to add even one piece of new content, the whole file had to be reinstalled, thus producing an impossible patch size for any player. If the live team wanted to upgrade or add content on the client side, it had to convince EA to ship an expansion pack; this hindered content addition for years , until the 3D upgrade was mandated by then Online Services VP Gordon Walton and ramrodded by live team producer and experienced 3D hand Rick Hall.

In most shops , unless the developers are building a database from scratch, a commercial database product such as MS SQL Server, MySQL Server, or Oracle is the main product in use. Either option (build or buy) has its advantages, but in general, it makes the most sense for a team new to online game development to pick a commercially available product; there are more people out there who know MS SQL Server or Oracle than your home-grown alternative.

C/C++, Object-Oriented Language

Is there any PC development group not using C/C++ these days? Most of the shops we queried were using Microsoft C++ and objects. The general consensus seems to be that the use of objects gives far more flexibility in design and makes online games easier to manipulate and change after launch.

The Client

One of the key choices the team will need to make at the outset is whether to go 3D, first person with the interface, like EverQuest , or isolinear, like Lineage: The Bloodpledge . There are a number of considerations that will go into the decision.

3D First/Third Person Versus Isolinear 3D or Flat 2D ("God's Eye View")

Both interfaces are in use today, but there are more 3D first/third-person online games than isolinear, especially in the PW niche. The 3D first/ third-person solution is most popular with developers in the US and Europe ( EverQuest , Asheron's Call , and Dark Age of Camelot ); the isolinear interface style is very popular in Asia ( Lineage and numerous imitators). See Figures 7.1 and 7.2 for an example of each view.

Figure 7.1. A 3D, first-person interface, from Funcom's Anarchy Online . Most first-person interfaces allow the player to set the camera view to third person (which means the player can be viewed on screen).

graphics/07fig01.gif

Figure 7.2. An isolinear interface from Electronic Arts/Maxis' The Sims Online . An isolinear view shows the player and the surrounding terrain from a god's-eye view, usually in what is called a "raked position," which means the view is not from directly overhead, but from approximately ½ to ¾ of the way from ground level to directly overhead.

graphics/07fig02.gif

Which interface to use is really a matter of design preference and whether or not your team has expertise with one style or the other. Among the player base, the most popular form of interface is the first/third-person, as it is considered more immersive than a top-down view. This may be more a matter of design and game mechanics choice than anything else; UO is one of the few major isolinear games in the PW niche, but it has more depth and breadth than any other existing online game, PW or hybrid.

Designers are beginning to experiment with multiple interfaces, such as combining an isolinear, real-time strategy interface for resource management, but using the first/third-person interface when the player is actually moving about with a character.

Microsoft's DirectX API

Almost every developer working with IBM-compatible PCs today (about 95% of the total market) is working with DirectX, or at least some portion of it. For the uninitiated, DirectX is an applications programming interface (API) that allows programmers to access PC hardware directly in Windows without having to write hardware-specific code. It is somewhat loosely based on the company's component object model (COM), the same technology that drives ActiveX controls. The API includes various modules for dealing with discrete PC functions, such as DirectGraphics (version 8 combined Direct3D and DirectDraw), DirectShow, DirectSound, DirectMusic, DirectInput, and DirectPlay.

While there have been complaints about the clunky , bloated code, numerous updates to learn (eight major version marks in fewer than seven years), and lack of OpenGL support, in general, the API has been well accepted.

Pretty Pictures, Polygon Counts, and Graphic Accelerators: Your Living Hell Has Arrived

Graphic accelerators have become standard issue with new PCs, and there is no doubt they have allowed the creation of ever more realistic and beautiful graphics in all computer games. They have also greatly increased production and development costs because players expect developers to take advantage of the ever- rising on-screen polygon counts, frame display rates, finer textures and meshes, and every bell and whistle imaginable to make a game as visually stunning as possible.

There are two main problems here:

  • In an online game, the more graphic data you have to load, the more latency the player is likely to experience and the more complaints about lag your customer support (CS) staff will receive. For example, at the time of this writing, Anarchy Online ( AO ) was probably the most visually stunning online game currently on the market. However, when a player zones into a city area, even the most buffed-out PC can take as long as a minute to finally finish loading all those stunning textures and 3D objects ”and these are all static objects, built into the terrain. One can imagine the delays if they were dynamic objects that the server had to first identify for the player, then load as he/she came in range.

  • While most accelerators use the same two or three basic chipsets, mainly being NVidia's Quadro and GeForce and ATI's Radeon, accelerator board makers such as Matrox, ATI, and NVidia have different standards, configurations, and sometimes wildly different software drivers. Toss in Microsoft's DirectX API, which allows developers to access hardware directly through Windows, and the mix can be even more volatile. Since it is virtually impossible for the manufacturers or game developers to test the graphics chipsets and their software drivers with even a significant number of PC hardware and software configurations, there are always going to be conflicts that cause some games and applications to react weirdly or not work at all. The fact that the drivers included with new PCs are probably six months out of date by the time a PC is sold to the consumer (one or more updates have already been issued) also increases the potential for software conflicts.

During the later test phases, accelerator conflicts are likely to become one of the banes of your existence, so be prepared for it.

After launch, conflicts are generally easily fixed by downloading an updated software driver for the chipset. In the meantime, however, it also probably means that your player relations staff will be bombarded with complaints and demands that the problem be fixed.



Developing Online Games. An Insiders Guide
Developing Online Games: An Insiders Guide (Nrg-Programming)
ISBN: 1592730000
EAN: 2147483647
Year: 2003
Pages: 230

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net