Game Engine Toolset Development
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