gain, audio programming, 104–105
Galactic Village Games, 11–12, 296
Game class
state-driven, 33–36
updates to, 80–83
game databases
connecting to, 285–286
data caching, 295–296
designing, 274–276
efficient runtime JDBC access, 290–292
introduction to, 271
joins, 291–292
primary and foreign keys in, 276–277
referential integrity, 278
stored procedures, 293–294
using MySQL, 279–284
game design
See also game development
collision detection. See collision detection
database design, 274–276
and performance, 241, 262
game development
applying game logic, updating system, 28
audio, generally, 85–86
current Java, 6
design. See game design
Java platform advantages, disadvantages, 3–4
message printing and display, 40
obtaining player’s input, 26–27
programming. See game programming
rendering frames, 28–29
scene graphs and, 456–457
scripting languages and, 297–298
using native code in your game, 338–348
writing scenes with, 444–445
game engine described, 23
Game Initialization, game component described, 24
game loops described, 25
game networking process
creating, joining games, 221–228
discovery, 207–221
joining game session, 228–232
game networking protocols, 232–236
Game Playing, game component, 24–25
game programming
artificial intelligence forms, 48–51
basic game structure, 24–25
choosing video mode, 58–63
computation time, 179
fundamentals of, 22
Java autoboxing feature, 19
and math performance, 241
time calculation, 5
game sessions
creating, 222–228
joining, 228–232
‘sanity-checks,’ 233
Game Shutdown, game component, 24–25
GAME_INIT method, 80–81
GameJoiner class, 228–232
GameJoiner methods, 231
GAME_MAIN method, 43, 80–82
gameMain( ) method, 35
games
See also specific types of games
audio. See audio games
basic game state machine (fig.), 34
collision detection. See collision detection
crashing, 302–303
creating, joining, 221–228
joining session, 228–232
lock-step vs. open-loop, 233–235
modifying existing, 301
role of timing in, 31–33
server-based, 237
using native code in your, 338–348
GameSessionCreator class, 222–224
GAME_SHUTDOWN method, 80
gameShutdown( ) method, 82
garbage collector (GC)
and deleted files, 3
housekeeping and direct buffer functions, 335
use described, 167–171
and VM, 152–153
generators, 309
generics, future development and, 18–19
geometry
containers, 430
drawing from 2D coordinates, 411
and matrix hierarchies, 439–444
occlusion culling, 454–455
static and dynamic, 433
textured, using, 414–415
3D animation. See 3D animation
and ‘worlds.’ 471
GetArrayLength, 330
GetJoyPos function, 342
getMagnitude( ) method, 241
getScreenDevices method, 58
GetStringChars, 332
GetSuperClass function, 327
.gif files, 56
glBitmap method, 413
glCallList( ) command, 409
GLCanvas, GLPanel classes, 390
GLDrawable class (JOGL), 390
glEnable/Disable( ), 404
global references, 323, 325
globally unique identifiers. See GUIDs
GlueGen tool, 390, 392
glutBitmapCharacter method, 414
Gouraud shading, 368–369
Gran Prix Legends (Sun Microsystems), 10–11
graphical user interface. See GUI system
graphics
game engine and rendering, 52
3D. See 3D graphics
in 2D games, 53–54
graphics accelerator cards, 356
GraphicsDevice class, 57–58
GraphicsEnvironment class, 57
graphs
described, serialization, 124
scene. See scene graphs
group nodes in scene graphs, 445–446
groups
channel, 216
multicast, 201
GUI system
components of, 416–419
container, managing, 419–424
and head-up display, 416
test applications, 404
GUIDs (globally unique identifiers), 277