搭建可复用的游戏服务器框架的思路

来源:互联网 发布:北京律所 知乎 编辑:程序博客网 时间:2024/06/05 03:24

网络游戏公司成长到一定的阶段,会有一些经验和技术的积累,这些积累会在日后的游戏开发使用,但如果背负了过重的历史包袱,就应该丢弃,开发一套全新的架构在适应现在的游戏开发技术需要。

而我,最近就在考虑一个可复用的服务器框架,这个问题思考已经不是一天两天的事情了,但还未正式开始实施。

框架设计目的
1:加快游戏开发过程,缩短开发周期——设计和代码的复用
2:提高产品质量——由所谓的“精英”程序员开发和维护

要提高效率,必须要能有效的复用,整理了一下思路,把复用分成了几个层次
1:最低层:源代码级别的复用,提供诸如常见的队列,buffer,序列化,内存,线程等等基础设施的封装
2:组件层:该层提供二进制复用模块,如网络模块,IPC通信等
3:框架层:该层采用底下几层的代码和组件,搭建一个框架,比如直接把底层的网络消息映射到上层脚本系统,线程的控制,消息驱动,起到总体调度的作用
4:脚本层:该层主要编写游戏逻辑,由脚本支持组件和脚本代码构成
5:最高层:编辑器,编写各种各样的编辑器——任务编辑器,物品编辑器,技能编辑器等等,通过生成的脚本或数据和它的底层交互。

基于这种构想,如果底层提供了良好的设计,理想情况下更多应该是策划使用编辑器构建游戏

结合服务器架构:
以上的层次划分只是针对最复杂的逻辑服务器,这里不谈服务器的架构设计,每个服务器总能使用其上层次的部分。

人员考虑(看起来像招聘信息:D)
源代码层:需要多年的c++开发经验,对常用的程序库比较熟悉,尤其是泛型程序设计,其他不做太多要求
组件层:具备一定的接口设计能力
框架层:具备一定的接口设计能力
脚本层:需要大量游戏开发经验,对游戏逻辑和策划沟通方面相当了解
编辑器:通常不需要太高的技术要求,能按照设计实现就行


实施过程:
理想是美好的,现实是残酷的。不得不考虑一些风险,首先考虑公司现状是否需要这么一批人做这样的一件事,其次是否具备这样的研发能力,是否具备上述的各种技术人才,其三如果失败,那么会有什么得失。

原创粉丝点击