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:
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 StructuresIf 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 AdditionOnline 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 LanguageIs 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 ClientOne 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).
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.
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 APIAlmost 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 ArrivedGraphic 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:
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. |