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
Contentsxiv