Figure 1.1: Think Tanks—a 3rd PPOV action game made by BraveTree Productions using the Torque Game Engine.
Figure 1.2: Tubettiworld—an action-adventure FPS hybrid game being developed by Tubetti Enterprises using the Torque Game Engine.
Figure 1.3: Myrmidon—a science fiction RPG, another Torque-based game, being developed by 21-6 Productions.
Figure 1.4: Marble Blast—a maze-and-puzzle hybrid game by GarageGames using its Torque Game Engine.
Figure 1.5: Chain Reaction—a puzzle game by Monster Studios using its Reaction Engine.
Figure 1.6: Center World—a submarine sim in development by Michael Hense, an independent game developer, using the Torque Game Engine.
Figure 1.7: Maximum Football—a football sports game in development by David A. Winter, an independent game developer.
Figure 1.8: Turf—a 3D real-time multiplayer strategy game in development by Tubetti Enterprises, using a heavily modified version of the Torque Game Engine.
Figure 1.9: Conceptual design sketch.
Figure 1.10: Elements of a game engine.
Figure 1.11: An example of a main menu GUI.
Figure 1.12: A 3D wire-frame and textured models of an old-style helicopter.
Figure 1.13: The textures used as the skin of the old-style helicopter.
Figure 1.14: A graphical view of a gunshot sound-effect waveform.
Chapter 2: Introduction to Programming
Figure 2.1: Locating the File Tree/Project View.
Figure 2.2: Changing the File List View to the Project View.
Figure 2.3: Project dialog box with folder hierarchy.
Figure 2.4: Final form of the Project/Workspace Setup dialog box.
Figure 2.5: Final form of the Example Project View.
Figure 2.6: The Find dialog box set for a basic search.
Figure 2.7: The Replace dialog box set for a basic search-and-replace operation.
Figure 2.8: The Find in Files dialog box.
Figure 2.9: Bookmarked text shown in lighter gray.
Figure 2.10: Output of the Hello World program.
Chapter 3: 3D Programming Concepts
Figure 3.1: XYZ-axis system.
Figure 3.2: Left-handed coordinate system with vertical Y-axis.
Figure 3.3: Right-handed coordinate system with vertical Y-axis.
Figure 3.4: Right-handed coordinate system with vertical Z-axis depicting world space.
Figure 3.5: A point specified using an XYZ coordinate triplet.
Figure 3.6: Simple cube shown in a standard XYZ axis chart.
Figure 3.7: Simple cube with reduced XYZ-axis key.
Figure 3.8: Simple cube with axis key at geometric center.
Figure 3.9: Screen shot of sphere model.
Figure 3.10: Polygons of varying complexity.
Figure 3.11: Polygons decomposed into triangle meshes.
Figure 3.12: The parts of a 3D shape.
Figure 3.13: Scaling.
Figure 3.14: Rotation.
Figure 3.15: Translation.
Figure 3.16: Fully transforming the cube.
Figure 3.17: Faces on an irregularly shaped object.
Figure 3.18: Faces on an irregularly shaped object.
Figure 3.19: Lambert-shaded object.
Figure 3.20: Flat-shaded (A) and gouraud-shaded (B) spheres.
Figure 3.21: Phong-shaded sphere.
Figure 3.22: Example of a fake phong highlight map.
Figure 3.23: Texture-mapped and gouraud-shaded cube.
Figure 3.24: Mipmap textures for a stone surface.
Figure 3.25: Receding mipmap textures on a stone surface.
Figure 3.26: Simple scene graph.
Figure 3.27: Finding the pyramid object's instance ID.
Chapter 4: Game Programming
Figure 4.1: General game folder tree.
Figure 4.2: The Emaga4 folder tree.
Figure 4.3: Player-avatar in Emaga4.
Figure 4.4: Looking around the Emaga4 game world.
Chapter 5: Game Play
Figure 5.1: The Emaga5 folder tree.
Figure 5.2: The Emaga5 splash screen.
Figure 5.3: The Emaga5 MenuScreen.
Figure 5.4: The Avatar in Emaga5.
Chapter 7: Common Scripts
Figure 7.1: Mission download phases.
Figure 7.2: Mission download process.
Chapter 8: Introduction to Textures
Figure 8.1: Structure definition through using textures.
Figure 8.2: Rock and icefalls appearance on a mountainside.
Figure 8.3: Shoreline foam and deepwater textures.
Figure 8.4: Clouds in a skybox using textures.
Figure 8.5: Terrain accents.
Figure 8.6: Weapon detail using textures.
Figure 8.7: Vehicle detail and structure.
Figure 8.8: Player clothing, skin, and other details.
Figure 8.9: Distant objects.
Figure 8.10: Creating a new blank image.
Figure 8.11: Texture dialog box with woodgrain texture.
Figure 8.12: Color dialog box for woodgrain.
Figure 8.13: Woodgrain texture.
Figure 8.14: Texture dialog box with default preset.
Figure 8.15: Color dialog box for sidewalk texture.
Figure 8.16: Initial sidewalk texture.
Figure 8.17: Highlight/Midtone/Shadow dialog box.
Figure 8.18: Enhanced highlight sidewalk texture.
Figure 8.19: Hue/Saturation/Lightness dialog box.
Figure 8.20: Desaturated sidewalk texture.
Figure 8.21: Add Noise dialog box.
Figure 8.22: Final sidewalk texture.
Figure 8.23: Spawn view in the fps demo game.
Figure 8.24: Materials palette.
Figure 8.25: Noise image.
Figure 8.26: Noise image with shape.
Figure 8.27: Tool palette, with tool names.
Figure 8.28: Noise image.
Figure 8.29: Creating an alpha channel selection.
Figure 8.30: The Materials palette.
Figure 8.31: The Layer palette.
Figure 8.32: The Tool Options palette for the Paint Brush.
Figure 8.33: The Text Entry dialog box.
Chapter 9: Skins
Figure 9.1: The victim—a simple can of soup.
Figure 9.2: Laying it all out—the unwrapped can.
Figure 9.3: After applying textures.
Figure 9.4: Aha! Not such a simple can anymore. Nutritious, too!
Figure 9.5: Materials and Layer palettes.
Figure 9.6: The Shapes List.
Figure 9.7: The red rectangle.
Figure 9.8: The white rectangle.
Figure 9.9: Selecting the mapped sides of the can.
Figure 9.10: Soft Focus dialog box.
Figure 9.11: Adding the metal lips.
Figure 9.12: Adding the ridges.
Figure 9.13: Text tool cursors.
Figure 9.14: Point to Point Segment Type button.
Figure 9.15: Tracing the cab roof.
Figure 9.16: Edit Mode button.
Figure 9.17: Arrows indicate the editable node handles.
Figure 9.18: Before using Send to Bottom, and after using it.
Figure 9.19: Spray-painting the body base color.
Figure 9.20: Spray-painting the accent color.
Figure 9.21: Adding the racing stripe.
Figure 9.22: The fender thingies.
Figure 9.23: The Tubettiworld Standard Male Character model rendered by the Torque Engine.
Figure 9.24: Concept artwork for the Standard Male Character.
Figure 9.25: UV template for the Standard Male.
Figure 9.26: Basic flesh tone applied to the skin layer.
Figure 9.27: Hilite template.
Figure 9.28: Hilite template applied over the head and neck UV template.
Figure 9.29: Hilite template applied over the skin layer.
Figure 9.30: An eye.
Figure 9.31: Finished face and neck.
Figure 9.32: Filled hair template area.
Figure 9.33: Textured hair.
Figure 9.34: The font of wisdom under construction—the bald spot.
Figure 9.35: Hand area.
Figure 9.36: Finger lines and fingernails.
Figure 9.37: Adding hand details.
Figure 9.38: The finished hands.
Figure 9.39: The jacket pieces.
Figure 9.40: Getting close to that leathery look.
Figure 9.41: That leathery look.
Figure 9.42: Standard Male skin.
Chapter 10: Creating GUI Elements
Figure 10.1: Common graphical user interface elements.