BS.Play 是一套开放源代码的通用网络游戏通讯平台,目的用于快速构建高效稳定的可扩展网络游戏 通讯模型。 BS.Play 遵守 GPLv3 协议,您可以免费获取、修改源代码,将项目应用于生产环境中。您可以提交 bug、修改意见、新功能需求到开发团队,也可以加入开发团队与我们一起为其工作。 目前 BS.Play 为 BS.Group 团队开发维护,并应用于其它商业项目中。
BS.Play 提供 AS3 的客户端 API,完成和 libcomoroclient 同样的功能。由于 BS.Play 非常适合制作 Flash 联机网络游戏,所以 AS3 的 API 也是比较完整的,同时登录服务器也提供了对安全砂箱的支 持,可以在最新的 Flash Player 上正常使用所有网络功能。
BS.Play 支持 LUA 编写的游戏逻辑脚本。LUA 是一种轻巧、高效的嵌入式脚本语言,非常适合于编 写复杂的配置参数和逻辑计算过程。所有的脚本由 Center Server 负责执行,服务器提供了对 LUA 语言本身的扩展,使其支持对内存存储池的直接读写、定时器、网络数据发送、数据库操作等功能。 尤其是,LUA 逻辑脚本可以在 Center Server 不停机的状态下实现动态重载,这给临时修改游戏逻辑 和参数提供了非常大的方便条件。
BS.Play 的核心服务器部分 Comoro ,运行于*NIX 平台上,使用 C 语言开发,采用单进程静态多线程的事件 驱动模型,可以作为普通应用程序和守护进程执行。
*
Comoro 可以分别部署为 Coin Server、Login Server、Base Server 和 Center Server,在小规模实现中,Base Server 和 Center Server 可以合并在一起。
Coin Server 用来对外提供虚拟币的查询和转账接口,通过标准的HTTP方式操作,Banker(包括游戏的虚拟币源及各级代理)可以向下级代理或游戏用户转账。
Login Server 用来处理用户的登录操作,完成用户登录验证、session 生成、服务器列表及状态反馈 等工作,并可以为 Flash 客户端提供安全砂箱。
Base Server 为基础的连接服务,提供所有客户端通讯连接,目前支持 TCP 协议,Base Server 会 提供安全有效的简单加密连接,并对所有命令做完整性校验。
Center Server 为 Comoro 的核心逻辑服务器,一个或多个 Base Server 可以连接在其上,将客户端 的命令及参数转发,由 Center Server 将客户端数据作为输入送入由 LUA 编写的逻辑脚本中执行, 并将脚本的执行结果反馈回 Base Server。Center Server 中包含基于用户的数据存储池、LUA 状态 机,并提供逻辑脚本对 MySQL 数据库的操作能力。同时,Center Server 中包含一个嵌入式的 WebServer,用于服务器状态的查看、控制,也可以作为普通的 WebServer 提供 HTTP 服务。
Login Server、Base Server 和 Center Server 由一种叫做 Bridge 的机制连接在一起。通常一个完整 的实现中包括一个 Login Server,一个 Center Server 和若干的 Base Server。Base Server 的数量 可以根据需要增减,或者将唯一的 Base Server 和 Center Server 通过非网络连接的 Bridge 绑定在 一起,提供最大程度的灵活伸缩性。