构思这个系列已经有一段时间了。一方面,作为一个十多年经验的游戏开发者,很希望把自己掌握的知识和经验系统化;另一方面,最近引发热议的裁员潮、35岁危机等话题也促使我思考:多年的技术沉淀和价值究竟在哪里。换句话说,如果自己能做的事情和技术上限,年轻人工作几年就能达到,那么就很难称得上有竞争力。在当前浮躁的社会背景下,技术大概率是无法做一辈子的,但是深耕一个领域,尽可能延长自己的职业生涯,增强不可替代性,无疑是有益的。
在我多年的游戏服务器开发生涯中,学习过大量网络编程和数据存储方面的知识,也看过不少游戏服务器相关的书籍。总的来说,专讲游戏服务器的书籍和文章数量还是偏少,因为这个细分领域本身小众,属于交叉领域。支撑游戏服务器开发的三驾马车是:游戏业务、服务器开发、编程语言。游戏服务器技术的进步本质上依赖于三驾马车的进步。
这三驾马车的现状是:
- 游戏业务:近年来未有大的玩法革新,进步缓慢。
- 服务器开发:以互联网行业作为主要推动者,近年来有云计算、容器化等新技术出现。
- 编程语言:依赖特定语言版本的更新(如Java、C++)或是新语言(Go)的兴起。
这就导致了:
- 文章多集中在单个变化较快的领域,如专门讲编程语言,或专门讲服务器开发,结合游戏业务来讲的偏少。
- 即使有讲游戏服务器的,质量也参差不齐。高手不屑于讲,觉得老套;新人缺乏积累,流于浅显。讲解多是基于某种特定语言,未能提出通用的思路和解决办法。少有能结合业务实际把问题讲深讲透的。
基于以上现实,本人也是出于为行业做一点贡献的目的写作本系列。系列标题是《游戏服务器开发指南》,它也揭示了本系列的写作主题:汇集游戏服务器开发领域一些有价值的经验法则,这些经验法则来自与业务实际紧密相关的细分话题,结合本人多年经验和实践,确保分析深入浅出。写作模式会类似《Effective Java》这种Effective系列的书籍。
本系列将包括但不限于以下内容:网络通信、数据存储、常见模块设计思路、线程模型、设计模式、热更新、分布式、断线重连等。
本系列不局限于特定语言,不教读者搭建框架。
之前看过文礼兄的从零开始手敲次世代游戏引擎系列,很是佩服。这个系列从2017年更新至今,包含上百篇文章。这是需要很大毅力才能做到的事情。以此为榜样,希望自己的这个系列也能长期更新下去,敬请期待。限于笔者水平,如有错误欢迎指正。