Game Engine Toolset Development
Total Page:16
File Type:pdf, Size:1020Kb
Game Engine Toolset Development Graham Wihlidal © 2006 Thomson Course Technology, a division of Thomson Learning Publisher and General Manager, Inc. All rights reserved. No part of this book may be reproduced or Thomson Course Technology PTR: transmitted in any form or by any means, electronic or mechanical, Stacy L. Hiquet including photocopying, recording, or by any information storage or retrieval system without written permission from Thomson Course Associate Director of Marketing: Technology PTR, except for the inclusion of brief quotations in a review. Sarah O’Donnell The Thomson Course Technology PTR logo and related trade dress are Manager of Editorial Services: trademarks of Thomson Course Technology, a division of Thomson Heather Talbot Learning Inc., and may not be used without written permission. Marketing Manager: The .NET logo is a trademark of Microsoft Corporation in the United Heather Hurley States and/or other countries. Senior Acquisitions Editor: All other trademarks are the property of their respective owners. Emi Smith Important: Thomson Course Technology PTR cannot provide software Marketing Coordinator: support. Please contact the appropriate software manufacturer’s technical Jordan Casey support line or Web site for assistance. Thomson Course Technology PTR and the author have attempted Project Editor: throughout this book to distinguish proprietary trademarks from Sandy Doell descriptive terms by following the capitalization style used by the man- Technical Reviewer: ufacturer. John Flynt Information contained in this book has been obtained by Thomson PTR Editorial Services Coordinator: Course Technology PTR from sources believed to be reliable. However, Elizabeth Furbish because of the possibility of human or mechanical error by our sources, Thomson Course Technology PTR, or others, the Publisher does not Interior Layout: guarantee the accuracy, adequacy, or completeness of any information Shawn Morningstar and is not responsible for any errors or omissions or the results obtained from use of such information. Readers should be particularly aware of Cover Designer: the fact that the Internet is an ever-changing entity. Some facts may have Mike Tanamachi changed since this book went to press. Indexer: Educational facilities, companies, and organizations interested in multiple Larry Sweazy copies or licensing of this book should contact the Publisher for quantity discount information. Training manuals, CD-ROMs, and portions of this Proofreader: book are also available individually or can be tailored for specific needs. Sean Medlock ISBN: 1-59200-963-8 Library of Congress Catalog Card Number: 2005929829 Printed in the United States of America 06 07 08 09 10 PH 10 9 8 7 6 5 4 3 2 1 Thomson Course Technology PTR, a division of Thomson Learning Inc. 25 Thomson Place Boston, MA 02210 http://www.courseptr.com This book is dedicated to my family (Kathy, Lois, Arthur, and Lisa), and to my grade three teacher who told my parents I would never be employable. I present this book in respectful memory of Eric Dybsand and Jan Horn. The gaming community will forever miss you. Remembrance and reflection how allied. What thin partitions divides sense from thought. —Alexander Pope Foreword Meeting Graham is like walking into a sports stadium for the final game of the season. You are not quite sure how it will end, but you know it's going to be exciting. This was the impression I had when I first met Graham. Graham's passion for his work is evident in everything he says and does. At the same time, he remains open to new ideas and seems to be constantly looking for new ways to improve his per- sonal skills. He is one of the most technically knowledgeable people I know, and at the same time he is able to amicably communicate ideas and concepts. My project team was looking for some professional help on a project we were working on and Graham had been referred to us as someone who might be able to help. Our project was facing some challenges, as we had a client who was very demanding and it looked like there might not be enough resources to complete the project on time. We were hoping that someone could help us out with some of the internal tools we had developed to support the project team and help us become more efficient. Graham employed many of the techniques discussed in this book to expedite our project, which helped us achieve many of our project goals without disrupting the team dynamics and workflow we had previously established. I do not come from a game development background, but game engine tools are essentially business software, with differing stakeholders and business rules. Business software often requires additional tools and utilities to improve workflow or produce content, and this book discusses concepts and techniques that are applicable to any .NET iv Foreword v software project. I know firsthand the development benefits from the .NET platform and clearly see the value in using this platform to build robust and scalable game engine tools. I expect that readers of this book will be in a similar position to mine when I met Graham. You are probably a little excited at the prospect of learning new tech- niques and methodologies and, at the same time, do not want to reinvent the way you have worked in the past. Graham's ideas and concepts will enable you and, I suspect, your team to become more efficient in your projects and will do so in a way that is unobtrusive to your current working methodologies and techniques. I expect you will find reading this book to be a rewarding experience, and I hope you will be able to share in Graham's passion for his profession. John Eldridge M.B.A., .Net MCSD, MCDBA, MCSE & CMC John is a senior Solution Architect who consults on a variety of enterprise projects in North America and Asia. Acknowledgments I would like to express my gratitude to the following people for their never-ending support and assistance in helping to make this book a reality: Kathy, you are my soul mate, and I am overjoyed to be spending the rest of my life together with you. Your love, admiration, and support made this book a reality, and I could not have done it without you. Thank you for your love and patience. Thank you to my family (Arthur, Lois, and Lisa) for your love and support and for putting up with my incessant ramblings about game development all these years. I still remember the first game I ever made, and how proud I was to show it to you, only to have the hero’s clothes fall off when he picked up the sword from the ground—in addition to his sword and shield protruding from inappropriate places. Yes, even games have bugs…. Anthony Whitaker, my good friend. I have always enjoyed discussing the pro- grammable pipeline, spatial partitioning, tools development, and countless other topics with you. I value our friendship, and I am thrilled to know such a knowl- edgeable person. Wayne Larson, you have become both my mentor and friend. Your teachings have improved me on both a personal and professional level. Thank you for inspiring me to strive for bigger and better things; I am grateful. Peter Hansen, thank you for giving me the opportunity to host a practicum for your Digital & Interactive Media Design students, and thanks for your continued support and direction. vi Acknowledgments vii Thank you to my friends on #graphicsdev, #gamedev, and #mdxinfo on the AfterNET IRC server. You all have supported me and offered advice and insight throughout the life cycle of this book; especially Sean Kent, Oluseyi Sonaiya, Henrik Stuart, Promit Roy, Kyle Kaitan, Pieter Germishuys, Josh Jersild, and David Crooks. Thanks also go out to Osayuki Emokpae for her inspiration and guidance in the planning stages of the book. Special thanks to my friend Zane Bogach for providing a few textures for a couple chapters. A big thanks to Dave Astle (GameDev.net) for intro- ducing me to Emi Smith and Mitzi Koontz. Thank you to my close friends Sam Montasser, Dave Vani, Eric Fredin, and Ben Thieson. We have shared a lot of good memories, and I look forward to sharing more over the years to come. Emi Smith, Stacy Hiquet, Sandy Doell, Heather Talbot, John Flynt, and Shawn Morningstar, thank you all for being so wonderful to work with. You helped steer this project from inception, and I appreciate your time and effort. I would also like to thank everyone else at Course Technology PTR who was responsible for bringing this book into existence. I would also like to thank my employer, CGI Group, Inc., for permitting me to write this book alongside my work. Special thanks go to Glenn Mitchell, John Eldridge, Darryl Kotton, Andrew Stipdonk, Matthew Christopher, Michael Mah, Ghassan Karwchan, Ibraheem Yan, Tim Hill, Art Gartner, and Glenn Steinke for being such great people to work with. It was a pleasure to work with all of you on our last project, and I hope to work with all of you again. Warm-hearted thanks also go to Don Moar (BioWare), John Walker (High Voltage Software), Aaron Walker (Electronic Arts), Roy Eltham (Sony Online Entertainment), Anthony Whitaker (Boanerges Studios), Ryan Hummer (Raven Software), and Yggy King (Electronic Arts). I felt enlightened after speaking with all of you about tools development and the state of the industry. Thank you for your opinions and support, especially during crunch time. I look forward to seeing all of you again at the next Game Developers Conference. Thanks to Matt Collins (Atari), Steven Bercu (LIME Law), Frederic Chesnais (Atari), Teresa Cotesta (BioWare), and Tim Johnson (Artificial Studios) for granting me permission to print copyrighted material in the book.