What Is in this tutorial

Overall, this tutorial covers topics for creating both 2D and 3D games. Here's a quick overview: , "Java Threads," is a quick primer on threads. Threads are one of those concepts many people have trouble with, and this chapter clears up a lot of issues and points out situations when to use threads and when not to use them in games. , "2D Graphics and Animation," through , "Creating a 2D Platform Game," thrash out the basics of any game: graphics, input, and sound. Some of the topics include full-screen hardware-accelerated graphics, animation, and sprites, how to create a system for customizing keyboard and mouse controls, how to integrate Swing within a full-screen game, how to play multiple sounds simultaneously, and how to apply sound effects such as an echo or a pseudo-3D sound filter. uses these concepts to create a cool 2D side-scrolling game. , "Multi-Player Games," covers creating multi-player games using NIO, starting with a multi-user chat server and then creating a multi-player game framework. Along the way, plenty of advanced issues and "gotchas" are discussed. , "3D Graphics," through , "3D Objects," focus on 3D graphics, from the basics of 3D to texture mapping, lighting, 3D objects, and Z-buffering. In , "3D Scene Management Using BSP Trees," you create a 3D engine using BSP trees. , "Collision Detection," through , "Game Scripting," talk about various game-programming techniques and apply them to the 3D engine. We'll discuss various collision-detection techniques, path finding (using the A* algorithm), artificial intelligence (including mimicked evolution), and game events and scripting. We apply these techniques in a 3D world, but they can easily be used in 2D games, as well. , "Persistence-Saving the Game," through , "Game Design and the Last 10%," discuss everything else a game is going to need, including persistence (saving the game state), optimization, ways to create art and sounds, game design, and the last 10% of your game (including debugging tips and game distribution). The final chapter is an overview of the future of Java: what is coming to the Java platform and what needs to happen to make Java even better for games. Throughout the tutorial, there is a focus on reusing code and building frameworks. The code you make in the first few chapters will be used all throughout the tutorial, and you'll add on to exiting classes to extend their functionality.