初次接触设计模式(Design Patterns)是在求学阶段,第一次看GoF的《Design Patterns: Elements of Reusable Object-Oriented Software》时,感觉尤如天书一般,只能大概了解Singleton、Strategy、Facade、Iterator这几个Pattern的用法,至于为什么要使用、什么时候使用,完全没有概念。
进入职场后,先是跟着几个大型游戏项目一同开发和学习,到后来,自己可以主持技术项目、开发网络游戏引擎、游戏框架等。在这个过程中,时而拿起GoF的《Design Patterns》或是以设计模式为题的书籍,反复阅读,逐渐地了解了每一种模式的应用以及它们的设计分析原理,并通过不断地实践与应用,才将它们融入自己的知识体系中。
从2004年进入职场,一晃眼,在游戏业也超过了10的经历,这些年在游戏行业工作的付出,除了得以温饱之外,也从中吸收了不少的知识与经验。记得某天在一个项目开发会议中,我与同仁分享如何将设计模式应用在游戏的开发设计中时,我突然察觉,应该将这些内容写下来,并分享给更多的游戏设计师,于是就有了写这本书的想法。
通过写作将经验与大家分享,希望大家可以了解,在游戏行业中的工程师,不该只是进行着“无意义”程序代码输出的“码农”,而是一群从事高级软件分析实现的设计师。所以,整合多种领域知识于一身的游戏工程师,更需要以优雅的方式来呈现这些知识汇集的结果,设计模式(Design Patterns)是各种软件设计技巧的呈现方式,善用它们,更能表现出游戏设计工程师优雅的一面。
10年的游戏从业过程,接受过许多人的协助及帮忙:Jimmy & Silent兄弟——20年的同学、朋友及合作伙伴们,有你们一路的协助与砥砺才能有今天;Justin Lee——谢谢你的信任,也感谢你的忍受功力,可以让我们一同完成不少作品;Mark Tsai——谢谢你一路的提拔与信任;Jazzdog——感谢你的支持,我一直知道程序与美术是可以同时存在于一个人身上的;Kai——合作伙伴,感谢你的支持。
最后谢谢我的家人,感谢老婆大人这10多年来忍受我在书房内不断地堆积书本、小说及收藏品。感谢我3岁的女儿,因为你的到来,让我知道没什么比你更重要了。
蔡升达
2016年10月