分享

一个简单的游戏服务器框架(二)

 quasiceo 2014-02-03
分类: 游戏 游戏服务器 Lua 2012-01-10 20:46 3397人阅读 评论(3) 收藏 举报

        暴雪魔兽都是用Lua,我们毫无疑问的用lua了。在某知名游戏流出的源代码里面,google一下就可以找到,可以看到其采用windows服务器,代码里面能够发现大量的lua脚本,所以,这里,就说说怎样将lua脚本与我们的游戏结合,从而使我们能迅速配置一个游戏系统。

       进入一个游戏,我们就看到场景,场景上的物件(包括玩家,npc,道具),我们的脚本配置差不多就针对这两个元素了。

      一。场景

      直白一点,就是一张地图和在这张地图上的一些属性、规则。那么我们针对任何一个场景,为场景提供在Lua里面调用的接口,那么,对任何一个场景上的规则,不需要我们程序员去动手写什么代码了,完全可以让策划去配置了,只要告诉他们接口就可以了。比如,一个场景的持续时间为1小时,那么我们提供一个actionTime(int)的接口,那么策划只需要通过这个接口,写上时间,那么这个场景就维持一个小时,如果这个场景作为一个副本使用,那么这个副本什么时候开启,里面有什么怪,这些怪死了有什么动作等等这些,完全不需要我们程序去干涉任何事情,他们自己去弄就行了,在游戏 我的世界 里玩家就可以自己搭建关卡这些,就像策划去配一个副本,场景是一样的。

     二。npc

     以设计AI为例,我们提供程序需要的所有AI接口,然后一个npc被打了该怎样,巡逻的时候该怎样,被点击该怎么样,与我们程序没关系了,他们自己去配置就可以了。同样,做一个任务系统,这个太庞大了,有时一个任务就有上万行代码了,实在是太复杂了,这就必须得节省我们程序的时间,搭建一个好的脚本框架,可以为我们的开发节省大量的时间,并且迅速配置出一个游戏系统,我想完美这方面就做得很好,他们的游戏产出很快。

    玩家的处理和上面也差不多了。

   上面只是说了我们为什么要搭建好一个号的lua游戏脚本框架,下面就说说怎样做一个框架了,只能从自己的能力,自己的代码,来说一点了:

   1.使用tolua++把我们c++代码导入到lua里面,这个不需要什么功夫,只需要编写自己的pkg文件就可以,在.h文件里使用tolua_begin tolua_end来标记需要导入的代码就可以了,这样我们需要导入到lua的类、函数、变量就可以在lua里面使用了;

    2.为了在lua里能使用c++里面的类,那么我们必须在lua中定义和类相同名字的table,使用这个和类同名的table来访问类中的成员函数、变量。

     问题出现了,在游戏里面那么多的npc,我们必须为每个id的npc指定一个唯一的table,然后调用到一个具体npc时,使用npc+id的方法来访问这一张表,我们必须为npc这个大类定义一张统一的table,定义里面的共同行为,当出现不同行为时,去找到这个npc在lua里面对应的table,调用里面的方法就可以了,同理,场景做相同的处理。

   从这段时间写代码的经验来看,这个框架的c++代码还算比较好写,没什么难度,难的就是这部分lua代码,可能是自己初学lua,不是很了解,接下来自己就是写好这个lua框架代码了

更多 0

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多