BS.Play

网络游戏通讯平台
授权协议 GPLv3
开发语言 C/C++ Lua
所属分类 游戏/娱乐、 游戏模拟器/工具/引擎
软件类型 开源软件
地区 不详
投 递 者 晋承嗣
操作系统 Linux
开源组织
适用人群 未知
 软件概览

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 绑定在 一起,提供最大程度的灵活伸缩性。

  • 立即学习:https://edu.csdn.net/course/play/24756/280701?utm_source=blogtoedu select: from bs4 import BeautifulSoup html="""   """ soup = BeautifulSoup(html,"lxml") (1)通过标签名查找: print(soup.select('a')) (2)通过

  • 立即学习:https://edu.csdn.net/course/play/24756/280700?utm_source=blogtoedu ## find_all的使用: - 1. 在提取标签的时候,第一个参数是标签的名字。然后如果在提取标签的时候想要使用标签属性进行过滤,那么可以在这个方法中通过关键字参数的形式,将属性的名字以及对应的值传进去。或者是使用`attrs`属性,将所有的属性以及对

  • 刚开始学习爬虫,做了一个简单的例子,爬取网站上的图片 # -*- coding:utf-8 -*- import time from urllib import request from bs4 import BeautifulSoup import re urls = ['http://www.cosplay0.com/cosplayfuli/20180306/590_{}.html'.for

  • 服装出口欧盟需要办理那些欧盟认证? 首先我们来了解一下万圣节的由来: 万圣节,在每年的11月1日,是西方的传统节日;而万圣节前夜的10月31日是这个节日最热闹的时刻 [1]。在中文里,常常把万圣节前夜(Halloween)讹译为万圣节(All Saints' Day)。小孩会装扮成各种可爱的鬼怪向逐家逐户地敲门,要求获得糖果,否则就会捣蛋。而同时传说这一晚,各种鬼怪也会装扮成小孩混入群众之中一起庆

  •                 第一步 获取code(离线code) 组合URL,如下: https://accounts.google.com/o/oauth2/auth? scope=https://www.googleapis.com/auth/androidpublisher& state=123456& redirect_uri=developers console中设置的重新導向 UR

  • 实践项目————诗词名句网《三国演义》小说爬取 import os import re import time import urllib.request import urllib.parse from bs4 import BeautifulSoup def header(): # 三国演义网址 article_url = "http://www.shicimingju.com

  • 将两个Avatar做lerp操作 public class BlendSkeleton : MonoBehaviour { public Animator animator; private Avatar sourceAvatar; public Avatar targetAvatar; private Vector3 posForReset; priva

  • 立即学习:https://edu.csdn.net/course/play/24756/280700?utm_source=blogtoedu 搜索文档树: find:查找到第一个满足条件的元素然后返回 find_all:得到所有满足条件的元素,得到的是一个列表 find_all中的参数中limit=返回前几个标签页可以用下标的方式进行取第几个 find_all中属性值class = 或者使用at

 相关资料
  • 根据Karpath的RL教程,我正在尝试为游戏2048实现一个策略网络代理。我知道算法将需要玩一些游戏,记住输入和采取的行动,规范化和平均中心的结局分数。然而,我在损失函数的设计上陷入了困境。如何正确地鼓励最终得分较高的行为,并阻止最终得分较低的行为? 当在输出层使用softmax时,我沿着这个设计了一些东西: 其中,操作采用一种热格式。然而,这一损失似乎没有多大作用,网络没有学到什么。我在PyT

  • Iphone Gamekit对于创建多人游戏非常有用。 但我有个问题。互联网上有很多资源和教程,可以为通过血牙或WiFi加入的玩家创建多人游戏。但玩家应该通过同一网络连接。但是有没有一种方法可以连接世界上任何地方的用户。举个例子,假设在一个纸牌游戏中,我是一个玩家,游戏会搜索全世界的用户,随机连接3个玩家与我一起玩游戏。有没有办法用GameKit做到这一点。如果这是可能的,任何人可以请指示我一些关

  • 1.自我介绍 2.为什么投游戏测试岗位? 3.对游戏测试工作有什么了解? 4.游戏测试都需要做什么? 5.平时玩什么游戏 6.一天会花多长时间在游戏 7.最近玩了什么游戏 8.端游呢? 9.对我们公司有什么了解? 10.对工作的计划? 11.linux操作命令 12.对数据库的增删改查了解吗?删除是什么? 13.sql插入语句 14.能接受加班吗? 15.反问

  • 我正在开发一个基于Java(客户机和服务器)的多人策略游戏。我没有太多的经验在网络游戏,但我做过一些小事情,像一个多功能聊天和2个玩家的抽签tac脚趾与插座。我不是在找人为我编写代码,只是给我一些指导。 游戏经历了多个阶段:首先,用户连接并登录。在他被赋予主持/加入游戏的选择权之后。在他加入一个游戏或者某人加入他的游戏之后,客户端就会继续进入游戏阶段。游戏是1v1的,只需要每隔5秒来回发送数据(如

  • 我写的神经网络可以玩井字游戏。网络有9个输入神经元,它们描述板的状态(1-代表网络移动,1.5-代表对手移动,0-代表空单元)和9个输出神经元(具有最高值的输出神经元表示给定状态下的最佳动作)。网络没有隐藏层。激活函数-乙状结肠。学习方法--Q学习+反向传播。 网络是经过训练的,但很差(继续踩在被占用的单元格上)。所以我决定添加一个隐藏层。我想问: 在隐藏层中使用多少个神经元,在隐藏层和输出层中使

  • FreeBSD 是目前以高性能网络服务为目的而部署范围最广的操作系统之一。 讨论这些话题的章节包括: 串口通讯 PPP 和以太网上的 PPP 电子邮件 运行网络服务 防火墙 其他进阶网络话题 这些章节主要供您在需要时参考。 不必按特定的顺序来阅读它们, 此外,您开始在网络中使用 FreeBSD 之前也不需要先把它们都读完。

  • 多益太奇葩了,不建议大家去,问的问题都奇奇怪怪的,而且在面试之前还要填一堆问卷,比如什么:军人的天职是什么,无语 1.自我介绍 2.为什么要来游戏 3.最有成就感的事情 4.你的优点和缺点是什么 5.如何看待未来的游戏发展 6.如果小区里不让养狗怎么办·······真的很想吐槽,小区让不让养狗跟我找工作什么关系吗?无语 7.周末老板让你帮忙送东西怎么办 ·····额,周末了大哥,当然是休息啊。加班

  • 依然是非常奇葩的多益网络,而面完刷完KPI就美美把我挂掉了,笑死 男面试官,神情语态都是非常瞧不起人的那种,避雷了哈 1.依然自我介绍 2.问我了不了解多益网络,知不知道有什么游戏 3.为什么没有留在暑期实习的公司 4.游戏运营与产品运营的区别 5.怎么看待游戏运营 问了两句就没有再问了,然后让我反问,我简单问了一下工作内容。当时看得出来这个面试官就很不耐烦,语气态度很差,察觉到他应该是要KPI我