一个简单的游戏开发框架(一.框架的意义)

刚完成一个游戏项目。项目总结来说在技术上还有不少问题,但是有个最大的优点,游戏逻辑部分相对独立。引擎(cocos2d-x),网络,多线程,数据库这些比较底层的部分都是大牛封装好了的,也包括公司以前的一些积累。逻辑部分的程序得以专注于逻辑本身,开发速度大大提高。

现在的游戏开发的技术环境跟十年前有了很大不同。十年前我刚开始做游戏的时候,各公司还在自己开发引擎。现在都有比较成熟的开源或免费引擎了,cocos2d,unity3d,panda3d等等。周边的各种库也很多,boost,log4cplus,xml,网络,基本上所有需要的东西都有现成的了。游戏开发基本上就是把这些现成的东西攒到一起,实现自己的游戏逻辑。有时候会想,要提高自己的技术水平,还有没有别的东西可以做。在做这个项目的时候,有了一些想法。

见过一些游戏招聘对程序的要求,通常会有象cocos2d前端,或者linux网络后端等类似这样的提法。跟一些项目经理交流,也会有客户端/服务器分开,做客户端的就始终客户端,做服务器的就始终服务器这样的做法。同一个逻辑模块,分开给两个人来做,需要沟通的时候再来沟通。理由是让程序员做到专精。个人认为这样并不好,沟通是需要成本的,也依赖于程序员个人的性格,沟通水平。让逻辑程序员专注于逻辑是更好的选择。实际上,如果剥除了图形,网络,数据库这些内容,一个游戏模块的服务器逻辑和客户端逻辑是非常接近的,交给同一个人能更好的把握这些模块的内容。

因此想到了自己尝试写一个小的,与具体游戏无关,甚至跟引擎也无关的游戏开发框架。这个框架面向游戏逻辑程序员,把图形,网络,数据库,多线程都封装到框架内部,向逻辑程序员提供相对简明的接口。因为对cocos2d-x比较熟悉,先做出一个基于cocos2d-x的版本。框架设计借鉴了cocos2d的一些思想,但是cocos2d本身还是比较偏向于一个图形引擎,有许多图形,资源相关的细节,很少在服务器端使用。个人认为这样一个框架对于游戏公司,尤其是小的,技术积累不多的公司还是比较有意义的。它有以下作用:

1.代码重用,技术积累。框架在不同项目中反复使用,修改,完善,成熟。最终稳定并成为公司的技术核心。

2.简化逻辑开发,缩短开发周期。而且因为降低了逻辑开发的难度,对逻辑程序员的要求可以适当降低。

3.降低学习成本,及人员交替对公司的影响。框架本身是由在公司时间较长,经验较丰富的程序员开发维护的。新进入公司的逻辑程序员只用熟悉框架接口,对框架内部涉及到的各种库和技术的学习是一个渐进的过程,不会直接作用于项目本身。

原文地址:https://www.cnblogs.com/bnudc/p/3421640.html