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 EditorsThe 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:
Bear in mind that these are the minimal capabilities your team will need going forward with the project. Scripting ToolsWhat 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. PythonThere 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 NeedThe other tools include those you'd need in any project with multiple builds and versions:
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:
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:
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. |