3D Game Programming All In One (2004)
.pdfContents at a Glance
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxvi
Chapter 1
Introduction to 3D Game Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
Chapter 2
Introduction to Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
Chapter 3
3D Programming Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
Chapter 4
Game Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123
Chapter 5
Game Play . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157
Chapter 6
Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205
Chapter 7
Common Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235
Chapter 8
Introduction to Textures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .275
Chapter 9
Skins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .309
Chapter 10
Creating GUI Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .335
Chapter 11
Structural Material Textures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .351
x
Team LRN
Contents at a Glance |
xi |
Chapter 12
Terrains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .365
Chapter 13
Introduction to Modeling with MilkShape . . . . . . . . . . . . . . . . . . . . . . . . . . .381
Chapter 14
Making a Character Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .415
Chapter 15
Making a Vehicle Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .465
Chapter 16
Making Weapons and Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .479
Chapter 17
Making Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .499
Chapter 18
Making the Game World Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .513
Chapter 19
Creating and Programming Sound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .539
Chapter 20
Game Sound and Music . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .559
Chapter 21
Creating the Game Mission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .583
Chapter 22
The Game Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .609
Chapter 23
The Game Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .631
Chapter 24
The End Game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .659
Appendix A
The Torque Game Engine Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .667
Appendix B
Game Development Resources on the Internet . . . . . . . . . . . . . . . . . . . . . . . .741
Appendix C
Game Development Tool Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .749
Appendix D
QuArK Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .755
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .773
Team LRN
Contents
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxvi Chapter 1 Introduction to 3D Game Development . . . . . . . . . . . . . . . .1
The Computer Game Industry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
.1 |
3D Game Genres and Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
.2 |
Game Platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
.8 |
Game Developer Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
11 |
Publishing Your Game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
15 |
Elements of a 3D Game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
16 |
Game Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
16 |
Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
17 |
Graphical User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
19 |
Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
19 |
Textures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
20 |
Sound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
20 |
Music . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
21 |
Support Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
21 |
The Torque Game Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
23 |
Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
23 |
Using Torque in This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
28 |
Moving Right Along . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
29 |
xii
Team LRN
Contents xiii
Chapter 2 |
Introduction to Programming . . . . . . . . . . . . . . . . . . . . . . . |
31 |
|
UltraEdit-32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
31 |
|
Program Setup and Configuration . . . . . . . . . . . . . . . . . . . . . . . . |
32 |
|
Setting Up Projects and Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
32 |
|
Search and Replace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
35 |
|
Find in Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
38 |
|
grep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
39 |
|
Bookmarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
42 |
|
Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
43 |
|
UltraEdit Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
44 |
|
Controlling Computers with Programs . . . . . . . . . . . . . . . . . . . . . . . |
45 |
|
Programming Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
48 |
|
How to Create and Run the Example Programs . . . . . . . . . . . . . . |
48 |
|
Hello World . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
49 |
|
Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
52 |
|
Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
53 |
|
Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
60 |
|
Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
64 |
|
Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
66 |
|
Conditional Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
71 |
|
Branching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
74 |
|
Debugging and Problem Solving . . . . . . . . . . . . . . . . . . . . . . . . . . |
82 |
|
Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
86 |
|
Moving Right Along . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
87 |
Chapter 3 |
3D Programming Concepts . . . . . . . . . . . . . . . . . . . . . . . . |
.89 |
|
|
3D Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
.89 |
|
|
Coordinate Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
.90 |
|
|
3D |
Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
.92 |
|
3D |
Shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
.94 |
|
Displaying 3D Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
.95 |
|
|
Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
.95 |
|
|
Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
.98 |
|
|
Scene Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
103 |
|
|
3D |
Audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
104 |
|
3D Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
104 |
|
|
Programmed Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
105 |
|
|
Programmed Rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
111 |
Team LRN
xiv |
Contents |
|
|
|
|
Programmed Scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
.113 |
|
|
Programmed Animation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
115 |
|
|
3D Audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
119 |
|
|
Moving Right Along . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
122 |
|
Chapter 4 |
Game Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
123 |
|
|
Torque Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
123 |
|
|
Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
124 |
|
|
Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
125 |
|
|
DataBlocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
128 |
|
|
Game Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
129 |
|
|
Server versus Client Design Issues . . . . . . . . . . . . . . . . . . . . . . . . . . |
132 |
|
|
Common Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
133 |
|
|
Preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
133 |
|
|
Root Main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
134 |
|
|
Control Main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
139 |
|
|
Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
141 |
|
|
Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
144 |
|
|
Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
149 |
|
|
Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
151 |
|
|
Running Emaga4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
153 |
|
|
Moving Right Along . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
155 |
|
Chapter 5 |
Game Play . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
157 |
|
|
The Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
157 |
|
|
Folders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
157 |
|
|
Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
158 |
|
|
Control Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
158 |
|
|
control/main.cs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
159 |
|
|
Client Control Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
160 |
|
|
control/client/client.cs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
160 |
|
|
control/client/interfaces/menuscreen.gui . . . . . . . . . . . . . . . . . . . |
162 |
|
|
control/client/interfaces/playerinterface.gui . . . . . . . . . . . . . . . . |
165 |
|
|
control/client/interfaces/splashscreen.gui . . . . . . . . . . . . . . . . . . . |
169 |
|
|
control/client/misc/screens.cs . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
169 |
|
|
control/client/misc/presetkeys.cs . . . . . . . . . . . . . . . . . . . . . . . . . . |
171 |
|
|
Server Control Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
175 |
|
|
control/server/server.cs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
175 |
|
|
control/server/players/player.cs . . . . . . . . . . . . . . . . . . . . . . . . . . . |
180 |
Team LRN
|
|
Contents |
xv |
|
control/server/weapons/weapon.cs . . . . . . . . . . . . . . . . . . . |
. . . .186 |
|
|
control/server/weapons/crossbow.cs . . . . . . . . . . . . . . . . . . . |
. . . .190 |
|
|
control/server/misc/item.cs . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .197 |
|
|
Running Emaga5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .202 |
|
|
Moving Right Along . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .203 |
|
Chapter 6 |
Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . .205 |
|
|
Direct Messaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .205 |
|
|
CommandToServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .206 |
|
|
CommandToClient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .207 |
|
|
Direct Messaging Wrap-up . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .209 |
|
|
Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .209 |
|
|
Area Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .209 |
|
|
Animation Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .209 |
|
|
Weapon State Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .210 |
|
|
Player Event Control Triggers . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .210 |
|
|
GameConnection Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .211 |
|
|
What GameConnection Messages Do . . . . . . . . . . . . . . . . . |
. . . .212 |
|
|
Specifics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .212 |
|
|
Finding Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .217 |
|
|
Code Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .217 |
|
|
New Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .218 |
|
|
Dedicated Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .230 |
|
|
Root Main Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .230 |
|
|
Control—Main Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .231 |
|
|
Control—Initialize Module . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .231 |
|
|
Testing Emaga6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .232 |
|
|
Moving Right Along . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .233 |
|
Chapter 7 |
Common Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . .235 |
|
|
Game Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .235 |
|
|
Selected Common Server Modules . . . . . . . . . . . . . . . . . . . . . . |
. . . .240 |
|
|
The Server Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .240 |
|
|
The Message Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .241 |
|
|
The MissionLoad Module . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .242 |
|
|
The MissionDownload Module . . . . . . . . . . . . . . . . . . . . . . |
. . . .246 |
|
|
The ClientConnection Module . . . . . . . . . . . . . . . . . . . . . . . |
. . . .250 |
|
|
The Game Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .256 |
|
Team LRN
xvi |
Contents |
|
|
|
|
Selected Common Code Client Modules . . . . . . . . . . . . . . . . . . . . |
.258 |
|
|
The Canvas Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
259 |
|
|
The Mission Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
261 |
|
|
The MissionDownload Module . . . . . . . . . . . . . . . . . . . . . . . . . . |
262 |
|
|
The Messages Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
266 |
|
|
A Final Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
268 |
|
|
Moving Right Along . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
273 |
|
Chapter 8 |
Introduction to Textures . . . . . . . . . . . . . . . . . . . . . . . . . . |
275 |
|
|
Using Textures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
275 |
|
|
Paint Shop Pro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
279 |
|
|
Installing Paint Shop Pro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
279 |
|
|
Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
279 |
|
|
Working with Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
283 |
|
|
Paint Shop Pro Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
290 |
|
|
Moving Right Along . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
307 |
|
Chapter 9 |
Skins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
309 |
|
|
UV Unwrapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
309 |
|
|
The Skin Creation Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
310 |
|
|
Making a Soup Can Skin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
311 |
|
|
The Soup Can Skinning Procedure . . . . . . . . . . . . . . . . . . . . . . . . |
311 |
|
|
Testing the Soup Can Skin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
315 |
|
|
Making a Vehicle Skin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
316 |
|
|
The Dune Buggy Diversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
316 |
|
|
Testing the Runabout Skin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
321 |
|
|
Making a Player Skin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
322 |
|
|
The Head and Neck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
322 |
|
|
Hair and Hands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
327 |
|
|
The Clothes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
329 |
|
|
Trying It on for Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
333 |
|
|
Moving Right Along . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
333 |
|
Chapter 10 Creating GUI Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
335 |
|
|
|
Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
336 |
|
|
GuiChunkedBitmapCtrl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
337 |
|
|
GuiControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
339 |
|
|
GuiTextCtrl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
339 |
|
|
GuiButtonCtrl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
340 |
Team LRN
|
Contents |
xvii |
GuiCheckBoxCtrl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .341 |
|
GuiScrollCtrl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .342 |
|
GuiTextListCtrl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .343 |
|
GuiTextEditCtrl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .344 |
|
The Torque GUI Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .345 |
|
The Cook’s Tour of the Editor . . . . . . . . . . . . . . . . . . . . . . . |
. . . .345 |
|
Moving Right Along . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .349 |
|
Chapter 11 Structural Material Textures . . . . . . . . . . . . . . . . . . . . . . .351
Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .352
Photography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .352
Original Artwork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .357
Scaling Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .358
Tiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .359
Texture Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .360
Irregular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .360
Rough . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361
Pebbled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361
Woodgrain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361
Smooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361
Patterned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .362
Fabric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .362
Metallic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .362
Reflective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .362
Plastic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .362
Moving Right Along . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .363
Chapter 12 Terrains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .365
Terrains Explained . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
.365 |
Terrain Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
365 |
Terrain Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
367 |
Terrain Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
367 |
Height Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
368 |
Terrain Cover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
369 |
Tiling 369 |
|
Creating Terrains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
370 |
The Height-Map Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
370 |
Applying Terrain Cover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
378 |
Moving Right Along . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
380 |
Team LRN
xviii |
Contents |
|
|
Chapter 13 Introduction to Modeling with MilkShape . . . . . . . . . . . . |
381 |
|
MilkShape 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
381 |
|
Installing MilkShape 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
381 |
|
The MilkShape 3D GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
382 |
|
Navigating in Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
383 |
|
View Scale and Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
383 |
|
The Soup Can Revisited . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
384 |
|
Menus 391 |
|
|
The Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
398 |
|
The Preferences Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
404 |
|
UVMapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
406 |
|
The File Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
407 |
|
The Edit Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
407 |
|
The Help Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
407 |
|
UV Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
407 |
|
Moving Right Along . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
414 |
|
Chapter 14 Making a Character Model . . . . . . . . . . . . . . . . . . . . . . . . |
415 |
|
Modeling Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
415 |
|
Shape Primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
415 |
|
Incremental Polygon Construction . . . . . . . . . . . . . . . . . . . . . . . . |
415 |
|
Axial Extrusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
416 |
|
Arbitrary Extrusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
417 |
|
Topographical Shape Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . |
417 |
|
Hybrids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
417 |
|
The Base Hero Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
417 |
|
The Head . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
418 |
|
The Torso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
423 |
|
Matching the Head to the Torso . . . . . . . . . . . . . . . . . . . . . . . . . |
429 |
|
The Legs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
430 |
|
Integrating the Legs to the Torso . . . . . . . . . . . . . . . . . . . . . . . . |
432 |
|
The Arms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
433 |
|
Integrating the Arms to the Torso . . . . . . . . . . . . . . . . . . . . . . . . |
438 |
|
The Hero Skin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
438 |
|
Character Animation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
443 |
|
Animating Characters in Torque . . . . . . . . . . . . . . . . . . . . . . . . . |
443 |
|
Building the Skeleton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
446 |
|
Rigging: Attaching the Skeleton . . . . . . . . . . . . . . . . . . . . . . . . . |
447 |
Team LRN
|
Contents |
xix |
Exporting the Model for Torque . . . . . . . . . . . . . . . . . . . . . |
. . . .458 |
|
The Torque DTS Exporter for MilkShape . . . . . . . . . . . . . . . . . |
. . . .459 |
|
The Torque Game Engine (DTS) Exporter Dialog Box . . . . . |
. . . .459 |
|
Special Materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .460 |
|
Animation Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .463 |
|
Moving Right Along . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .464 |
|
Chapter 15 Making a Vehicle Model . . . . . . . . . . . . . . . . . . . . . . . |
. . .465 |
|
The Vehicle Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .466 |
|
The Sketch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .466 |
|
The Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .467 |
|
The Wheels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .476 |
|
Testing Your Runabout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .477 |
|
Moving Right Along . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .478 |
|
Chapter 16 Making Weapons and Items . . . . . . . . . . . . . . . . . . . . |
. . .479 |
|
The Health Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .479 |
|
The Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .479 |
|
Testing the Health Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .480 |
|
A Rock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .481 |
|
Testing the Rock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .483 |
|
Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .483 |
|
The Solid Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .485 |
|
Testing the Solid Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .487 |
|
The Billboard Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .488 |
|
Testing the Billboard Tree . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .489 |
|
The Tommy Gun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .490 |
|
Making the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .490 |
|
Skinning the Tommy Gun . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .494 |
|
Testing the Tommy Gun . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .495 |
|
The Tommy Gun Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .497 |
|
Moving Right Along . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . .497 |
|
Chapter 17 Making Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .499
Installing QuArK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .500
Using the Installer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .500
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .500
Quick Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .501
Team LRN