C++
enumerations, 20–21
Java, and limited inheritance, 3
Standard Template Library and JCF, 191
streams, 119
C/C++
communicating between Java and, 317–320
OpenGL’s use of pointers, 396
and scripting languages, 306–307
serialization support, 124
square root approximation, 251
vector/matrix APIs and arrays, 263
caching data
query plan caching, 292
vs. reading data from disk, 116–118
call graphs, 174
call stacks
described, 152
and traces, 175
camera, 3D graphics, 364
Camera class, 432
catch( ) block, 288
CD-ROM
installation, 499
system requirements, 500
cell-shading, 380
cells and portals, 455
channels
described, 132–134
file, 133–134
multicast, 198–199
char stream classes (fig), 122
character streams, read and write methods, 122–123
characters, Unicode, and Java, 119
chars, converting to bytes, 122–123
checks, heartbeat, 217–218
checkTimeStamps, 221
Class class, reflection at runtime, 156
class fields vs. arrays as components, 262
class loaders, 157
ClassCastException and generic programming model, 18
classes
See also specific classes
buffer (fig.), 134
deletion, and garbage collection, 3
minimizing number of, 192
and RTS games, 15
security model for, 5
structure and layout, 153–154
updates to Game, 80–83
Class.newInstance( ) method, 43
clear method, 137–138
close method, 121
CMP (Container Managed Persistence), 286
code
dead, elimination, 166–167
source. See source code
specialized vs. general-purpose, 186
VK, 26
code obfuscators and Java security, 5
code samples
Actor class, 37–38
ActorManager class, 41–42
BufferedImage and ImageIO classes, 71–73
collision-detection, 47–48
evasion algorithm, 51
Externalizable interface, 129–130
joystick binding, 342–345
with MouseListener interface, 27
object serialization, 123–126
state controls, 34–35
static object-to-object techniques, 472–476
timing function and blocking loop, 30
collaging, 378
collections
garbage. See garbage collector (GC)
JDK 1.5 release, enhanced for loop, 19
collidesWith( ) method, 39
collision detection
3D, introduction, 463–465
basic processing, 465–467
bounding volumes, 467–469
collision response, reaction, 464
collision types, 44–46
and defining game interactions, 46–48
engine design, 470–471
foundation object collision tests, 476–479
linear feature collisions, 479–488
plane collisions, 488–497
static vs. dynamic collisions, 472
summary, 497
colors
display depth, 57
OpenGL state controls, 387
optimizing use of, 184
and text memory, 378
compilers
C/C++, 163, 306–307
just-in-time (JIT), 162–163, 240
compilation, conditional, 192–193
compressed data and optimizations, 182
compression, texture, 378
computations
algorithms. See algorithms
anticipating upcoming, 183
and optimizations, 179–184
computer animation, real-time, 354–355
conditional compilation, 192–193
ConMarkSweepGC, 171
connecting
to database (MySQL), 285–286
MySQL clients, 279–280
connection types, LAN vs. WAN gaming, 197–198
connections and channels, 132
console space, sports games implementation, 7
constant pool table, 154, 162
Container Managed Persistence (CMP), 286
containers
in GUI systems, 419–420
management, in GUI systems, 421–424
content loaders, 456
contexts, audio programming, 110–112
continuations and Java scripting, 308–309
controller-state vs. object-state communication, 235–236
controls, player (JOAL), 100–101
converting byte to char, 122–123
coordinate systems
audio programming, 105–107
and construction of basic entities, 36
and player movements, 50
setting up 2D, 412–413
sprites and, 56
for 3D graphics, 358–359
2D, drawing geometry from, 411
2D (fig.), 54
U-V, and texture mapping, 372
copying. See duplicating
coroutines, 309
costants vs. variables and optimization, 172
counting word tokens, 123
CPU cycles
and performance, 179
and thread use, 186–187
crashing games, and scripting languages, 302–303
CREATE DATABASE command (SQL), 281
CREATE TABLE command (SQL), 282
createBufferStrategy( ) method, 67–68
createEntity( ) method, 42–43
creating
custom scripting language, 313
game sessions, 222–228
GUI system, 416–424
managed images, 77–78
menus, 419
rendering loop, 68–70
scripting language from scratch, 304–305
Creative Labs, OpenAL, 86
culling levels of details, 182–183