Books & Videos

Table of Contents

  1. Chapter 1 Why Java for Games Programming?

    1. Java Is Too Slow for Games Programming

    2. Java Has Memory Leaks

    3. Java Is Too High-level

    4. Java Application Installation Is a Nightmare

    5. Java Isn't Supported on Games Consoles

    6. No One Uses Java to Write Real Games

    7. Sun Microsystems Isn't Interested in Supporting Java Gaming

  2. Chapter 2 An Animation Framework

    1. Animation as a Threaded Canvas

    2. Converting to Active Rendering

    3. FPS and Sleeping for Varying Times

    4. Sleeping Better

    5. FPS and UPS

    6. Pausing and Resuming

    7. Other Animation Approaches

  3. Chapter 3 Worms in Windows and Applets

    1. Preliminary Considerations

    2. Class Diagrams for the WormChase Application

    3. The Worm-Chasing Application

    4. The Game Panel

    5. Storing Worm Information

    6. Worm Obstacles

    7. Application Timing Results

    8. WormChase as an Applet

    9. Compilation in J2SE 5.0

  4. Chapter 4 Full-Screen Worms

    1. An Almost Full-Screen (AFS) Worm

    2. An Undecorated Full-Screen (UFS) Worm

    3. A Full-Screen Exclusive Mode (FSEM) Worm

    4. Timings at 80 to 85 FPS

  5. Chapter 5 An Introduction to Java Imaging

    1. Image Formats

    2. The AWT Imaging Model

    3. An Overview of Java 2D

    4. Buffering an Image

    5. Managed Images

    6. VolatileImage

    7. Java 2D Speed

    8. Portability and Java 2D

    9. JAI

  6. Chapter 6 Image Loading, Visual Effects, and Animation

    1. Loading Images

    2. Applying Image Effects

    3. Displaying Image Sequences

    4. Visual Effects for 'o' Images

    5. Packaging the Application as a JAR

  7. Chapter 7 Introducing Java Sound

    1. Applet Playing

    2. The AudioClip Class

    3. The Sound Player

    4. The Java Sound API

    5. Sampled Audio

    6. MIDI

    7. Java Sound API Compared with JMF and JOAL

    8. Java Sound API Resources

    9. Audio Resources

  8. Chapter 8 Loading and Playing Sounds

    1. Loader Design and Implementation Issues

    2. Testing the Loaders

    3. The Sounds Panel

    4. The Clips Loader

    5. Storing Clip Information

    6. The Midi Sequences Loader

    7. Storing Midi Information

    8. LoadersTests as a JAR File

  9. Chapter 9 Audio Effects

    1. Audio Effects on Sampled Audio

    2. Audio Effects on MIDI Sequences

  10. Chapter 10 Audio Synthesis

    1. Sampled Audio Synthesis

    2. MIDI Synthesis

    3. Audio Synthesis Libraries

  11. Chapter 11 Sprites

    1. Bats, Balls, and Sprites

    2. Class Diagrams for BugRunner

    3. The Bug Starts Running

    4. The Animation Framework

    5. Defining a Sprite

    6. Coding a Sprite

    7. Specifying a Sprite with a Statechart

    8. The Ball Sprite

    9. Defining the Bat

  12. Chapter 12 A Side-Scroller

    1. JumpingJack in Layers

    2. Class Diagrams for JumpingJack

    3. Start Jack Jumping

    4. The Animation Framework

    5. Managing the Ribbons

    6. Wraparound Ribbons

    7. Managing the Bricks

    8. Storing Brick Information

    9. The Fireball

    10. The Jumping Sprite

    11. Other Side-Scroller Examples

    12. Tiling Software

  13. Chapter 13 An Isometric Tile Game

    1. Isometric Tiles

    2. Class Diagrams for AlienTiles

    3. The Animation Framework

    4. Managing the World

    5. Managing WorldItems

    6. The Tile Occupier

    7. A Sprite on a Tile

    8. The Player Sprite

    9. The Alien Sprite

    10. The Quadrant-Based Alien Sprite

    11. The A*-Based Alien Sprite

    12. Storing Tile Details

    13. Further Reading

  14. Chapter 14 Introducing Java 3D

    1. Java 3D

    2. Java 3D Strengths

    3. Criticisms of Java 3D for Games Programming

    4. Alternatives to Java 3D

  15. Chapter 15 A 3D Checkerboard: Checkers3D

    1. Class Diagrams for Checkers3D

    2. Integrating Java 3D and Swing

    3. Scene Graph Creation

    4. Floating Spheres

    5. The Floor

    6. Viewer Positioning

    7. Viewer Movement

    8. Viewing the Scene Graph

  16. Chapter 16 Loading and Manipulating External Models

    1. An Overview of LoaderInfo3D

    2. Loaders in Java 3D

    3. Displaying a Model

    4. Examining a Model's Scene Graph

    5. Adjusting a Model's Shape Attributes

    6. An Overview of Loader3D

    7. Using Loader3D

    8. Creating the Scene

    9. Managing the Model

    10. Building the Model's Scene Graph

  17. Chapter 17 Using a Lathe to Make Shapes

    1. Class Diagrams for Lathe3D

    2. Creating the Scene

    3. The Lathe Curve

    4. The Lathe Shape

    5. Subclassing the Lathe Shape

  18. Chapter 18 3D Sprites

    1. Class Diagrams for Tour3D

    2. Creating the Scene

    3. The Basic 3D Sprite

    4. The User's Touring Sprite

    5. The Alien Sprite

    6. Behaviors in Java 3D

    7. Controlling the Touring Sprite

    8. Updating the Alien Sprite

  19. Chapter 19 Animated 3D Sprites

    1. Class Diagrams for AnimTour3D

    2. Creating the Scene

    3. The Animated 3D Sprite

    4. Controlling the Sprite

    5. Animating the Sprite

    6. Full-Screen Exclusive Mode (FSEM)

    7. A Full-Screen Version of the Application

    8. Pros and Cons of Keyframe Animation

  20. Chapter 20 An Articulated, Moveable Figure

    1. The Articulated Figure Application

    2. Forward and Inverse Kinematics

    3. Class Diagrams for Mover3D

    4. Creating the Scene

    5. Processing User Input

    6. The Commands Panel

    7. Making and Moving the Figure

    8. Modeling a Limb

    9. Moving a Limb

    10. Other Articulated Figures

    11. Articulation and Mesh Deformation

    12. Articulation and Skinning

    13. Articulation and Morphing

  21. Chapter 21 Particle Systems

    1. Particle Systems in Java 3D

    2. Class Diagrams for Particles3D

    3. Creating the Scene

    4. A Fountain of Points

    5. A Fountain of Lines

    6. A Fountain of Quads

    7. Performance Results

    8. More Particle Systems

    9. Other Java 3D Approaches

    10. Non-Java 3D Approaches

  22. Chapter 22 Flocking Boids

    1. A Flocking Application

    2. Scene Creation

    3. Adding Obstacles

    4. Types of Boids

    5. Grouping the Boids

    6. Flock Behavior

  23. Chapter 23 Shooting a Gun

    1. Class Diagrams for Shooter3D

    2. Scene Creation

    3. The Sound of Shooting

    4. Picking Scene Objects

    5. Controlling the Gun

    6. Preparing the Laser Beam

    7. Causing an Explosion

    8. Picking with a Mouse Click

    9. Shooting Behavior

    10. Firing the Beam

    11. More on Picking

  24. Chapter 24 A First-Person Shooter

    1. Class Diagrams for FPShooter3D

    2. Setting Up the Target

    3. Positioning and Moving the User's Viewpoint

    4. Initializing the User's Viewpoint

    5. Adding an Image to the Viewpoint

    6. Managing the Ammunition

    7. Managing a Laser Beam

    8. Moving the Viewpoint

  25. Chapter 25 A 3D Maze

    1. Class Diagrams for Maze3D

    2. Making a Maze Plan

    3. The User Interface

    4. Managing the Maze

    5. Scenery Creation

    6. Tiling the Floor

    7. Viewpoint Creation

    8. The Back Facing Camera

    9. Moving the Viewpoint

    10. The Bird's-Eye View

    11. Related Approaches to Scene Generation

  26. Chapter 26 Fractal Land

    1. Class Diagrams for the Fractal Land

    2. Building the Fractal Land

    3. Creating the Landscape

    4. Constructing the Ground

    5. Generating a Fractal Landscape

    6. Responding to Key Presses

    7. Terrain Following and Collision Avoidance

    8. Placing Objects in the Scene

    9. Other Fractal Landscapes

  27. Chapter 27 Terrain Generation with Terragen

    1. Class Diagrams for Terra3D

    2. Terragen

    3. Scenery Creation

    4. Building the Landscape

    5. Making 3D Scenery

    6. Adding Landscape Walls

    7. Creating Ground Cover

    8. Moving over the Surface

    9. Finding the Surface Height

    10. Accelerating Terrain Following

    11. More on Terrain Generation

  28. Chapter 28 Trees That Grow

    1. Class Diagrams for Trees3D

    2. Creating the Scene

    3. Building a Tree Limb

    4. Executing the Rules

    5. Displaying Leaves

    6. Comparison with L-Systems

  29. Chapter 29 Networking Basics

    1. The Elements of Network Communication

    2. The Client/Server Model

    3. The Peer-to-Peer Model

    4. Client/Server Programming in Java

    5. P2P Programming in Java

    6. Firewalls

    7. Other Kinds of Java Networking

  30. Chapter 30 Network Chat

    1. Threaded TCP Clients and Server

    2. UDP Multicasting Clients and a Name Server

    3. Clients Using a Servlet as a Server

  31. Chapter 31 A Networked Two-Person Game

    1. The Standalone Tic-Tac-Toe Game

    2. The Networked Tic-Tac-Toe Game

    3. Comparing NetFourByFour and FourByFour

  32. Chapter 32 A Networked Virtual Environment

    1. Background on NVEs

    2. An Overview of NetTour3D

    3. Scene Creation on the Client

    4. Defining Sprites

    5. Local Sprites

    6. Watching the Server

    7. Server Activities

    8. Other Java NVEs

  1. Appendix A Installation Using install4j

    1. install4j Versus JWS

    2. The Java 3D Components

    3. The BugRunner Application

    4. The Checkers3D Application

  2. Appendix B Installation Using Java Web Start

    1. JWS Benefits

    2. JWS Downsides

    3. The JNLP Deployment File

    4. Steps in Developing a JWS Application

    5. A JWS Installer for BugRunner

    6. A JWS Installer for Checkers3D

    7. Another Way to Install Checkers3D

    8. The JWS Portal Page

    9. Third-Party Certificates

    10. More Information

  3. Colophon