1.游戏业务开发思考
在游戏开发中,为了可以进一步加深对引擎底层代码的理解,通晓上层业务逻辑是非常必要的。往往游戏业务逻辑做的优秀的开发人员,也对引擎逻辑有非常独到的理解。这里将我对游戏业务相关的粗浅理解整理一下。游戏业务逻辑分为客户端部分和服务器部分。其中客户端部分逻辑主要负责游戏的表现,用来使得游戏的卖相更好。服务器部分逻辑是整个游戏的灵魂,绝大部分的游戏的逻辑、数值计算都发生在服务器部分(这里以状态同步为例,不考虑帧同步网游)。
客户端开发和服务器开发需要两种截然不同的开发思路,两者都需要一种所谓的“框架”。那么问题来了,框架是什么呢?
所谓开发框架,以我的粗浅理解,我觉得更可以比喻成台式机的主板。一个牛逼的主板,可以往上插入更大的内存,更好的显卡,更多核心的CPU。而差的主板却支撑不住很多强大的组件。而游戏框架也是一样的,一个优秀的框架,可以具有更强的扩展性,可以上更多的功能。相反的,一个很弱小的框架,往往在上一些新功能,整个代码框架就会乱掉,后续随着耦合性越来越强,整个项目几乎就会崩溃掉。因为扩展的空间往往微乎其微了。
然而,优秀框架并非是软件工程的银弹。一个优秀框架只会极大减缓项目衰老的过程,但是并不会阻止项目的死亡。项目大到一定程度的时候,单纯的投入人力物力重构往往已经不能解决问题。成功的项目只会逐渐庞大,成为一个利维坦级别的怪物。这部分内容可以参照软工圣经《人月传说》中的软件工程管理哲学,此处不再赘述。
1.1客户端部分
客户端部分作为游戏表现的核心开发内容,可以说是整个游戏卖相的关键。客户端逻辑决定了游戏的玩法机制、表现内容、画面质量等一系列关键内容。这部分的开发内容也是绝大部分人所理解的“开发游戏”。一个游戏客户端往往需要考虑更多内容,这里整理一下我认为基于一个基础的引擎,所需要考虑的,构造一个游戏所需要的内容:
- 游戏资源加载 。如何加载游戏中的资源,如模型、贴图等。
- 游戏物体材质系统

本文探讨游戏开发中的服务器设计与客户端框架。客户端部分包括资源加载、材质系统、脚本框架等内容,而服务器则关注Socket、同步方式、RPC协议等。提出一个基础游戏服务器的设计思路,强调功能解耦与数据解耦,通过不同实体层次实现不同阶段的功能。游戏开发是客户端和服务器端相互协作的过程,服务器设计是关键。
264





