Building the Right Tools


"You will need tools for everything! Hire lots of tool and library coders. Use money to develop brilliant tools. Make decent and efficient GUIs. And force the coders to work with their own tools before they ask anyone else to work with them."

Thomas Howalt , Funcom

The tools and their capabilities should be fully specified in the game and technical design documents. This is another case where the lead designer and his/her team and the technology builders must work closely together to ensure that nothing escapes notice during the design phase; after all, your designers will be doing quite a bit of the scripting of the game mechanics. It can be hell to realize during development that you forgot to specify the scripting capability to modify a weapon's effectiveness by a character's inventory weight load and then have to try to retool the scripting language to match.

Where most teams get into trouble is in not building the tools to handle those minimal capabilities right at the outset of the project.

World-Building Tools and Editors

The world-builders/editors are probably the most important tools you'll build first. These are what your designers and scripters (collectively called "world-builders") will use to actually construct the world that your players will romp in.

These aren't just graphics tools to lay out terrain and buildings ; they comprise a suite of tools to build and edit items, spells, quests, and non-player characters (NPCs), plus a sound editor for sound effects and music.

These tools are no secret in the industry, and their capabilities are fairly well-known. Some of those capabilities are pretty obvious and include the following:

  • Laying out ground terrain, such as forests, lakes, deserts, and mountains

  • Basically manipulating and deforming terrain, such as raising mountains, making lakes and rivers, and so forth

  • Placing man-made terrain features, such as buildings and roads

  • Placing triggers, such as NPC spawns and weather effects

  • Creating and editing players/characters

  • Creating and editing player-usable objects, such as weapons, armor , books, food, gold, and so forth

Bear in mind that these are the minimal capabilities your team will need going forward with the project.

Scripting Tools

What will the designers use to build the world? What capabilities will they need? Most, if not all, PWs support a scripting language. This is mainly used by the designers and world-builders (in conjunction with a home-brewed graphic-oriented tool) to actually construct the game world and mechanics. The whole purpose of using a scripting language is so you don't have to hard-code every mechanic , NPC conversation, or event into your game. It also avoids the need to recompile the executable for the game each time you make a change.

Note that this is not the same scripting you may be familiar with in hybrid games like Quake ; it can be far more detailed and time consuming and require a language and tool that are far more flexible. The old joke about Ginger Rogers being a better dancer than Fred Astaire (she did everything he did, backward and in high heels) applies here. Bear in mind that an online role-playing game has on the order of 10 times the actual content and complexity of the average hybrid, in terms of player-controlled objects, terrain, and the way inventory objects correlate with a player's skills and attributes. If each change in a PW had to be hard-coded into the executable, none would ever be finished enough to launch, and not many changes and content/feature additions would ever be done.

Python

There are many scripting languages available that work with C/C++, including PERL, JavaScript, Visual Basic, and SmallTalk. However, many shops are now using Python: an interpreted, interactive, object-oriented programming language that is extensible in C or C++ and portable, meaning it works with several brands of UNIX on the Macintosh and on PCs under MS-DOS, Windows, Windows NT, and OS/2. It is also free and has virtually zero compiling time. See www.python.org for details.

Other Tools You'll Need

The other tools include those you'd need in any project with multiple builds and versions:

  • Code building

  • Version control

  • Task tracking

In addition, you'll need a set of tools that just about every online game has neglected to design and build during development and was forced to build at or after launch. These are tools that monitor and log into record files what goes on in the game, including the following:

  • Player activities:

    • Where do they go?

    • What do they do?

    • What do they look at?

    • What do they buy, where, and how often?

    • How long does it take them to do it?

  • Client and server statistics:

    • Who is where, when?

    • What machines in the server cluster are empty for significant portions of the day?

    • Which machines are full for significant portions of the day?

  • Chat logs

  • Crashes and errors

Some teams actually make the choice not to build these tools because they can add server-side lag into the game ”sometimes serious amounts of it. And, truth be told, they aren't "sexy" or fun to work on, compared to cool stuff like game mechanics; in the past, "sexy" has always won out over "necessary."

However, this is a serious mistake because these tools make it easier for the live team to perform a number of critical functions:

  • Track player activities and security ” Players who are willing to use exploits and bugs to bypass game mechanics are usually pretty stupid about it. If players find an exploit that allows them to jump experience levels in minutes instead of hours, for example, they'll dig right in and boost their character as many levels as they can in a short period of time. Then they'll start handing out the exploit to their guild mates and friends, who will then spread it out to their friends , and so on.

    You can build monitoring tools that know about how long it should take to gain experience, game gold, and so forth, once you feed in the parameters for what is being monitored . These tools can then monitor player activity and create an alert when a character out- performs the parameters coded into the monitor. Once you know which character(s) has located one of these unintended features, your other tools (the ones that tell you where they were and when, and the ones that keep track of character statistics) will make short work of finding and neutralizing the exploits and exploiters. If you don't have the monitoring tools available, you can count on spending literally thousands of wasted live team hours in trying to find and fix them.

  • Monitor chat logs ” One of the most prevalent problems in any PW is "verbal" harassment , usually in the form of insults, profanity, racial slurs, or spamming the screen with text to make it impossible for other players to carry on conversations.

    Developers aren't keen on keeping extensive logs that record chat conversations and actions performed; they eat up CPU cycles and tend to add lag to the game. If you don't keep these logs, however, it is nearly impossible to create necessary harassment reporting tools for players or to investigate harassment charges at all.

Without these tools, a "live" online game is almost impossible to administer correctly. And without them, the player relations and community management teams will come to curse your name . If you fail to build them, don't be surprised if you're hung in effigy in the lobby of your building.



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