Give yourself a big pat on the back, because you deserve it! You've weathered the storm and finished this three-week whirlwind tour of Java game programming. In this last week, you learned about some pretty advanced game programming concepts, including artificial intelligence, networking, and Java code optimization. Let's recap what you learned this week before you move on to turning your own game ideas into Java realities.
In Chapter 15's lesson, you learned the fundamentals of artificial intelligence, including the major types of AI used in games. You moved on to learning about the AI techniques used in some popular commercial games, which provided you with some insight into where AI is headed in the gaming industry. You finished up the lesson by seeing some resources on the Web for doing further research on AI.
On Chapter 16, you developed a complete game, Connect4, that used artificial intelligence to provide the "brains" for a computer player. You began by defining the rules of the game and studying basic AI strategies. You then developed a Connect4 game engine complete with AI, along with an applet that utilized the engine.
Chapter 17's lesson focused on the basics of multiplayer gaming, including the two primary types of multiplayer games. You then learned about the most common problems associated with developing multiplayer games, along with corresponding solutions. The lesson concluded with a discussion of game theory, which is an interesting area of academic research that can be applied to multiplayer game design.
Chapter 18's lesson presented Java's support for networking, along with some strategies for developing networked applets in Java. You learned about the client/server approach to network programming and how it can be used to facilitate interaction between multiple users on the Internet. You finished by developing a powerful network class, SocketAction, which provides the overhead for performing streamed socket communication.
On Chapter 19, you developed a complete network Java game, NetConnect4, that allows two players to play Connect4 over the Internet. You began by studying the network requirements of the game, and then moved on to developing the client/server classes necessary for network communication. You then integrated this code into the original Connect4 game to build the complete NetConnect4 game.
On Chapter 20, you learned about techniques for optimizing Java code in games. Although Java is a fairly high-level language, you learned a variety of ways to squeeze more performance out of your game code. You first took a look at the different approaches to dealing with opti-mizations, including the use of a profiler. You then finished up by learning a wide range of techniques for altering Java code to be more efficient.
Your final lesson focused on the tools of the Java trade. You learned about the latest Java development environments and how they can be used to improve the game development process. Although writing cool Java games ultimately boils down to writing efficient, well-organized Java code, putting together a powerful toolkit will no doubt save you time and energy in the long run.