How This Book s Game Engine Project Differs


How This Books Game Engine Project Differs

The purpose of this book is to illustrate all of the basic components of a game engine while demonstrating how to build an example game engine over the course of the book. You may expand the example game engine to create the game of your choice. I have chosen to concentrate on rendering using DirectX 9. If you prefer OpenGL, I leave it to you as a coding exercise to substitute OpenGL API calls in place of the Direct3D API calls. The same basic rendering capabilities are provided by both APIs.

Discussions of the game engine presented in this book will not delve into all of the great things we can do with vertex and pixel shaders. (As a topic, the new High Level Shader Language included in DirectX 9 could fill most of a book itself.) Nor will we explore all of the potential methods of optimizing terrain rendering or character animation.

In developing an example game engine throughout the course of this book, I will concentrate more on an object-oriented, generic approach to game engine design. This game engine is not meant for use in the next blockbuster game to hit the market. Instead, my hope is that, by providing a fundamental, yet flexible game engine, you will learn something new you can use in your own 3D game engine development. This object-oriented approach will produce a modular engine that can be easily modified and extended as you move into more advanced game engine components.

The Object-Oriented Approach

In order to develop a clean, generic design, we will use object-oriented techniques in the design and development of this game engine. Object-oriented design and programming (when done properly) provides a final system that is simple, straightforward, and easy to maintain. I have designated the C# language as the programming language for our game engine, because it provides all of the object-oriented features we desire for this project.

Why C#?

You may be wondering at the choice of the C# language for this game engine. Almost every game in recent history has been developed in C or C++ due to performance considerations. Microsoft has created the C# language in an attempt to bring the rapid application development (RAD) aspect of Visual Basic to the C++ community. As part of the .NET initiative, Microsoft has also increased the performance and object-oriented nature of Visual Basic. Its stated goal for DirectX 9 is to achieve performance values within a couple percent of C++. This makes the choice of using a RAD language very appealing. The point that tips the scales in favor of C# is the fact that C# includes a feature for self-documentation. Developing a game these days is usually a group effort. It is the rare individual who can develop a complete game on his or her own. This makes sharing well-formatted and documented code a high priority. The clean, object-oriented structure available with C#, combined with good commenting and documentation practices, can make the difference in whether or not you meet your schedule.




Introduction to 3D Game Engine Design Using DirectX 9 and C#
Introduction to 3D Game Engine Design Using DirectX 9 and C#
ISBN: 1590590813
EAN: 2147483647
Year: 2005
Pages: 98

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net