One of the first articles that I wrote for the About Visual Basic site was about game programming. It's still on the site: Programming The Tic Tac Toe Game.
The reason I selected this was that programming games lets you illustrate the most important principals of programming and have fun at the same time. There's something about games that really gets into the corners of the language and uses all of it.
Matt Tagliaferri, the author of "Learn VB.NET Through Game Programming" told me that this was exactly the idea he had in writing this great book.
You might pass this one up on the bookshelf because you read the title and think, "I need a serious book! Games aren't for me!" or "I've always heard that game programming is an advanced topic about how to handle graphics and I/O. This is probably too difficult!"
These suspicions couldn't be further from the truth. The part of the book title that is really emphasized is "Learn VB.NET". He wanted a way to introduce the important principals of OOP and .NET and games seemed like a way to do it that everyone could appreciate and understand. I think he really succeeded.
Matt uses games to really get across the big "OOP" ideas like 'inheritance' and 'polymophism'. And although the games are real, they're actually just good beginner examples such as "Nine Tiles" and "Reversi" (Matt uses 'Reversi' to introduce multiplayer games played over a network - a great way to learn the basic principals of networked systems.)
One way to appreciate what Matt has created is to consider the first chapter, titled "Developing Your First Game".
The actual topics, however, include
* What the .NET Framework really is
* What a 'class' is and what the 'methods' and 'properties' of a class are
* What the automatically generated code in the .NET Region is
* How to add your own methods and properties to a class
... and, also how to code a program to display a die being rolled - a key part of a lot of games.
I wouldn't want to create the impression that this is only a book to learn VB.NET. It is a serious introduction to game programming as well. Later chapters focus on those aspects of VB.NET that are required parts of games such as multi-threading and DirectX 9, Microsoft's multimedia technology just for games. There are also appendix sections on the graphics utilities POV-RAY and Moray and BMPStitch. (If you're REALLY into games, however, you'll want to get a much more complete text. I recommend ".NET Game Programming with DirectX 9.0" by Alexandre Santos Lobao and Ellen Hatton (ISBN 1-59059-51-1) - also from APress.)
There are a number of titles available for game programming using VB 6. Although these might be out of print, if you are interested in VB 6 game programming you might still find these available in a few places:
Visual Basic Game Programming with DirectX by Jonathan S. Harbour - ISBN: 193184125X
Windows Game Programming with Visual Basic and DirectX by Wayne S. Freeze - ISBN: 0789725924
Microsoft Visual Basic 6.0: Games Programming by Catherine Dwyer, Jeanine Meyer - ISBN: 0619035617