Books: "Introduction to Game System Design" by the designer of Guitar Hero 6 and Syphon Filter 5 was published in Russian
The Russian retail received “Introduction to the design of gaming systems. A step—by-step guide to creating balanced games,” Bombora Publishing house reports. This is a book about development for beginners (it contains the very basics of work). We share an excerpt.
By the way, the author of the book is Dax Gazaway. Since 2013, he has been teaching game design at Full Sail University in Florida. Prior to that, he had been engaged in game design for more than ten years. During this time, he managed to work at 3DO, Lucas Arts, Sony Interactive Entertainment and Vicarious Visions. His portfolio includes the design of titles such as Star Wars: Obi-Wan, Marvel Ultimate Alliance 2, Syphon Filter 5 and Guitar Hero 6.
chapter 4
SYSTEM DESIGN TOOLS
The gaming industry, as expected, uses a variety of computer software tools. Each team and each department, project and game has its own needs, and there are many tools to meet these needs. Some tools are used more often than others. This chapter describes some of the most common categories of tools used in the gaming industry, but first we’ll look at what exactly is meant by the term “data”.
What is data?
In this and subsequent sections, data-related tools and concepts will often be mentioned. But what is data? Within this book, “data” is numbers or text used to describe something. It is important to note that you can act with data, but they do not do this by themselves. Let’s look at some examples.
Let’s say the hero has the attribute “health”, with which some rules are associated. The rules of combat determine the amount of health that is lost when attacking or restored when healing. Currently, the hero’s health score is 100. In this case, 100 is data. This is a number correlated with the attribute of health, and something can be done with it according to the rules.
Table 4.1 provides a few more examples of data related to various attributes and rules.
Please note that some of the data in Table 4.1 is numeric, others are binary, and others are textual. Regardless of its type, all data from this table is somehow used according to the rules of the game. But the data itself does not contain any rules.
Gaming Industry Tools
Gaming industry tools cover several types of software and applications, including documentation tools, image editing tools, 3D modeling tools, flowchart building tools, databases, bug tracking programs, game engines, and spreadsheets. The following sections cover each type of tool in detail.
Documentation Tools
Word processors are one of the oldest and most used computer tools; game developers use them constantly, mainly to create and maintain documentation. As a rule, an application is made for each feature, concept, each level or game character, each system. After it is proposed, it is discussed, clarified and documented. Such discussion and design sketches can be quickly done in a word processor, without fear of making any mistakes in the game. All concepts or most of them are described by developers in the “Game design documentation of the game” (Game Design Document, GDD). It can be either a simple document listing key ideas, or a huge monster with hundreds of pages. Some large teams even have a special developer whose sole responsibility is to compile and maintain the game design document of the game.
Examples of popular documentation programs are Microsoft Word, Google Docs (Figure 4.1) and Apache OpenOffice Writer.
Image Editing Tools
Everything that used to be drawn with pencils or painted with paints is now created or modified using image editing tools. These tools can import raw images from a camera or scanner, or they can be used to create completely new images. Modern image editing tools have tremendous power and allow artists to quickly create and edit 2D images with them. Game developers use image editing tools for a variety of tasks, including creating a user interface, creating textures for 3D objects, creating skins for character models, concept art, and more. Despite the fact that image editing tools are primarily the field of activity of artists, it is useful for all developers, including game designers, to learn its basics.
Examples of popular tools for this are Adobe Photoshop (Illustration 4.2) and GIMP.
3D Modeling Tools
In a three-dimensional video game, the user sees three-dimensional objects and interacts with them. To create such objects, artists and designers use 3D modeling tools. Their interface allows you to create three-dimensional objects and manipulate them in a simulated 3D space. Usually, the tool has several camera views that allow you to view an object from several points of view at the same time. These tools also have controls for editing 3D objects: stretching, cutting, twisting, resizing, splitting and attaching 3D shapes. Most of these functions have very specific names in tools/3D modeling, so game designers will need to know the jargon of these tools.
After creating 3D objects in most tools, you can apply a texture to the objects. Texture in games is not exactly the same as in the real world. In the real world, the texture can be felt physically. In the game world, a texture is modeled using an image. You can import an image created in the image editing tool into the 3D modeling tool and overlay it on the surface of a three-dimensional object, creating the illusion of a textured surface.
In many 3D modeling tools, you can also animate 3D objects. Game developers use animation to create pre-cinematic scenes (cut scenes) or export the animation as instructions for the game engine in real time.
The last task of the 3D modeling tool is to export an object to a file format that is understandable to the game engine.
Examples of popular 3D modeling tools: 3D Studio Max / (Illustration 4.3), Maya and Blender.
Tools for creating flowcharts
Flowcharts (work diagrams), like the one shown in Figure 4.4, are used to organize ideas and show a sequence of actions in the system. Unlike a written text or a linear list, a flowchart can graphically display branches, cycles, decision points and completion conditions. Very often, level designers use flowcharts to sketch out the concept of a level before spending time creating a map or 3D model of the level. Game designers and engineers often use flowcharts to show how the system works in the process and quickly outline a concept before laying down time to create it in the game engine.
Examples of popular flowchart creation tools are Google Drawings, Visio and OmniGraffle.
Databases
The database stores large amounts of data that can be extracted and used in the future. A simple game may not need a database, but for a very large project, the amount of data stored can be huge, and it can be difficult to store them in the engine or in the script. Game designers should be able to use databases, because they often manage game data. They are usually used to store data about weapons, armor, vehicles, bonuses of items used by the player, AI characters and other types of enemies. The object database serves as the central repository of game objects, and thanks to them consistency is maintained throughout the game. Imagine how difficult it would be to sort through all the scripts written for the MMO in search of individual items and characters. A good analogy of a database is a file cabinet. You can open the card file, find the desired object, and then either refer to it for use in the game, or make changes to the “card” that will affect the entire game.
The management system provides the tools to actually access all the data in the database. To understand the difference between a database and a database management system, imagine how your music collection is stored. You may have hundreds or thousands of songs of various bands and genres on your hard drive. In this case, your hard drive is like a database where all the music information is stored, including the songs themselves. In order to find some information, you can simply browse through the Windows file folders, but this will be very slow and inefficient, and most likely you will miss some of the important information. Instead, you can use an application to play music, which, in fact, is a specialized database management system. In such an application, music can be filtered by genre, you can find each song of a particular band, find the contents of one album, or somehow access the data. In the world of game development, database management systems do the same job as your music playback application. When developing a large role-playing game, there is always a need to find, say, all swords, or only shields, or only level 22 items that are used by knights. The database stores data on all types of weapons, armor, and character classes, and the database management system allows you to access only the information you need.
But can’t spreadsheets solve the same tasks as a database management system? Yes, they can, and in many small games they do. But spreadsheets load all the information stored in them every time they are used. If you turn to a very large amount of data, the work of spreadsheets will slow down. In addition, if you load only those elements that need to be edited, there will be less chance of making mistakes in other objects.
An example of a popular database is Microsoft Access, and examples of data management systems are MySQL and Microsoft SQL Server.
Bug Tracking software
Error tracking software is a special type of database management system. This database stores information about errors in the game. The management system is configured specifically to work with information and tasks that need to be solved when working with errors. Unlike a general database management system, error tracking software does not require manual configuration. It can be used to record information about new errors, search for similar or duplicate errors, assign an error to another owner, track the correction process, and filter what has already been corrected.
Popular bug tracking tools are Jira, Bugzilla, Plutora and Backlog.
Game engines
The game engine is what the whole game is built on. When creating any game, problems often arise that are the same regardless of the specific project. For example, everywhere you need to render graphics on the screen, detect collisions of objects with each other and extract artistic assets (objects) from memory. For such tasks, it doesn’t make sense to program them from scratch every time. Therefore, development teams, studios and specialized companies put together in one package all the common functions necessary to create most parts of the game, creating a program called a “game engine”.
In addition to managing the main functions of the game, the engine organizes an interface for development. For example, many engines have a three-dimensional view, and developers can move in three-dimensional space, see where level objects are located in the game, customize them or add them. Game engines also usually have a built-in file management system so that artists, game designers and programmers can work with each other to animate objects in the game.
Currently, some companies are releasing “intermediate” engines that are not designed for any particular game or team, but are designed for use by anyone who needs a simple game development solution. The advantage of middleware is that it is intended for a huge number of development teams, and therefore it is flexible. The disadvantage is that it will always lack the key components that make each game unique.
Examples of popular game engines are Unity 3D, Unreal Engine, CryEngine and Cocos.
Next steps
After completing this chapter, it is recommended to practice on real examples for a while and try to use the concepts discussed here. To get a clearer idea of the tools used in game design, try the following exercises.
- Type “Game engines for beginners” in the search bar on the Internet. So you will find articles about a variety of modern game engines and introductory videos about most popular ones. Take some time to review and compare the capabilities of various game engines to better understand the direction in which the gaming industry is developing.
- Practice using the documentation tools, which have much more features than you can imagine. Game designers should confidently use these tools, not only to type words, but also to format and organize documents correctly. The two most popular tools for working with documentation are Microsoft Word and Google Docs.
- Make a flowchart for the game – either the one you want to create, or an existing simple game. Use the flowchart to show the progress of the game from the very beginning and the various player choices. To get some idea of flowcharts and what they should include, search the Internet for the phrase “How to make Flowcharts for game designers”; spend some time browsing and reading the flowcharts manuals for game development.