Often, a book title looks intriguing, but one is disappointed upon examining the book. This book has an intriguing title, and, in this case, the book exceeds expectations, delivering what it promised and more. The primary audience of the book is Visual Basic 6 programmers who wish to upgrade to Visual Basic .NET. In an appendix, the author presents an introduction to Visual Basic (VB) for those coming from other backgrounds, and suggests references targeted to readers’ backgrounds and learning styles.
To integrate VB into the .NET platform, Microsoft was forced to remove the backward compatibility of VB .NET with VB 6. Because Java has many of the same object-oriented capabilities, and similar libraries, using VB .NET may require more adjustments for VB 6 programmers than for Java programmers. Those with a programming background, whether in VB 6 or another language, would be ready for, and would enjoy, some more interesting examples than are typically found in texts for new programmers. Such examples are the foundation of this book.
Games vary in scope and features. They can even avoid graphics, to provide easier first examples. The author, however, jumps in with games that use graphics, and develops many enjoyable games in the book’s nine chapters. The project files for the games discussed in the text are available for downloading. A fast connection is recommended, since the unzipped files are very large. Each example worked perfectly using Visual Studio .NET.
I suggest that readers read the text carefully, while running the example being developed. The author teaches by example, rather than by organizing the concepts in a top-down outline. This concrete approach really enables learning, but takes some work. Digging into the code, reading it carefully along with the book’s explanation, will give the reader a working knowledge of VB .NET and object-oriented programming. The first game requires guessing the result of the roll of a die. Readers will be rewarded for their patience in studying the details of the animation. The VB .NET code uses predefined bitmap files. For those who wish to create images, the author, in an appendix, describes the freeware ray tracing program he used.
Visual Basic .NET is an object-oriented language. The author does an outstanding job of introducing readers to object-oriented concepts. He uses and explains inheritance, polymorphism, and interfaces in various examples very effectively. Chapter titles emphasizing object-oriented (OO) concepts include “Understanding Object-Oriented Programming from the Start,” “More OOPing Around,” “Understanding Polymorphism,” “Using Polymorphism via Interfaces,” and “Learning Other Object-Oriented Programming Topics.”
Each game looks professional and is fun to play. Chapter 3 includes a game with nine tiles that uses the dice animation. Chapter 4 uses inheritance to develop three tile games: “Concentration,” “Deductile Reasoning,” and “Lose Your Mind.” Chapter 5 illustrates polymorphism with several games using cellular automata. Chapter 6 continues with an entertaining Reversi game, which is extended to a network version in chapter 7.
Chapter 8 addresses the issue of drawing speed, which is slow using the default rendering. The author demonstrates how to download and use DirectX. One needs the rather large software development kit available from a Microsoft site, which integrates with Visual Studio .NET, to make the DirectX libraries available to the developer. The example that uses DirectX amply shows the difference in speed of the dice animation compared to the earlier games.
Computer professionals know that learning is necessary. Sometimes it can be a chore, and one finds excuses to avoid making the effort. With this book, one is more likely to look for excuses to spend time on it.