-
Chapter 1 Why Java for Games Programming?
-
Java Is Too Slow for Games Programming
-
Java Has Memory Leaks
-
Java Is Too High-level
-
Java Application Installation Is a Nightmare
-
Java Isn't Supported on Games Consoles
-
No One Uses Java to Write Real Games
-
Sun Microsystems Isn't Interested in Supporting Java Gaming
-
-
Chapter 2 An Animation Framework
-
Animation as a Threaded Canvas
-
Converting to Active Rendering
-
FPS and Sleeping for Varying Times
-
Sleeping Better
-
FPS and UPS
-
Pausing and Resuming
-
Other Animation Approaches
-
-
Chapter 3 Worms in Windows and Applets
-
Preliminary Considerations
-
Class Diagrams for the WormChase Application
-
The Worm-Chasing Application
-
The Game Panel
-
Storing Worm Information
-
Worm Obstacles
-
Application Timing Results
-
WormChase as an Applet
-
Compilation in J2SE 5.0
-
-
Chapter 4 Full-Screen Worms
-
An Almost Full-Screen (AFS) Worm
-
An Undecorated Full-Screen (UFS) Worm
-
A Full-Screen Exclusive Mode (FSEM) Worm
-
Timings at 80 to 85 FPS
-
-
Chapter 5 An Introduction to Java Imaging
-
Image Formats
-
The AWT Imaging Model
-
An Overview of Java 2D
-
Buffering an Image
-
Managed Images
-
VolatileImage
-
Java 2D Speed
-
Portability and Java 2D
-
JAI
-
-
Chapter 6 Image Loading, Visual Effects, and Animation
-
Loading Images
-
Applying Image Effects
-
Displaying Image Sequences
-
Visual Effects for 'o' Images
-
Packaging the Application as a JAR
-
Chapter 7 Introducing Java Sound
-
Applet Playing
-
The AudioClip Class
-
The Sound Player
-
The Java Sound API
-
Sampled Audio
-
MIDI
-
Java Sound API Compared with JMF and JOAL
-
Java Sound API Resources
-
Audio Resources
-
-
Chapter 8 Loading and Playing Sounds
-
Loader Design and Implementation Issues
-
Testing the Loaders
-
The Sounds Panel
-
The Clips Loader
-
Storing Clip Information
-
The Midi Sequences Loader
-
Storing Midi Information
-
LoadersTests as a JAR File
-
-
Chapter 9 Audio Effects
-
Audio Effects on Sampled Audio
-
Audio Effects on MIDI Sequences
-
-
Chapter 10 Audio Synthesis
-
Sampled Audio Synthesis
-
MIDI Synthesis
-
Audio Synthesis Libraries
-
-
Chapter 11 Sprites
-
Bats, Balls, and Sprites
-
Class Diagrams for BugRunner
-
The Bug Starts Running
-
The Animation Framework
-
Defining a Sprite
-
Coding a Sprite
-
Specifying a Sprite with a Statechart
-
The Ball Sprite
-
Defining the Bat
-
-
Chapter 12 A Side-Scroller
-
JumpingJack in Layers
-
Class Diagrams for JumpingJack
-
Start Jack Jumping
-
The Animation Framework
-
Managing the Ribbons
-
Wraparound Ribbons
-
Managing the Bricks
-
Storing Brick Information
-
The Fireball
-
The Jumping Sprite
-
Other Side-Scroller Examples
-
Tiling Software
-
-
Chapter 13 An Isometric Tile Game
-
Isometric Tiles
-
Class Diagrams for AlienTiles
-
The Animation Framework
-
Managing the World
-
Managing WorldItems
-
The Tile Occupier
-
A Sprite on a Tile
-
The Player Sprite
-
The Alien Sprite
-
The Quadrant-Based Alien Sprite
-
The A*-Based Alien Sprite
-
Storing Tile Details
-
Further Reading
-
-
Chapter 14 Introducing Java 3D
-
Java 3D
-
Java 3D Strengths
-
Criticisms of Java 3D for Games Programming
-
Alternatives to Java 3D
-
-
Chapter 15 A 3D Checkerboard: Checkers3D
-
Class Diagrams for Checkers3D
-
Integrating Java 3D and Swing
-
Scene Graph Creation
-
Floating Spheres
-
The Floor
-
Viewer Positioning
-
Viewer Movement
-
Viewing the Scene Graph
-
-
Chapter 16 Loading and Manipulating External Models
-
An Overview of LoaderInfo3D
-
Loaders in Java 3D
-
Displaying a Model
-
Examining a Model's Scene Graph
-
Adjusting a Model's Shape Attributes
-
An Overview of Loader3D
-
Using Loader3D
-
Creating the Scene
-
Managing the Model
-
Building the Model's Scene Graph
-
-
Chapter 17 Using a Lathe to Make Shapes
-
Class Diagrams for Lathe3D
-
Creating the Scene
-
The Lathe Curve
-
The Lathe Shape
-
Subclassing the Lathe Shape
-
-
Chapter 18 3D Sprites
-
Class Diagrams for Tour3D
-
Creating the Scene
-
The Basic 3D Sprite
-
The User's Touring Sprite
-
The Alien Sprite
-
Behaviors in Java 3D
-
Controlling the Touring Sprite
-
Updating the Alien Sprite
-
-
Chapter 19 Animated 3D Sprites
-
Class Diagrams for AnimTour3D
-
Creating the Scene
-
The Animated 3D Sprite
-
Controlling the Sprite
-
Animating the Sprite
-
Full-Screen Exclusive Mode (FSEM)
-
A Full-Screen Version of the Application
-
Pros and Cons of Keyframe Animation
-
Chapter 20 An Articulated, Moveable Figure
-
The Articulated Figure Application
-
Forward and Inverse Kinematics
-
Class Diagrams for Mover3D
-
Creating the Scene
-
Processing User Input
-
The Commands Panel
-
Making and Moving the Figure
-
Modeling a Limb
-
Moving a Limb
-
Other Articulated Figures
-
Articulation and Mesh Deformation
-
Articulation and Skinning
-
Articulation and Morphing
-
-
Chapter 21 Particle Systems
-
Particle Systems in Java 3D
-
Class Diagrams for Particles3D
-
Creating the Scene
-
A Fountain of Points
-
A Fountain of Lines
-
A Fountain of Quads
-
Performance Results
-
More Particle Systems
-
Other Java 3D Approaches
-
Non-Java 3D Approaches
-
-
Chapter 22 Flocking Boids
-
A Flocking Application
-
Scene Creation
-
Adding Obstacles
-
Types of Boids
-
Grouping the Boids
-
Flock Behavior
-
-
Chapter 23 Shooting a Gun
-
Class Diagrams for Shooter3D
-
Scene Creation
-
The Sound of Shooting
-
Picking Scene Objects
-
Controlling the Gun
-
Preparing the Laser Beam
-
Causing an Explosion
-
Picking with a Mouse Click
-
Shooting Behavior
-
Firing the Beam
-
More on Picking
-
-
Chapter 24 A First-Person Shooter
-
Class Diagrams for FPShooter3D
-
Setting Up the Target
-
Positioning and Moving the User's Viewpoint
-
Initializing the User's Viewpoint
-
Adding an Image to the Viewpoint
-
Managing the Ammunition
-
Managing a Laser Beam
-
Moving the Viewpoint
-
-
Chapter 25 A 3D Maze
-
Class Diagrams for Maze3D
-
Making a Maze Plan
-
The User Interface
-
Managing the Maze
-
Scenery Creation
-
Tiling the Floor
-
Viewpoint Creation
-
The Back Facing Camera
-
Moving the Viewpoint
-
The Bird's-Eye View
-
Related Approaches to Scene Generation
-
-
Chapter 26 Fractal Land
-
Class Diagrams for the Fractal Land
-
Building the Fractal Land
-
Creating the Landscape
-
Constructing the Ground
-
Generating a Fractal Landscape
-
Responding to Key Presses
-
Terrain Following and Collision Avoidance
-
Placing Objects in the Scene
-
Other Fractal Landscapes
-
-
Chapter 27 Terrain Generation with Terragen
-
Class Diagrams for Terra3D
-
Terragen
-
Scenery Creation
-
Building the Landscape
-
Making 3D Scenery
-
Adding Landscape Walls
-
Creating Ground Cover
-
Moving over the Surface
-
Finding the Surface Height
-
Accelerating Terrain Following
-
More on Terrain Generation
-
-
Chapter 28 Trees That Grow
-
Class Diagrams for Trees3D
-
Creating the Scene
-
Building a Tree Limb
-
Executing the Rules
-
Displaying Leaves
-
Comparison with L-Systems
-
-
Chapter 29 Networking Basics
-
The Elements of Network Communication
-
The Client/Server Model
-
The Peer-to-Peer Model
-
Client/Server Programming in Java
-
P2P Programming in Java
-
Firewalls
-
Other Kinds of Java Networking
-
-
Chapter 30 Network Chat
-
Threaded TCP Clients and Server
-
UDP Multicasting Clients and a Name Server
-
Clients Using a Servlet as a Server
-
-
Chapter 31 A Networked Two-Person Game
-
The Standalone Tic-Tac-Toe Game
-
The Networked Tic-Tac-Toe Game
-
Comparing NetFourByFour and FourByFour
-
-
Chapter 32 A Networked Virtual Environment
-
Background on NVEs
-
An Overview of NetTour3D
-
Scene Creation on the Client
-
Defining Sprites
-
Local Sprites
-
Watching the Server
-
Server Activities
-
Other Java NVEs
-
-
Appendix A Installation Using install4j
-
install4j Versus JWS
-
The Java 3D Components
-
The BugRunner Application
-
The Checkers3D Application
-
-
Appendix B Installation Using Java Web Start
-
JWS Benefits
-
JWS Downsides
-
The JNLP Deployment File
-
Steps in Developing a JWS Application
-
A JWS Installer for BugRunner
-
A JWS Installer for Checkers3D
-
Another Way to Install Checkers3D
-
The JWS Portal Page
-
Third-Party Certificates
-
More Information
-
-
Colophon
- Title:
- Killer Game Programming in Java
- By:
- Andrew Davison
- Publisher:
- O'Reilly Media
- Formats:
-
- Ebook
- Safari Books Online
- Print Release:
- May 2005
- Ebook Release:
- February 2009
- Pages:
- 1008
- Print ISBN:
- 978-0-596-00730-0
- | ISBN 10:
- 0-596-00730-2
- Ebook ISBN:
- 978-0-596-10494-8
- | ISBN 10:
- 0-596-10494-4
The animal on the cover of Killer Game Programming in Java is a jungle cat (Felis chaus), a solitary felid known for its marvelous adaptability. Also known in some places as the swamp or reed cat, the jungle cat is found across a wide geographic area, ranging from Egypt to the Middle East to parts of Southern Asia and Western China. The name jungle cat, however, is a misnomer because, while this animal is often found in open grasslands, marshes, swamps, and tropical deciduous and evergreen forests, it is never found in dense tropical rain forests. The jungle cat varies in weight across its range. Cats living in Central Asia weigh up to 36 pounds, about 5 or 6 pounds more than those from Thailand and other neighboring areas.
Jungle cats can be distinguished from other wild cat species by their long legs and uniform coat color, which ranges from sandy yellow to reddish brown. In ancient Egypt, these cats were held in high esteem for their stealth and agility. Etchings found on the walls of ancient temples depict jungle cats hunting beside humans. Their mummified remains can also be found in tombs of the period.
The jungle cat's long survival as a species is attributed in part to its great resourcefulness. These cats often inhabit the disused burrows of other animals, and in India, they are sometimes known to take up residence in abandoned buildings on the outskirts of human settlements, hunting in nearby crop fields for small rodents. They are mostly crepuscular in their hunting habits, but are known to be more active during daylight hours in some regions. Their prey includes rodents, small mammals, birds, reptiles, insects, and occasionally wild pigs, chital deer, and fish. Keen hearing, a contribution from the cat's large ears, help it locate prey in areas of dense vegetation. It can jump 13 feet to swipe a desert quail from the air, dive into water to capture fish, and even climb trees to hunt when necessary. The jungle cat, some say, can make it anywhere.
