游戏系统开发笔记(三)——通用代码库

http://blog.csdn.net/mooke/article/details/8680020

 墨水比较有限,工作时基本也都是着眼小处,除了工作内容涉及过的几个模块,其余的暂时并未多作关注,所以基本上还只是停留在感性认识上。不过我倒觉得这是难免,毕竟游戏产品放到整个软件行业来说也是个较复杂的东西,需要花很多时间才能把其间各种技术融会贯通为我所用,但等到了那个时候恐怕已经忙得未必会有时间详细的写东西了吧。所以这篇文章也是基本上限制在自己的这层认识水平上去写,还是那句话,过段时间回顾的时候再来修正之前写的一些问题,再去完善一些当时没能说的清楚的东西。虽然废话写多了点,还是觉得万一有人对这些日志抱有兴趣,希望他能了解上述事实,不要浪费时间才好 :-)

-------------------------------------------------------------------------------------------

通用代码库

        这个时代“站在巨人的肩膀上”已经是一件无限趋近于迫不得已的事情了,尤其是想做一些比较“大”的事情的时候。拿游戏来说,这已经是不再是过去那个靠程序猿绘制简单点线面做一个tic tac toe那样的游戏就能赢得玩家欢心的时代了,就算是学生习作,完成像俄罗斯方块、贪吃蛇那样的游戏也只能为自己带来...一点点成就感。人们对虚拟现实的要求越来越高,对交互性要求越来越强,对应的,程序也就要做的越来越复杂。

        过去我总想完全的把握一件事情,知道它的前因后果,了解所有的枝节脉络。但这种求知欲失控后却完全起到了反效果,导致迟迟不能真正的开始做自己想做的事情,而是不停的在一个又一个的概念上、技术上打转,最后也就“知难而退”,没有下文了。

        所以这个部分放到最前面来讲,是因为我觉得它是进行商业游戏开发的一个重要前提,准备一套代码库等于有了虚拟意义上的工作室——就跟现实世界的工作室一样,我们需要这样一个环境,通常情况下不能指望一个人能够包揽所有的东西。而且要像写大型程序一样,分层次的去考虑现实中的问题,专注的着眼于自己的目标去工作。比如你想做一个游戏,那就先不要过度纠结于游戏引擎的实现。

 

        通用代码库需要提供几个东西,一是功能上的便利,能够直接提供高级接口供开发者使用,防止前期花费过多精力造轮子;二是稳定性,因为拿来作为项目的基石,所以尽量找具有工业强度的代码工具来,否则以后要做好三天两头打点滴住院的心理准备;三是较好的通用性,可以应用到不同的需求的工作中。

通常来说,一个游戏项目(包括客户端、服务端以及外围工具)可能要用到以下工具:

1、日志模块

2、网络模块

3、进程通信模块

4、内存分配器

5、数据库模块

6、常用数据结构和算法库

7、常用设计模式模板

8、线程库

9、脚本库

10、常用工具函数库

11、堆栈信息抓取工具

12、内存泄漏检查工具

13、高效计时器

        暂时能想到的是以上这些,其中有一些有比较知名的库,有些我则完全没有听说过有类似的成熟代码库,不过功能上论,大致是要包含上述这些东西。有比较成熟的代码库尽量拿来用(使用开源项目注意开源协议,一些开源协议的项目直接拖进商业项目中来是不道德的,还可能会有法律风险),因为通常不管是效率还是稳定性都会优于自己去实现一个。一些工具虽然可能没有现成的代码库,但是建议自己先去实现出来,尤其是内存泄漏、抓堆栈这种,要在早期做出来,可以为以后堆代码清除不少障碍。

        还有些东西没列比如性能分析工具,这种可能就得根据具体项目自己来实现监测手段了,性能分析基准也是要由自己来定,比较大的项目分析性能通常不是用个第三方分析软件就能搞定的(因为和操作行为有关)。另外就是具体一些工具就不列举,因为自己工作没插手这块,私底下也没亲自尝试过,都是道听途说一点,也不好瞎推荐。

        各个模块的具体介绍以后再陆续展开。

版权声明:本文为博主原创文章,未经博主允许不得转载。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值