did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780672326615

Beginning 3D Game Programming

by
  • ISBN13:

    9780672326615

  • ISBN10:

    0672326612

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2004-12-03
  • Publisher: Sams Publishing
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $34.99

Summary

There are many programming hobbyists who write 2D games but there are far fewer that grasp the concepts of 3D programming. Although there are also quite a few game development books on the market, few deal with 3D game development. Those that do are mainly aimed at advanced readers. This book will provide a practical, example driven approach to learning the unique art of 3D Game Development that even the beginner can grasp. It wont get bogged down in page after page of boring theory but instead will teach through many interesting hands on examples. Tom Miller brings years and years of 3D game programming to the table and couples that with an engaging writing style to mentor readers in the intricacies of game development. The book starts out with a crash course in game programming concepts and then progresses into developing 3 different types of games with many useful tips, notes, and cautions along the way. This title will serve as a useful guide to either current 2D game developers or programmers that want to learn to program games.

Author Biography

Beginning 3D Game Programming About the Author

Tom Miller is the designer and development lead for the Managed DirectX API. He has worked at Microsoft since 1997 where he started on the Visual Basic team before his love of games and game programming took him to the DirectX team. He has been with the DirectX team since late 1999, and has worked to bring the DirectX API (and game programming in general) to a wider audience. He has also written the definitive book on the Managed DirectX libraries to date.


© Copyright Pearson Education. All rights reserved.

Table of Contents

Introduction 1(1)
So You Want to be a Game Developer
1(1)
Who Should Read This Book?
1(1)
Why Would I Want to Use the .NET Framework
2(1)
Why This Book?
3(4)
Part I: Introduction to Microsoft .NET
Game Development and Managed Code
7(18)
What Is .NET?
7(2)
What Is Managed Code?
9(1)
Writing Code with the Microsoft Visual Studio .NET 2003 IDE
10(4)
The C# Code
11(2)
The VB .NET Code
13(1)
Compiling .NET Code on the Command Line
14(1)
Introducing Game Development
15(1)
The Developers
15(2)
The Process
17(1)
The Tools
18(4)
Summary
22(3)
Part II: Introducing Graphics, Game 1
Planning Your First Game
25(10)
Coming Up with the Game Idea
25(3)
Detailing the Proposal
26(2)
Understanding the Need for a 3D Game
28(5)
The Specification
33(1)
Summary
34(1)
Understanding the Sample Framework
35(16)
Creating Your Project
35(6)
Enumerating All Device Options
41(8)
Summary
49(2)
Show Something Onscreen!
51(18)
Creating Your Device
51(8)
Time to Render
59(2)
Loading and Rendering a Mesh
61(3)
Adding a Camera to Your Scene
64(4)
Summary
68(1)
Finishing Up the Support Code
69(22)
Understanding the High-Resolution Timer
69(6)
Handling Lost Devices
75(2)
Adding Frame Rate Output
77(3)
Designing a UI Screen
80(8)
Designing a Button
88(2)
Summary
90(1)
Implementing the User Interface
91(22)
Designing the Main Menu
91(6)
Plugging into the Game Engine
97(3)
Selecting Your Character (Loopy)
100(7)
Updating the Game Engine with This New Screen
107(4)
Summary
111(2)
Implementing the Player and Blocks
113(16)
Writing the Player Object
113(9)
Moving the Player
117(5)
Designing the Blocks
122(6)
Summary
128(1)
Implementing the Level Object
129(14)
Implementing the Level
129(6)
Controlling Player Movement
135(3)
Handling Level Updates
138(4)
Summary
142(1)
Putting the Pieces Together
143(20)
Including the Player
143(4)
Hooking Up the Level
147(4)
Implementing the Quit Screen
151(4)
Finishing Up
155(5)
Summary
160(3)
Part III: Basic Math Principles
A Quick 3D-Math Primer
163(18)
2D? 3D? What Are You Talking About?
163(3)
Left-handed? Right-handed?
165(1)
Using These 3D Points
166(1)
Manipulating 3D Objects
167(4)
Translating (Moving) Objects
168(1)
Scaling
168(1)
Rotation
169(1)
Coordinate Systems
169(2)
Math Structures
171(1)
Vectors
171(3)
Matrices
174(4)
Summary
178(3)
Part IV: Intermediate Graphics, Peer to Peer Networking, Game 2
Now Let's Really Get Started
181(14)
Tankers---The Next Game Idea
181(3)
Detailing the Proposal
182(2)
Creating the Tankers Project
184(6)
Getting the Project Rendering
190(1)
Building an Object Pool for Textures
191(3)
Summary
194(1)
Developing a More Advanced User Interface
195(22)
Using Blockers Base Classes
195(6)
Adding New Base Classes
201(3)
Implementing the Main Screen
204(7)
Rendering Your 3D Model with Your User Interface
211(4)
Summary
215(2)
Rendering a Realistic Tank
217(18)
Understanding a Mesh Hierarchy
217(3)
Loading a Tank Hierarchy
220(3)
Rendering a Mesh Hierarchy
223(2)
Manipulating the Tanks
225(3)
Tank Properties
228(2)
Creating the Camera Class
230(4)
Summary
234(1)
The Sky? A Level? The Player!
235(24)
A World Without a Sky Would Be Black
235(4)
You Have a Sky, but the Tank Can't Drive There
239(2)
Someone Has to Control the Tanks
241(8)
IMoveableObject Indeed
249(6)
A Basic Collision Detection
255(3)
Summary
258(1)
Ready. Aim. Fire!
259(16)
Implementing the Ammunition Class
259(7)
A Bullets Collection
266(2)
Finishing Up the Player
268(2)
Adding Sound
270(3)
Summary
273(2)
Playing Alone Isn't Fun
275(18)
Using DirectPlay
275(7)
Hosting the Session
282(2)
Joining the Session
284(1)
The Event Handlers
285(3)
Sending and Receiving Data
288(4)
Cleaning Up Resources
292(1)
Summary
292(1)
Finally, Finishing Tankers
293(12)
Plugging into the Game Engine
293(7)
Rendering the Game
300(2)
Summary
302(3)
Part V: Advanced Graphics, Client/Server Networking, Game 3
Adding Special Effects
305(14)
Implementing a Basic Particle System
305(9)
Rendering the Particle System
314(3)
Putting the Pieces Together
317(1)
Summary
318(1)
Building Your Own Game
319(14)
Formulating the Idea
319(2)
Creating Your Project
321(7)
Designing the User Interface
328(4)
Summary
332(1)
The Programmable Pipeline
333(16)
Defining the Programmable Pipeline
333(2)
Using HLSL
335(2)
Writing a Vertex Shader
337(5)
Declaring Variables in HLSL and Intrinsic Types
339(3)
Adding Realism Using Shading
342(2)
Adding the Pixel Shader
344(3)
Summary
347(2)
Controlling the Level of Detail
349(8)
Simplifying a Mesh
349(4)
Using a Simplification Mesh
353(2)
Controlling the Level of Detail Using a Progressive Mesh
355(1)
Summary
356(1)
Using Render Targets for Effects
357(12)
Rendering a Track and Multiple Go-Karts
357(6)
Creating Render Targets and Surfaces
363(2)
Rendering a Scene to a Render Target
365(1)
Displaying the Rear-View Mirror
366(1)
Summary
367(2)
Understanding the High-Level Shader Language
369(10)
Understanding Limits on Older Shader Models
369(1)
Adding Specular Highlights to Kart
370(4)
Making Specular Highlights Per Pixel
374(3)
Summary
377(2)
Performance Considerations
379(10)
The Event Model and Managed DirectX
379(2)
Native Assembly Generation
381(1)
The Horrors of Boxing
382(2)
The Speed of Managed DirectX
384(1)
Understanding the Cost of Methods
385(1)
Summary
386(3)
Part VI: Appendix
Appendix A: Developing a Level Creator
389(8)
Writing the Level Creator
389(8)
Index 397

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Excerpts

= 0) {slash = '\\';} else {slash = '/';}openLoc = figLoc.substring(0, figLoc.lastIndexOf(slash) + 1);while (pPage.substring(0,3) == '../') {openLoc = openLoc.substring(0, openLoc.lastIndexOf(slash, openLoc.length - 2)+ 1);pPage = pPage.substring(3, pPage.length + 1);}popUpWin =window.open('','popWin','resizable=1,scrollbars=1,location=0,toolbar=0,width=525,height=394');figDoc = popUpWin.document;zhtm= ' ' + pPage + ' ';zhtm += ' ';zhtm += ' ';zhtm += ' ';zhtm += '' + pPage.substring(pPage.lastIndexOf('/') + 1, pPage.length) + '';zhtm += ' ';figDoc.write(zhtm);figDoc.close();}// modified 3.1.99 RWE v4.1 --> Introduction Introduction So You Want to be a Game Developer Just about every developer I've ever met has at one time or another wanted to be involved in game development. Video games are more than just an idle interest to most: they can be a downright obsession. People become immersed in these virtual worlds and often begin to fantasize about creating such rich fantasy lands themselves. Don't be fooled by the pretty graphics, the wonderful stories, and the moving musical score. Writing a game is hard work, and it takes a special type of developer to be successful. Aside from the obvious technical talent required, a good game developer should possess other intangibles, such as actually being a gamer. It's not impossible to write great games as a nongamer, but it certainly makes the job more challenging. Becoming a game developer is certainly no easy task either. Virtually no game development company will hire you without experience, and it's hard to get experience when no one will hire you. There are a few courses and even some schools dedicated to teaching game development. However, the best way to get your foot in the door is to make a demo reel. It shows the prospective employer what you are capable of doing and how you go about doing it. Reading this book will get you well on your way to producing a compelling demo reel. Who Should Read This Book? The most common question I'm asked is why anyone would want to write a game using the .NET framework. Other questions include, "Isn't that just for web server applications?" "Isn't it slow?" These are naturally important questions to the game developer (or prospective game developer, as the case may be), but they come from misconceptions about what the .NET framework is. The .NET framework isnotthe latest version of the web server, nor is it an extension of any of the server components. It is certainly true that you can create powerful web server applications using the .NET framework; however, there is so much mor

Rewards Program