Welcome!

.NET Authors: Esmeralda Swartz, Matt Hester, Elizabeth White, Lori MacVittie, Adine Deford

Related Topics: .NET

.NET: Article

Book Review: "Beginning .NET Game Programming"

A beginner's guide in both VB.NET and C#

If you are interested in writing computer games or simulations in .NET, then the Apress book Beginning .NET Game Programming will prove to be a valuable resource. A trio of authors, notably David Weller, Alexandre Santos Laboa, and Ellen Hatton, wrote this book, which introduces the reader to many of the fundamental concepts that go into programming a game. All topics are illustrated in .NET using Visual Basic .NET or C# along with the .NET Framework managed wrapper APIs for DirectX and GDI+.

The book is organized principally around four game projects, including a .NET version of Tetris, as well as a space arcade game called Spacewar. Nearly every section of the book is accompanied by several source code listings that demonstrate the concept at hand. Because the source code plays an important role in introducing the reader to a particular concept, most will appreciate that this book is available in either a Visual Basic .NET or C# edition. Thus if you prefer to read source code examples from one language to another, be sure to find the edition that matches your language preference.

There are a dozen or so core programming concepts that are fundamental in developing a graphics-based computer game or simulation, and they include the base game object, the field or world, image manipulation, sprites and sprite animation, the game or simulation loop, collision detection, and path finding. In addition to these concepts, there is a myriad of fundamental concepts and technical details involving the APIs used for 2D and 3D graphics display and rendering, as well as sound output. Finally, there are intermediate to advanced topics that most games require such as network I/O for multi-user gaming as well as applying AI algorithms to implement intelligent or challenging strategies for interactive game objects.

This book touches on all of these topics to varying degrees. The material is divided into seven chapters with the first chapter tackling the basics of GDI+ and collision detection. Although the authors do a good job of introducing algorithms such as Axis Aligned Bounding Boxes (AABB) for implementing collision detection, I would have preferred that more basic game programming concepts such as sprites (introduced in chapter 2, after the introduction on applying AI in games) be developed for the reader first.

Chapter 3, "Managed DirectX First Steps" is packed with several key topics. The first part of the chapter launches into the managed DirectX API and also provides an overview of DirectX, DirectX 3D, and GDI+. This introduction takes you through devices, device parameters and capabilities, and display modes and into 3D coordinate systems, scene creation, camera placement and textures, as well as a very brief introduction to matrices and transformations that are part and parcel of 3D computer graphics. If your focus is on developing a 3D game or simulation, you'll want to supplement the material found here with additional resources (to help the reader here, the authors provide a resource section at the end of nearly every chapter to present additional information).

Chapter 4 provides an introduction to key concepts that include vector and trigonometric functions (used to calculate object velocity, etc.) and the game field, and also delves further into sprites with an introduction to sprite animation. In addition, the authors devote coverage to developing a game project proposal (in this context, the proposal is used to define the scope of the game and the requirements that are involved). Chapters 5 through 7 develop the Spacewar arcade-style game, illustrating the concepts introduced in the first four chapters while also introducing more advanced concepts such as point sprites. As a bonus chapter, they walk the reader through porting .NETTrix to the Pocket PC compact framework.

Beginning .NET Game Programming (in C# or VB.NET) will provide you with a good start toward developing 2D or 3D games or simulations. Although the book was written with .NET 1.x in mind, all of the fundamental game programming concepts that this book presents are independent of a particular .NET release, and thus are applicable to both .NET 2.0 as well as .NET 1.1.

SIDEBAR

Title: Beginning .NET Game Programming in VB.NET, Beginning .NET Game Programming in C#
Authors: David Weller, Alexandre Santos Lobao, and Ellen Hatton
Publisher: Apress paperback/414 pp.

More Stories By Kevin Wittmer

Kevin Wittmer works for SmartSignal Corporation as a technical lead. His programming interests span .NET, Java, C++, and Perl.

Comments (2) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
David Weller 03/01/06 10:26:58 PM EST

Thanks for the kind words, Kevin!

SYS-CON Belgium News Desk 02/27/06 03:10:20 PM EST

If you are interested in writing computer games or simulations in .NET, then the Apress book 'Beginning .NET Game Programming' will prove to be a valuable resource. A trio of authors, notably David Weller, Alexandre Santos Laboa, and Ellen Hatton, wrote this book, which introduces the reader to many of the fundamental concepts that go into programming a game. All topics are illustrated in .NET using Visual Basic .NET or C# along with the .NET Framework managed wrapper APIs for DirectX and GDI+.