Over a million developers have joined DZone.

Review of XNA 4.0 Game Development by Example, A Beginners Guide, Visual Basic Edition



I’ve known Kurt for some time now since XNA got off the ground so many years ago, Kurt run the site XNAResources.com which has been a great inspiration to all of us who have been blogging and educating in this area.  His Tile Engine tutorial has already spurned several engines to be developed based on his series.

The Tile Engine series has even gotten a revamp in recent months so it is well worth a look as well as his other excellent tutorials on Sprite Map generation and use plus offscreen colour-keyed maps (if you don’t know what that is then you had better start reading!)

You can find the book listed here on Pakt Publishing with further links to Amazon and other stores

But this post is a review of Kurt’s book so on with the show


If your more of a C# champ then you can also check out Kurt’s C# version of this same book here also published by PackT Publishing

What it’s about

Well of course it’s about XNA but one of the darker and less practiced implementations which eventually got added later in XNA’s lifecycle, Visual Basic.

Now I'm not against Visual Basic but it’s just not how I was brought up (Ok, yes I did do Basic programming, VBA and some VB 6 but it’s not something I easily admit to a crowd of C'# developers Open-mouthed smile), but I took on the review of this book to widen my horizon to gauge how things have changed.

One of my first impressions of the book is that it is a great template for Agile Design, each section is broken up in to small tasteful chunks which make picking up and running with each of the exercises very easy and  comfortable to work with (given i had to translate the VB in my head).

This really fascinated me because as game developers we really need to learn and use Agile Methods (Scrum) to design and build our games to avoid developer burnout when you cannot se the end in sight, so the fact that this book actively promotes it is excellent, for anyone reading the book now appreciate what this is teaching you and adopt the books practice in to your own development cycle.

What’s In it

The book it’s self is broken up in to 4 projects, some with basic and advanced sections to ease you on your path, here’s a short summary of each.

There is a preface section for those completely new to XNA just so you can understand XNA’s approach to game design and the innards of the Game loop. (Update/Draw)


Flood Control

Kurt warms up his book with a nice graphically rich and basic concept going through the basic principles of drawing to the screen and handling input.

he has then extended this to bring you up to speed on simple sprite animation techniques and good design to add that extra sparkle to your game.

one thing that this really shows is the importance of good graphics in your games and even the most simple game mechanic can make a most awesome game with the right artist on your side.



Asteroid Belt Assault

I really like that Kurt didn’t follow his previous chapter with the obvious space invaders type tutorial but chooses to mix it up with a Galaxian variant.

This chapter brings to the forefront sprite sheet design and usage in order to better control your game assets as well as adding advanced waypoint techniques and basic game object control with a keen eye on performance.

He then finishes off with a nice extension in to basic sprite based particle effects and a nicely levelled introduction to sound in XNA.


Robot Rampage

This chapter has to be one of my favourite in the book really, as it brings in to sharp focus that your game world doesn’t have to be constrained by the screen and that it can be a larger world that the player explores. (critical if your doing any kind of rpg or platformer)

it also introduces one of the core concept of more advanced 2D games by going through Tile maps and how they can be effectively used for AI more advanced game logic and pathfinding.
Kurt also introduces using the game pad controller for an alternate player control method.

There is even a small hat tip to procedural game design and implementation to create random maps.

Add to that a more advanced sprite management and animation system and you got the makings of your own great game.


Gemstone Hunter

if you are a regular to the AppHub education content you will probably recognise the Platformer same graphics in this sample but do not be fooled, this was created from the ground up and could be viewed as the platformer sample evolved with extra punch.

It covers some of the less exposed elements of good game implementation such as layered screen design, saving and loading of maps and more advanced collision detection techniques.

it even goes so far to show how to build your own game editor using Windows forms and embedding scripting and events to trigger actions within the game.


In Conclusion

There were a few things I felt the book didn’t cover, such as creating projects for XBOX and Windows phone or building a more reusable player interface architecture but given this book is aimed at the beginner maybe these were left for a more advanced read later.

All in all I really enjoyed reading through Kurt’s book (except for the VB of course Open-mouthed smile) and is definitely one for the reference shelf for those starting out in game development from a VB background (as stated earlier you can get the same bang for your book with the C# version if that’s how you fly).

Following this book I would highly recommend visiting Kurt’s site and going through the additional tutorials there which build on top of a lot of the principles defined here.

I’d give it a buy if you are in the market for a really good VB introduction to XNA.


Published at DZone with permission of Simon Jackson, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}