Game Engine Toolset Development, 1st Edition

  • Graham Wihlidal
  • ISBN-10: 1592009638  |  ISBN-13: 9781592009633
  • 640 Pages
  • © 2006 | Published
  • List Price = $ 49.99
  • For quantity discounts, Contact your Representative
  • For single copy purchases, visit



Toolset development is an extremely broad topic. Game Engine Toolset Development provides you with a core set of skills and a comprehensive insight that will aid you in the development of game engine utilities, significantly reducing the time period associated with the construction phase of a project. The book starts off with topics regarding development methodologies and best practices, and then proceeds into advanced topics like swap chain management and MVC object model automation with CodeDom. An introductory working knowledge of C# and the .NET 2.0 framework is expected, allowing the content of each topic to be directed towards the subject and avoiding trivial and introductory explanations. Readers are not required to have any experience developing game engine tools. Terminology and design fundamentals specific to toolset development are clearly depicted and explained. The companion Web site provides downloads of all source code from the book, as well as several bonus chapters.

Features and Benefits

  • Suitable for any developer who possesses a working knowledge of C# and the .NET framework.
  • Provides a core set of skills and a comprehensive insight that will aide in the development of game engine utilities, significantly reducing the time period associated with the construction phase of a project.
  • All topics are at a level of quality suitable for production code, making the book an exceptional reference tool and asset for industry professionals and hobbyists.
  • Features in-depth coverage of all concepts, many illustrations to accompany complicated topics, and comprehensive examples to show each and every topic in action. All topics are followed by a thorough and well written example utilizing the techniques discussed in a working application.
  • Companion website available here:

Table of Contents

Part 1. Toolset Design Fundamentals
1. What is a Tool? What is a Toolset?
2. Why Use C#? Why Use .NET?
3. Examples of Commercial Toolsets
4. Everything Starts with a Plan
5. Development Phases of a Tool
6. Measurement Metrics for Tool Quality
7. Fundamentals of User Interface Design
8. Distributed Componential Architecture Design
9. Solutions to Bridge Domain Gaps
10. Unit Testing with NUnit
11. Code Documentation with NDoc and XML
12. Microsoft Coding Conventions
13. Enforcing Coding Policies with FxCop
14. Best Practices for Robust Exception Handling
Part 2. Techniques for Arbitrary Tools
15. Compressing Data to Reduce Memory Footprint
16. Protecting Sensitive Data with Encryption
17. Generic Batch File Processing Framework
18. Ensuring a Single Instance of an Application
19. Implementing a Checksum to Protect Data Integrity
20. Using the Property Grid Control with Late Binding
21. Adding Printing Support for Arbitrary Data
22. Flexible Command Line Tokenizer
23. Layering WinForms on Console Applications
24. Overview of Database Access with ADO.NET
Part 3. Techniques for Graphical Tools
25. Using Direct3D Swap Chains with MDI Applications
26. Constructing an Aesthetic Texture Browser Control
27. Converting from Screen Space to World Space
28. Asynchronous Input Device Polling
Part 4. Techniques for Network Tools
29. Distributed Computing using .NET Remoting
30. Downloading Network Files Asynchronously
Part 5. Techniques for Legacy Interoperability
31. Exchanging Data between Applications
32. Interacting with the Clipboard
33. Using .NET Assemblies as COM Objects
34. Building a Managed Wrapper with C++/CLI
35. Managing Items in the Recent Documents List
Part 6. Techniques to Improve Performance
36. Playing Nice with the Garbage Collector
37. Using Unsafe Code and Pointers
38. Investigating Managed Code Performance
39. Responsive UI during Intensive Processing
Part 7. Techniques to Enhance Usability
40. Designing an Extensible Plugin-Based Architecture
41. Persisting Application Settings to Isolated Storage
42. Desiging a Reusable and Versatile Loading Screen
43. Writing Context Menu Shell Extensions
Part 8. Techniques to Increase Productivity
44. Automating Workflow using Job Scheduling
45. MVC Object Model Automation with CodeDom
Part 9. Techniques for Deployment and Support
46. Deployment and Versioning with ClickOnce
47. Testing for the Availability of the .NET Framework
48. Building and Customizing an MSI Installer
49. Determining Binary File Differences

Meet the Author

Author Bio

Graham Wihlidal

Graham Wihlidal is a consultant at CGI Group, specializing in Microsoft technologies at an enterprise level. Prior to his current employment, he was the lead developer of a distributed workflow automation framework using C#.NET, SQL Server and Windows SharePoint Services. He has several years of experience as a freelance developer and consultant, designing and implementing business software solutions with C#, C++ and Java for a variety of sectors. Aside from normal development work, he also has experience as a configuration manager for Rational ClearCase at an enterprise level. Graham graduated Computer Systems Technology at the head of his class while attending the Northern Alberta Institute of Technology, and is also a Microsoft Certified Solution Developer and an Early Adopter for .NET 2.0. Aside from his professional life, Graham has been an active member in the game development community for the past seven years, with an undying passion to both play and develop computer games. In his spare time he is constructing a high-performance 3D engine and accompanying toolset.