Sunday, October 24, 2004

Book Review: Beginning .NET Game Programming in VB.NET

Let me get the full disclosure bit out of the way right up front: I was sent a free copy of this book by the publisher, I know two of the authors somewhat, and they mention this website in their references. That said, you can choose how large a grain of salt with which to take this review.


Frankly, I didn't think I was going to like Beginning .NET Game Programming in VB.NET. It's written in VB.NET (I'm a C# guy), it's a beginner's book, and most DirectX/gaming books suck. Fortunately, I was wrong.


I find that whenever I'm learning a technology, I generally want two books. I want to start with a good tutorial, and once I understand the basics, I want a good theory and reference book to help me explore in my own directions. Beginning .NET Game Programming in VB.NET makes absolutely no secret of the fact that it is very much the former, and not at all the latter. Frankly, had it tried to be a reference book, it probably would have failed, if for no other reason than that Tom Miller already wrote the best Managed DirectX reference/theory book.But David, Alexandre, and Ellen set out to write a tutorial work, and I think they did a pretty reasonable job.


The book starts off by writing a Tetris clone using only GDI+ (no DirectX), but builds up to a network multiplayer 3D game. Since the book is fairly short by computer text standards, it moves at a pretty good clip, presenting the material by writing and analyzing several different interesting games.


I'd have to say that this approach is the book's greatest strength: the fact that it is very much grounded in writing a game. That means it doesn't hand-wave over things like DirectPlay or DirectInput (although graphics does get the majority of the coverage). There's even some discussion of DirectDraw, which is fairly rare these days. And along with all the technology stuff, they constantly talk about the other factors for successful game development (e.g. “Source control is not optional” and “Write lots of small games first”). This is a goodness, as is the plethora of working game code.


The book isn't perfect, of course. I came across several errors, none too serious, that seemed to be largely related to the fact that much of the code in the book was ported from the C# companion work, which I haven't read. I also was a bit disappointed with the coverage of the issues around network play - I would have liked to have seen more discussion on this area. Still, it was arguably a good decision for them to cover less, not more.


Overall, I'd definitely recommend this book to anyone that had some VB.NET experience, and was interested in getting started with game programming.

11 comments:

  1. THanks for the good words, Craig! Please forward your comments about the errors and I'll get an errata page posted ASAP.



    FYI, the VB code hasn't yet been posted on the Apress site because the new October SDK broke various pieces of the games (as well as the C# version). I'm working on getting the new code posted ASAP.

    ReplyDelete
  2. FYI: David got the C# code posted on the APress site recently, so you can go there to find it.

    ReplyDelete
  3. D'oh. I mean he got the *VB.NET* code posted.

    ReplyDelete
  4. I have a few issues with this book. In each chapter the projects build on themselves and you test them out with stubs. If you write the code from the book the stubs do not run. I would like to have access to the source code for each phase of the project (i.e. Chap2 Stub1, Chap2 Stub2, Chap2final).



    I am a fair VB programmer with no gaming experience, and have found this book frustrating. I have not been able to move past the first stub program in Chap2.

    ReplyDelete
  5. Have you checked the publisher's website for updated code? Perhaps that will address some of your concerns.



    Regardless, I'll pass your comment on to the author.

    ReplyDelete
  6. The downloadable code samples work (the last time I checked). The problem is that many of the stubs in Chapters 1 and 2 don't properly work (or weren't intended to work as-is). This is partly due to the fact that the first chapters weren't written by me, but the broader issue is that the code in the book wasn't meant to be complete, compilable code. Rather, each snippet was meant to highlight parts of code from the downloadable source that you should pay attention to. I do agree, however, that parts of the code in chapter 1 and 2 have no counterpart in the downloadable source code. I do apologize for that inconvenience.

    ReplyDelete
  7. Stay away from this book!



    Even Craig says "I'd have to say that this approach is the book's greatest strength: the fact that it is very much grounded in writing a game."



    Not really, if you try to write a game from this book it will not work. The final project is built up from little projects and the little projects do not work. I'll admit you can get the source code for the final project and try to understand the concepts of the chapter, but that defeats the purpose of building you knowledge through the smaller easier to understand projects.



    My last post addressed this issue and the first author of the book says "I do apologize for that inconvenience", sorry thats not how you handle a serious flaw in you'r book. You do whatever it takes to fix it. In this case I would recommend, posting working examples of smaller projects for each chapter.



    Most of the reviews on Amazon are negative as well.



    I can not recommend this book at this time.

    ReplyDelete
  8. Well, if what you're looking for is code you can download and run without having to do anything to it, then I guess you should look elsewhere. But for my part I'll stand by my recommendation - the book addresses practical aspects of game programming, rather than simply presenting an API. For example, I love that the advice, "You must use source control" appears in the book.



    Personally, I've never much cared if the code compiles. If I can read it, and it makes the concept clear, then it has served its purpose as far as I'm concerned.

    ReplyDelete
  9. I dont know what that guy is talking about. The book dose not have the full code it only pulls out what it needs to show you and if you want to see the rest you go to the website and download the full code. personaly i love this book and it has helped me alot with learning the basics of game programing.

    ReplyDelete
  10. First of all I would thank for your website. I have just tried to learn how to code in game programming based on vb.net.

    If you have any recommendation to me, please don't hesitate to send me.

    Best Regards,

    Kuy Chantha

    ReplyDelete
  11. #1 recommendation: learn matrix math. You can't do nontrivial DirectX without knowing it.

    ReplyDelete