前言
为什么要写这本书
笔者在玩到好玩的游戏时,总会希望有朝一日自己也能够做出经典的游戏作品。然而随着玩家欣赏水平的提高和网络游戏的发展,早期游戏的简陋画面再也不能吊起玩家的胃口,游戏大作再也不是一个人花几个星期就能完成的事情。Unity3D、虚幻4等引擎也正因为能够帮助开发者较快地制作出炫酷的游戏产品而备受青睐。
笔者曾与小伙伴们一起开发了一款仙剑同人游戏《仙剑5前传之心愿》,它是第一款由玩家开发完成的仙剑3D同人游戏,也是第一款采用即时战斗的仙剑游戏。那种只为圆一个游戏梦想,无条件付出的日子实属难忘。该作品就是使用Unity3D开发的,品质还算精良,读者可以登录pal5h.com下载。
《仙剑5前传之心愿》游戏截图
以前笔者主要关注单机游戏,也总能够找到很多资料进行学习,很快就能做出成果。然而由于猖獗的盗版市场及国外优秀作品的打击,国内单机游戏公司纷纷转型开发网络游戏,大部分游戏公司都在使用Unity3D引擎开发网络游戏。因此对于开发者而言,学习Unity3D网络游戏开发至关重要。
然而市面上的Unity3D教程,大多是介绍单机游戏开发方法的,就算涉及网络,也只是简单带过。如果读者想要制作当今热门的网络游戏,特别是手机网络游戏,单单参考市面上的书肯定是不够的。如果想要到游戏公司求职,仅仅凭借这些知识,也不容易成功应聘。针对这一痛点,本书以制作一款完整的多人坦克对战游戏为例,详细介绍网络游戏的开发过程。书中还介绍了一套通用的服务端框架和客户端网络模块(它是商业游戏的简化版本),相信通过本书,读者能够掌握Unity3D网络游戏开发的大部分知识,也能够从框架设计中了解商业游戏的设计思路。
读者对象
根据用户的需求来区分,可能使用本书的读者如下。
❑游戏开发爱好者:想要自己制作一款游戏的人,作为自学参考书。
❑求职者:想要谋求游戏公司开发岗位的人,作为自学参考书。
❑职场新人:游戏公司程序员,作为自学参考书。
❑游戏公司:作为新人培训资料。
❑学校:可作为大专院校或游戏培训机构的实验教材。
如何阅读本书
本书先提出了一个明确的学习目标,即制作一款完整的多人对战游戏,然后逐步去实现它。全书涉及行走控制、人工智能系统、界面系统、服务端框架、客户端框架、房间系统、战场系统等多项内容。在涉及相关知识点时,书中会有详细的讲解。具体来说,本书分为如下3个部分。
第一部分“单机游戏”:第1章至第5章,主要介绍如何开发一款功能完整的坦克单机游戏。除了让坦克行走、开炮,还将介绍基于代码和资源分离的界面系统、敌人AI。了解开发单机游戏的知识,也是为接下来的网络开发学习奠定基础。
第二部分“网络原理”:第6章至第8章,主要介绍网络通信的原理,开发客户端的网络模块和服务端程序框架。这套框架具有较高的通用性,可以运用在多种游戏上。
第三部分“网络游戏”:第9章至第12章,主要讲解房间系统和同步系统的逻辑实现,将单机坦克游戏改造成多人对战的网络游戏。
作为实例教程,本书偏重于例子中涉及的知识点。如果读者想要深入了解某些内容,或者了解实现某种功能的更多方法,建议在阅读本书的过程中多多查询相关资料,以便做到举一反三。
本书提供了所有示例的源码和素材,读者可以在作者提供的网盘中下载这些源码。由于网盘具有不稳定性,笔者不能保证多年后网盘地址还有效。若读者发现网盘地址失效,可以发送邮件到笔者的邮箱,笔者将会把最新的下载地址发给您。
下载地址:http://pan.baidu.com/s/1c18esDE,密码:9inz
笔者邮箱:aglab@foxmail.com
勘误和支持
由于笔者水平有限,写作的时间也很仓促,书中难免会出现一些错误或不准确的地方,恳请读者批评指正。如果读者发现了书中的错误,或者有更多的宝贵意见,欢迎邮件交流,笔者很期待能够听到你们的真挚反馈。
致谢
2013年8月份,笔者在筹备出版第一本图书《手把手教你用C#制作RPG游戏》时,就已经着手规划这本介绍网络游戏技术的图书了。经过两年多的积累,本书渐渐成型。2016年2月,在机械工业出版社华章公司杨绣国编辑的帮助下,本书的出版事项提上了日程。
在此,我要感谢父母,有了他们的支持才有笔者义无反顾的前行。
感谢黄剑基和蒙屿森,他们作为本书的第一批读者,给了笔者不少可行的建议。
感谢一同开发《仙剑5前传之心愿》的唳玥、吾辈名妖、杨凯云等人,这段不为名利的奋斗历程使笔者永生难忘。
感谢郑志铭、卢阳飞、许远帆、林文佳、梁浩林等人在本书写作过程中给予的诸多鼓舞。
愿与诸位一同努力,造就顶级游戏产品。
每一款游戏都是梦想与智慧的结晶!
罗培羽
2016年6月于广州