Scalars, 288
Scan lines, 165
Scan rates, 162
SC_CLOSE, 37
Scene graphs
defining, 326
optimizing, 335
rootnode of, 343
using, 326–340
SceneGraph.cpp files, 326–327
SceneGraph.h files, 326–327
SceneNode
attaching to, 329
implementing, 327–329
Scenes
adding, 351–354
building, 340–343
code definition of, 329–330
deleting, 354–355
implementing, 330–332
Schedule
bad schedules, warning signs of, 458–459
balancing, 480–483
bugs, postponing, 554–555
creating, 477–488
crunch mode, 549–551
features, cutting, 554–555
milestone acceptance time, 483, 485
milestones, inserting into, 484–485
pixel fodder, 551–553
production-stopping events, 483–484
slipping, 553–554
Scheduling
asset-based scheduling, 475–476
cluebooks and, 476
experience of programmers and, 476–477
with Microsoft Project, 471–473
milestones, 457, 459–471
programming tasks of game features, 473–474
user guides and, 476
Scientific method, application to software systems, 430–433
Scintillation, 321
SC_MAXIMIZE, 377
Screen classes, inheriting, 151
Screen designs, scheduling with, 475
Screen Manager, 140–141, 143
Screen modes, flipped, 174
Screen size, variations in, 6–7
Screen space, transforming camera space vertices into, 305–306
ScreenGraph
collision system, 356
data, loading, 356
data, saving, 356
DirectX Playground, plugging into, 351–355
Screens, 140–145
active, detecting and tracking, 142–144
aspect ratio, 305
dirty rectangle drawing of, 197–198
messages from controls, accepting, 151
modal dialog, preparing for, 147–148
preloading, 140
rendering, 43–44
transitions between, 140
Scripting languages, 83
Scripts, managing text with, 73–74
Security, 259
Seed, 84
SetFrame() method, 192
Sethi, Ravi, 80
SetPixel method, 171–172
Sets, pseudo-random traversal of, 93–98
Shapes, 283
Shift key, 135–138
Ship date, predicting, 466, 531–534
Single buffering, 162
Single/multithreaded access, protecting from, 72
Skip value, calculating, 94
Sky node, 355
SlowStruct, 66–67
Smart message box system, 374
Smart pointers, 52–59
limitations of, 58
purpose of, 52
SmartPtr, 54–58
Software, functional parts of, 201
Software development kits (SDKs), 4–5
Software development practices, 44
Sony
Linux environment use, 6
Playstation 2, 5–7, 63
Sound effects for controls, 156
Sound systems, debugging, 453
Sounds, 156–157
programming tasks associated with, 473, 478
storage formats, 252–257
subsampling, 322
Source Art and Sound settings, 256
Source code, repositories of, 106–114
Source code tree, rebuildable, 465–466
Source control management, 107
Source directory, purpose of, 101–102
Sprite class, 188–189
Sprite engines, 21
Sprites. See also 2D technology.
animating, 191–196
basic class of, 188–189
dirty rectangle drawing for, 197–198
drawing, 191–196
frame number of, 191–192
hotspots of, 190–191
initializing, 196–197
order, sorting, 189–191
position, sorting, 189–191
restoring, 197
separating from 3D polygons, 36–37
transparency of, 21–22
width and height of, 191
Stack corruption, debugging, 450–451
Stack memory, 60–63
StarTeam (Starbase), 111
Static code analysis, 444
Stderr, 442
Stereo versus mono, 254
STL reverse iterator, 142
Storage requirements, 29–30
Storage space, stress testing, 500
Stream constructors
implementing, 51–52
testing, 52
Streaming video, 255–257
Stress tests, 494, 499–502
StretchBit method, 169
Subsampling, 321–322
Subsystems
database for, 478
tasks associated with, 478–479
web components of, 478
Superstrings, 286
Surface normals, storage of, 293
Surfaces
character set, pre-drawing into, 182–183
color key setting, 170
copying, 173–174
copying, with alpha channels, 174–182
creating, 166–167
drawing on, 167–169
fonts, drawing to, 185–186
invalid, 174
memory surfaces, 165–167
restoring, 197
video surfaces, 165–167
System RAM (SRAM), 59–63
System resources, checking, 208–209