如何阅读本书

本书给予读者一个明确的学习目标,即制作一款完整的多人对战游戏,然后一步一步去实现它。全书涉及TCP网络底层知识、常见网络问题解决方法、客户端网络框架、客户端界面系统、网络游戏房间系统、坦克游戏战斗系统等多项内容。在涉及相关知识点时,书中会有详细的讲解。本书分为三个部分,阅读时要注意它们之间的递进关系。

第一部分“扎基础”主要介绍TCP网络游戏开发的必备知识,包括TCP异步连接、多路复用的处理,以及怎样处理粘包分包、怎样发送完整的网络数据、怎样设置正确的网络参数。第3章介绍了一款简单网络游戏开发的全过程,在后续章节中会逐步完善这个游戏。

第二部分“搭框架”主要介绍商业级客户端网络框架的实现方法。这套框架具有较高的通用性,解决了网络游戏开发中常遇到的问题,且达到极致的性能要求,可以运用在多款游戏上。书中还介绍了一套单进程服务端框架的实现,服务端框架使用select多路复用,做到底层与逻辑分离,设有消息分发、事件处理等模块。

第三部分“做游戏”通过一个完整的实例讲解网络游戏的设计思路,包括游戏实体的类设计、怎样组织代码、怎样实现游戏大厅(房间系统)、怎样实现角色的同步。这一部分会使用第二部分搭好的框架,一步步地做出完整的游戏项目。

由于本书重点在网络部分,因此不会过多着墨于Unity的基础操作和C#语言的基本语法。同时作为实例教程,本书偏重于例子涉及的知识点。读者如果想要深入地了解某些内容,或者了解实现某种功能的更多方法,建议在阅读本书的过程中多多查询相关资料,以做到举一反三。

本书提供的所有示例的源码和素材,读者可以在Github或网盘下载。我也会在Github上发表勘误、补充篇等内容,欢迎关注。由于网盘的不稳定性,作者不能保证多年后网盘地址还有效。若读者发现网盘地址失效,可以发送邮件到我的邮箱,我将会把最新的下载地址发给你。

Github: https://luopeiyu.github.io/unity_net_book/

百度网盘:https://pan.baidu.com/s/1XhYKHJYjWTtGAqMb3uBYxQ密码:hxuz

作者邮箱:aglab@foxmail.com

本书资源中的“Final”文件夹是最终游戏成品,包含服务端程序(Serv)和客户端程序(Client)两大部分。读者可以先按照7.6节的介绍,配置MySQL数据库和两个数据表,然后运行服务端程序,再打开客户端程序的exe文件,体验游戏。