Sample class, 129
scene graphs
components of, 445–447
content loaders, 455
and games, 456–457
updates and interactions, 455
using, 444–445
visibility culling, 447–455
SciMark 2.0, 263
screen
See also monitor
modes for 2D games, 56–57
resolution, 55, 412–413
ScriptBase class, 313
scripting languages
BGScript, 304
characteristics of, 300–303
creating custom, 313
and game development, 297
integrating existing, 312–313
Java as, 307–312
Java for MMOs, 13
overview of, 298–300
strongly vs. loosely typed, 308
using existing, 304–306
searches, heuristic, 185
secondary buffer and rendering, 65
security
and Java scripting, 311–312
model for Java classes, 5
scripting languages, 302–303
SELECT command (SQL), 280
Serializable interface, 128
serialization described, 217
serializing
Java objects and extracting from streams, 122
objects, 124–132
server-based games, 237
servers, and Java, 11–12
ServerSocket class, 202–204, 222–224
ServerSocketHandler class, 224–228
sessions. See game sessions
setState( ) method, 34–35
setWindowListener( ) method, 70
shading, 3D graphics, 364–369
shadows, 3D graphics, 370
shareware, 3D graphics programs, 361
SHOW command (MySQL), 280
SHOW DATABASE command (SQL), 281
Silicon Graphics, OpenGL RT3D rendering library, 357
SimplePlayer class, 101
SimpleSocketListener sample application, 202, 215
sine and cosine
faster performance, 245–251
in gaming programming, 241
sine lookup tables, 246–249
skin and bones animation, 459
Sleep() timer workaround, 5
sleep( ) method, 31
Socket class, 202
SocketChannel, 133
sockets
multicast, 210, 216
types described, 200–202
software vs. hardware for 3D real-time animation, 355
Sony PS2 Vector Unit instruction set, 299
sound attenuation models, 98
sound cards, basic requirements, JOAL, 89
sound-rendering contexts, 110–111
sounds, loading more than one, 101–103
Source classes
and audio programming, 89
floating-point-based properties, 97–98
integer-based properties, 95–97
source code
executing, during runtime, 312
preventing theft of, 5
Sources
control properties, 104–105
and loading more than one sound, 101–103
speed
monitor refreshing, 29–31
required for real-time animation, 354
sports games, current development of Java, 6–7
sprites described, 56
SQL (structured query language)
data access using, 286–289
and relational databases, 273–274
square root
JVM fast math tests (fig.), 258–259
math performance, 245, 251–259
SSE (Intel Streaming SIMD Extensions), 263
starting MySQL, 279
state controls
basic game (fig.), 34
described, using, 33–36
OpenGL, 387–388
state machine described, 33
state sorting, 445
states
for basic entities, 36
described, 33
in GUI systems, 423
loading and storing program’s, 124
static buffers and optimizations, 189
static constants, functions (JOGL), 393–394
static importing, new Java feature, 21–22
static vs. dynamic collisions, 472
statically bound vs. virtual methods, 188
stored procedures, in game databases, 293–294
strategy games, current development of Java, 14–15
streaming audio, 113
streams
character, 122–123
filtered, described, 121
java.io handling of, 119
StringBuffer objects, 189–190
string functions, JNI (Java Native Interface), 331–332
StringgetMessage( ), 288
string manipulation overhead, 189–190
structured query language. See SQL
structure, basic game, , 24–25
subscribing to multicast groups, 201
Sun Java3D. See Java3D
Sun HotSpot VMs, 156–157, 158, 163, 167, 180, 188, 310, 350
Sun J2DK, 499
Sun Microsystems
JDK 1.5 release, 18
JVM specifications, 152
servers, and Java, 13
and sports games, 7
super (keyword), 166
support objects for animation, 460
sweep culling, 470
Swing components (AWT), 389–390
synchronization and JSDT, 199
synthetic keys in game databases, 277
system memory vs. Java heap, 334
system requirements, CD-ROM, 500
System.currentTimeMillis( ) method, 31