🔆 FAQ
KBEngine引擎FAQ
这里会收集开发者问的较多的问题,方便大家查询。
Q:KBEngine是什么,能用来做什么?
A:KBEngine是一个通用网络游戏服务器引擎,适合绝大多数中心拓扑结构的网络游戏,包括但不限于即时和回合制MMORPG、副本类、房间类、卡牌、棋牌等。不适合基于P2P技术的游戏类型。
Q:KBEngine使用什么网络协议?
A:集群组建使用UDP协议,其他情况下服务器模块之间、服务器和客户端之间用的都是TCP协议。
Q:KBEngine使用什么网络模型?
A:由于正式运营环境在Linux下,所以网络模型选择了epoll, 生产环境在Windows比较方便所以KBEngine也支持了Windows系统,但是网络模型只是简单的select。
Q:同时在线的承载上限?
A:经常被问到承载上限,KBEngine底层架构被设计为多进程分布式动态负载均衡方案,理论上只需要不断扩展硬件就能够不断增加承载上限,单台机器的承载上限取决于游戏逻辑本身的复杂度。
Q:KBE是多线程的吗?可否部署在多台物理机上?
A:KBE采用的是单线程(当然db读写等特殊任务依然会另开临时线程处理)多进程结构,不同的进程可以部署在不同的物理机上。理论上通过扩展机器数量和配置就可以扩展负载规模。
Q:如何用KBEngine开发服务器,需要懂底层开发吗?
A:除非有非常特殊的需求,否则无需涉及底层开发,KBEngine封装了网络、持久化等许多底层功能,只需要使用Python脚本语言在上层开发就可以实现完整的服务器功能。
Q:KBEngine使用的Python是什么版本的,是否需要自己安装?
A:目前KBEngine自带Python3.4运行环境,并不需要用户另行安装Python。当然如须运行installer和cluster_controller这样一些安装和控制脚本则已然需要单独安装Python。
Q:KBEngine使用的数据持久化采用的是什么方式,是否需要自己编写语句?
A:目前KBEngine仅支持MySql数据库,不需要自己编写SQL语句和存储过程,底层采用定义实体的方式,以实体对象为单位,自动持久化用户需要存储的数据。
Q:KBEngine支持哪些客户端?
A:KBEngine采用轻客户端结构,理论上支持所有的客户端技术,只需要对接底层协议即可。官方提供了Ogre、Unity3D、UE4、html5等多种客户端的底层解析插件并提供了demo供参考,如果采用这几种技术开发客户端的话也无需关心底层通讯技术便可直接在上层开发逻辑。
Q:KBEngine能用来做手游吗?
A:可以,KBEngine支持多种手机客户端技术,官方提供Unity3D、UE4、html5的插件和demo,cocos2dx类型的手游做简单的开发也可以连接KBE服务器。另外KBEngine的通讯协议优化良好,效率较高,坐标自动同步等功能也可选择性关闭以进一步节省流量。同时KBEngine对断线重连也提供了良好的支持,使其适用于移动端在网络不稳定的情况下的使用。
Q:KBEngine的运行平台支持哪些,是否支持MAC?
A:KBEngine支持windows和linux平台,其中windows作为开发和测试平台,不推荐商业运营使用,商业运营请使用linux平台。目前尚不支持在MAC下编译和运行。
Q:KBEngine的数据流采用的是什么格式?是否支持protobuf等第三方通用数据传输格式?
A:KBEngine采用的是自己序列化的二进制流,不支持protobuf等其他数据传输格式,而且因为这部分功能和引擎其他部分结合较为紧密,不建议用户自行替换。