did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780596007300

Killer Game Programming In Java

by
  • ISBN13:

    9780596007300

  • ISBN10:

    0596007302

  • Format: Paperback
  • Copyright: 2005-06-30
  • Publisher: Oreilly & Associates Inc
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $59.99 Save up to $19.50
  • Buy New
    $58.19
    Add to Cart Free Shipping Icon Free Shipping

    USUALLY SHIPS IN 2-3 BUSINESS DAYS

Supplemental Materials

What is included with this book?

Summary

3D is all the rage with game and graphics programmers. This is the first book to thoroughly cover Java's 3D capabilities for all types of graphics and game development projects. Java developers new to graphics and game programming, and game developers new to Java 3D will all benefit from this practical introduction to the latest Java graphics and game programming technologies and techniques. Beginning with an overview of the older, better known 2D capabilities, then moving on to thoroughly cover Java 3D, this is a comprehensive guide with both breadth and depth of coverage. Features chapters on 3D Sprites, Animated 3D sprites, first- person shooter programming, fractals, networked games and mobile 3D games.

Table of Contents

Preface xv
Why Java for Games Programming?
1(12)
Java Is Too Slow for Games Programming
2(1)
Java Has Memory Leaks
3(1)
Java Is Too High-level
4(1)
Java Application Installation Is a Nightmare
5(1)
Java Isn't Supported on Games Consoles
5(2)
No One Uses Java to Write Real Games
7(3)
Sun Microsystems Isn't Interested in Supporting Java Gaming
10(3)
An Animation Framework
13(33)
Animation as a Threaded Canvas
14(6)
Adding User Interaction
20(1)
Converting to Active Rendering
21(1)
FPS and Sleeping for Varying Times
22(9)
Sleeping Better
31(3)
FPS and UPS
34(3)
Pausing and Resuming
37(2)
Other Animation Approaches
39(7)
Worms in Windows and Applets
46(30)
Preliminary Considerations
47(1)
Class Diagrams for the WormChase Application
48(1)
The Worm-Chasing Application
48(2)
The Game Panel
50(9)
Storing Worm Information
59(8)
Worm Obstacles
67(1)
Application Timing Results
68(2)
WormChase as an Applet
70(3)
Compilation in J2SE 5.0
73(3)
Full-Screen Worms
76(29)
An Almost Full-Screen (AFS) Worm
77(5)
An Undecorated Full-Screen (UFS) Worm
82(7)
A Full-Screen Exclusive Mode (FSEM) Worm
89(14)
Timings at 80 to 85 FPS
103(2)
An Introduction to Java Imaging
105(19)
Image Formats
105(1)
The AWT Imaging Model
106(4)
An Overview of Java 2D
110(3)
Buffering an Image
113(7)
Managed Images
120(1)
VolatileImage
121(1)
Java 2D Speed
122(1)
Portability and Java 2D
122(1)
JAI
123(1)
Image Loading, Visual Effects, and Animation
124(54)
Loading Images
126(8)
Applying Image Effects
134(10)
Displaying Image Sequences
144(3)
Visual Effects for `o' Images
147(28)
Packaging the Application as a JAR
175(3)
Introducing Java Sound
178(27)
Applet Playing
178(1)
The AudioClip Class
179(3)
The Sound Player
182(3)
The Java Sound API
185(1)
Sampled Audio
185(12)
MIDI
197(5)
Java Sound API Compared with JMF and JOAL
202(1)
Java Sound API Resources
202(2)
Audio Resources
204(1)
Loading and Playing Sounds
205(21)
Loader Design and Implementation Issues
207(2)
Testing the Loaders
209(4)
The Sounds Panel
213(1)
The Clips Loader
214(2)
Storing Clip Information
216(3)
The Midi Sequences Loader
219(4)
Storing Midi Information
223(2)
LoadersTests as a JAR File
225(1)
Audio Effects
226(23)
Audio Effects on Sampled Audio
226(10)
Audio Effects on MIDI Sequences
236(13)
Audio Synthesis
249(21)
Sampled Audio Synthesis
249(6)
MIDI Synthesis
255(13)
Audio Synthesis Libraries
268(2)
Sprites
270(28)
Bats, Balls, and Sprites
270(2)
Class Diagrams for BugRunner
272(1)
The Bug Starts Running
273(1)
The Animation Framework
274(5)
Defining a Sprite
279(1)
Coding a Sprite
280(4)
Specifying a Sprite with a Statechart
284(3)
The Ball Sprite
287(6)
Defining the Bat
293(5)
A Side-Scroller
298(47)
JumpingJack in Layers
299(1)
Class Diagrams for JumpingJack
300(3)
Start Jack Jumping
303(1)
The Animation Framework
303(10)
Managing the Ribbons
313(1)
Wraparound Ribbons
314(6)
Managing the Bricks
320(13)
Storing Brick Information
333(1)
The Fireball
334(2)
The Jumping Sprite
336(7)
Other Side-Scroller Examples
343(1)
Tiling Software
344(1)
An Isometric Tile Game
345(42)
Isometric Tiles
346(4)
Class Diagrams for Alien Tiles
350(2)
The Animation Framework
352(4)
Managing the World
356(7)
Managing WorldItems
363(3)
The Tile Occupier
366(2)
A Sprite on a Tile
368(2)
The Player Sprite
370(3)
The Alien Sprite
373(3)
The Quadrant-Based Alien Sprite
376(2)
The A*-Based Alien Sprite
378(5)
Storing Tile Details
383(1)
Further Reading
384(3)
Introducing Java 3D
387(20)
Java 3D
387(5)
Java 3D Strengths
392(2)
Criticisms of Java 3D for Games Programming
394(8)
Alternatives to Java 3D
402(5)
A 3D Checkerboard: Checkers3D
407(17)
Class Diagrams for Checkers3D
408(1)
Integrating Java 3D and Swing
409(1)
Scene Graph Creation
410(3)
Floating Spheres
413(2)
The Floor
415(4)
Viewer Positioning
419(1)
Viewer Movement
420(1)
Viewing the Scene Graph
421(3)
Loading and Manipulating External Models
424(35)
An Overview of LoaderInfo3D
426(2)
Loaders in Java 3D
428(2)
Displaying a Model
430(3)
Examining a Model's Scene Graph
433(2)
Adjusting a Model's Shape Attributes
435(9)
An Overview of Loader3D
444(2)
Using Loader3D
446(3)
Creating the Scene
449(1)
Managing the Model
450(1)
Building the Model's Scene Graph
451(8)
Using a Lathe to Make Shapes
459(28)
Class Diagrams for Lathe3D
461(1)
Creating the Scene
462(6)
The Lathe Curve
468(6)
The Lathe Shape
474(8)
Subclassing the Lathe Shape
482(5)
3D Sprites
487(25)
Class Diagrams for Tour3D
488(1)
Creating the Scene
489(6)
The Basic 3D Sprite
495(5)
The User's Touring Sprite
500(1)
The Alien Sprite
500(2)
Behaviors in Java 3D
502(2)
Controlling the Touring Sprite
504(6)
Updating the Alien Sprite
510(2)
Animated 3D Sprites
512(19)
Class Diagrams for AnimTour3D
513(1)
Creating the Scene
514(1)
The Animated 3D Sprite
515(5)
Controlling the Sprite
520(1)
Animating the Sprite
520(5)
Full-Screen Exclusive Mode (FSEM)
525(1)
A Full-Screen Version of the Application
525(5)
Pros and Cons of Keyframe Animation
530(1)
An Articulated, Moveable Figure
531(34)
The Articulated Figure Application
531(4)
Forward and Inverse Kinematics
535(2)
Class Diagrams for Mover3D
537(1)
Creating the Scene
538(1)
Processing User Input
539(1)
The Commands Panel
540(3)
Making and Moving the Figure
543(10)
Modeling a Limb
553(4)
Moving a Limb
557(4)
Other Articulated Figures
561(1)
Articulation and Mesh Deformation
562(1)
Articulation and Skinning
562(1)
Articulation and Morphing
563(2)
Particle Systems
565(27)
Particle Systems in Java 3D
568(3)
Class Diagrams for Particles3D
571(1)
Creating the Scene
572(2)
A Fountain of Points
574(4)
A Fountain of Lines
578(2)
A Fountain of Quads
580(7)
Performance Results
587(2)
More Particle Systems
589(1)
Other Java 3D Approaches
589(1)
Non-Java 3D Approaches
590(2)
Flocking Boids
592(22)
A Flocking Application
594(2)
Scene Creation
596(1)
Adding Obstacles
597(3)
Types of Boids
600(7)
Grouping the Boids
607(1)
Flock Behavior
608(6)
Shooting a Gun
614(28)
Class Diagrams for Shooter3D
616(1)
Scene Creation
617(1)
The Sound of Shooting
617(2)
Picking Scene Objects
619(3)
Controlling the Gun
622(2)
Preparing the Laser Beam
624(3)
Causing an Explosion
627(4)
Picking with a Mouse Click
631(3)
Shooting Behavior
634(5)
Firing the Beam
639(1)
More on Picking
640(2)
A First-Person Shooter
642(14)
Class Diagrams for FPShooter3D
643(1)
Setting Up the Target
644(1)
Positioning and Moving the User's Viewpoint
645(2)
Initializing the User's Viewpoint
647(1)
Adding an Image to the Viewpoint
648(2)
Managing the Ammunition
650(1)
Managing a Laser Beam
651(3)
Moving the Viewpoint
654(2)
A 3D Maze
656(30)
Class Diagrams for Maze3D
657(2)
Making a Maze Plan
659(3)
The User Interface
662(1)
Managing the Maze
663(3)
Scenery Creation
666(2)
Tiling the Floor
668(2)
Viewpoint Creation
670(6)
The Back Facing Camera
676(3)
Moving the Viewpoint
679(2)
The Bird's-Eye View
681(4)
Related Approaches to Scene Generation
685(1)
Fractal Land
686(25)
Class Diagrams for the Fractal Land
688(1)
Building the Fractal Land
689(2)
Creating the Landscape
691(6)
Constructing the Ground
697(4)
Generating a Fractal Landscape
701(4)
Responding to Key Presses
705(1)
Terrain Following and Collision Avoidance
706(1)
Placing Objects in the Scene
707(2)
Other Fractal Landscapes
709(2)
Terrain Generation with Terragen
711(38)
Class Diagrams for Terra3D
712(1)
Terragen
713(7)
Scenery Creation
720(2)
Building the Landscape
722(6)
Making 3D Scenery
728(3)
Adding Landscape Walls
731(3)
Creating Ground Cover
734(5)
Moving over the Surface
739(2)
Finding the Surface Height
741(2)
Accelerating Terrain Following
743(2)
More on Terrain Generation
745(4)
Trees That Grow
749(20)
Class Diagrams for Trees3D
751(1)
Creating the Scene
752(3)
Building a Tree Limb
755(6)
Executing the Rules
761(3)
Displaying Leaves
764(2)
Comparison with L-Systems
766(3)
Networking Basics
769(48)
The Elements of Network Communication
770(6)
The Client/Server Model
776(2)
The Peer-to-Peer Model
778(2)
Client/Server Programming in Java
780(25)
P2P Programming in Java
805(3)
Firewalls
808(8)
Other Kinds of Java Networking
816(1)
Network Chat
817(27)
Threaded TCP Clients and Server
818(6)
UDP Multicasting Clients and a Name Server
824(7)
Clients Using a Servlet as a Server
831(13)
A Networked Two-Person Game
844(34)
The Standalone Tic-Tac-Toe Game
846(12)
The Networked Tic-Tac-Toe Game
858(20)
A Networked Virtual Environment
878(27)
Background on NVEs
879(5)
An Overview of NetTour3D
884(3)
Scene Creation on the Client
887(1)
Defining Sprites
888(2)
Local Sprites
890(3)
Watching the Server
893(6)
Server Activities
899(3)
Other Java NVEs
902(3)
Installation Using install4j 905(16)
Installation Using Java Web Start 921(32)
Index 953

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program