Video games are enormously popular all over the world. In fact, the video game industry is a multibillion dollar a year machine -- A successful video game, just like a popular music CD, can sell hundreds of thousands or even millions of copies!
You have probably wondered what goes into making a good video game. You may even want to get into the business yourself. Here are some of the questions that you may be wondering about:
Where do game ideas come from?
How many people are involved in making a game and what do they do?
How is a game developed?
How does a game get to my local store?
Photo courtesy 3DO 3DO's newest game is called Portal Runner.
To understand the entire process of video game development, we went to the folks at 3DO. 3DO is a major publisher of video games, with several popular titles for the Nintendo 64 and other game consoles, as well as PC and Mac computer systems. Now,h we will follow the development of Portal Runner TM, a new game from 3DO. You will learn about the game's technology, how the idea was developed and how the game will be distributed.
Sarge's Heroes, one of the
games in the Army Men series
In the case of Portal Runner, 3DO took a character from one of its most popular franchises and gave her a spinoff title of her own that falls into the 3D Action/Adventure category. The character, Vikki Grimm, has figured prominently in the Army Men TM universe. Portal Runner is not considered a sequel because 3DO is taking one character and building an entirely new game universe around her. As you learn about the development of Portal Runner, remember that many of the steps in the process could change significantly for a different title based on the nature of the game being developed.
Portal Runner is a linear game. This means that you follow a predetermined path and accomplish specific goals to complete the game. The pattern of the game is: FMV1, Play1, FMV2, Play2, FMV3, Play3 and so on until the end. Each play portion has a different look, theme and goal, all of which combine to form the game world. Linear play makes the story line much easier to create than it would be for a game that branches or has multiple endings. Branching games can contain a series of paths that all lead to the same ending. Even more difficult are branching games that can result in one of several different endings, depending on the path taken. Of course, the type of game largely determines what the story line and style can be. A puzzle or sports game would not require as detailed a story line as a 3D action or role-playing game.
Once the story line is developed, the team creates a set of storyboards. A storyboard is a collection of still drawings, words and technical instructions that describe each scene of the game. These include storyboards for the FMV sequences that introduce the story and continue it between the periods of actual gameplay. Here are several examples:
A storyboard for the opening FMV in Portal Runner
Close-up view of the storyboard images
In addition to storyboarding the game, the designers will map out the different worlds, or levels of play, within the game during the preproduction phase. The attributes of each world and the elements contained within it are pulled directly from the story line.
3DO's artists begin developing the 3D models that will make up the worlds of Portal Runner using a software application called 3D Studio Max. Richly detailed texture maps are created for each object. While the game developers at 3DO create the actual game environment using these models and textures, another division of the company, PlayWorks, will use the same models to develop the animated FMV sequences for the game.
A good example of the models and textures in Portal Runner FMVs.
Meanwhile, the programmers are writing custom code in C programming language that will provide the framework for the game objects. A lot of code is pulled from the company's library, which is a bank of already-developed code that can be repurposed for different games. Some of the code is the 3D engine, an application that generates all the polygons, shadows and textures that you see. Another piece of code is the artificial intelligence component. This is the logic of the game. It establishes the physics of the game, detects interaction and collisions of objects and controls movement of the characters. Development of the game code is done using a special development version of the particular game system that has increased memory, a SVGA monitor connection, a network connection and a hard drive.
All the bits and pieces -- objects, textures and code -- are fed into a special utility called a tool chain that combines the pieces into one big piece of code. The tool chain makes code that is executable on a specific platform, which basically means that the game code will actually run on the game system that it was designed for. To test the game, Portal Runner director John Salera uses another specialized game console built for debugging games.
A simple triangular polygon. Each point of the triangle is a vertex.
The lines connect a series of coordinates in the three-dimensional "space" the computer creates. The point where the lines connect is known as a vertex. Each vertex has X, Y and Z coordinates.
X determines the position relative to right or left in the virtual space
Y determines the position relative to top or bottom in the virtual space
Z determines the position relative to front or back in the virtual space
Once each polygon has a set of vertices to define its shape, it needs information that tells it what to look like. There are four common ways to do this:
Flat shading simply assigns a single color to a polygon. It is very simple and fast, but makes the object look artificial. Gouraud shading is more involved. Colors are assigned to each vertex and then are blended across the face of the polygon. Since each vertex is typically associated with at least three distinct polygons, this makes the object look natural instead of faceted. Look at this example:
The same object with flat and Gouraud shading applied.
You will notice that the ball with Gouraud shading appears much smoother than the flat shaded one. But look closely at the outlines of the two balls. That is where you can tell that both balls have the exact same number of polygons!
A more complex version of shading, Phong, is rarely used in games. Whereas Gouraud shading interpolates colors by averaging between the vertices, Phong shading averages each pixel based on the colors of the pixels adjacent to it.
Another common technique for determining the appearance of a polygon is to use texture mapping. Think of texture mapping as wrapping a present. Each side of the box you are wrapping is a blank polygon. You could paint the box, but it would be very difficult to make it match all the designs on the wrapping paper. However, if you take the wrapping paper and tightly cover the box with it, you have completely transformed the box with just a little effort.
Texture mapping works the same way. Mapping requires the use of another image. Essentially, this other image is stretched over the object like a skin. Most video game consoles and computer graphics adapters contain a special chip and dedicated memory that store the special images used for texture mapping and apply them to each polygon on the fly. This allows games such as Portal Runner to have incredibly detailed 3-D environments that you can interact with in real time.
The characters in a game have skeletons. Similar to our own skeleton, this is a hidden series of objects that connect with and move in relation to each other. Using a technique called parenting, a target object (the child) is assigned to another object (the parent). Every time the parent object moves, the child object will follow according to the attributes assigned to it. A complete hierarchy can be created with objects that have children and parents. Here's an example for a human character:
The closeup shows the skeleton's arm. You see that the finger objects are children to the hand object, which in turn is a child to the forearm object.
Once the skeleton is created and all of the parenting controls put in place, the character is animated. Probably the most popular method of character animation relies on inverse kinematics. This technique moves the child object to where the animator wants it, causing the parent object and all other attached objects to follow. Another method that is popular for games is motion capture, which uses a suit of sensors on a real person to transmit a series of coordinates to a computer system. The coordinates are mapped to the skeleton of a game character and translated into fluid, realistic motion.
Each character's range of motion is programmed into the game. Here's a typical sequence of events:
You press a button on the controller to make the character move forward.
The button completes a circuit, and the controller sends the resulting data to the console.
The controller chip in the console processes the data and forwards it to the game application logic.
The game logic determines what the appropriate action at that point in the game is (move the character forward).
The game logic analyzes all factors involved in making the movement (shadows, collision models, change of viewing angle).
The game logic sends the new coordinates for the character's skeleton, and all other changes, to the rendering engine.
The rendering engine renders the scene with new polygons for each affected object, redrawing the scene about sixty times each second.
Only the portions of the objects in view are rendered.
This leads to another area of optimization. While the far clipping plane does not render entire objects that are too far away, culling means that the video game system does not render the parts of objects that are outside your viewing area. For example, when you look at a building, you normally only see one or two sides of the building. In a game, you can increase performance by not rendering the other sides of the building until you move around to the point that you can see them. And as you move, the game can stop rendering the things you can no longer see.
One of the refinements that John Salera said 3DO wanted to make to Portal Runner was to determine where they could eliminate polygons through culling in order to increase the polygon count for Vikki, from 1,500 polygons to 3,000. They want to do this without increasing the overall number of polygons onscreen. By increasing the polygon count of a specific object (like Vikki), the object can be made to look smoother and more realistic.
Periodically during the development of the game, 3DO sends builds (partially complete versions) of the game to the game console maker. This is done to keep the console maker informed about how the game is developing and to ensure that there are no surprises that the manufacturer might take issue with.
As the game nears completion, it enters the post-production phase. This phase has several parts:
Marketing and advertising
Once the game is done, an alpha version is sent to designated game testers. This preliminary version is a first pass meant to find any major flaws in the game. The problems are identified and the game is released again in beta form. The beta version is tested exhaustively to find any bugs and discover ways to further optimize the game. After the items found in the beta version are fixed, the final candidate is released.
Sometime during this period, the game is sent to the Entertainment Software Rating Board (ESRB) to be given a rating. If the game is released before a final rating is set, it will have an RP (Rating Pending) in the rating box.
During post-production, the marketing engine begins to ramp up. The game is advertised in print, on the Web and oftentimes on TV. Quite often, a game that is a hit or has a very memorable character provides the company with opportunities for merchandising and licensing. Comic books, cartoons, movies and amusement park rides have all spun out of the popularity of certain video game characters. Products such as clothing, toys and board games often display characters from the game. A popular video game character can be a real marketing gold mine for the parent company.