首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

棋牌游戏服务器架构: 总体设计

首先要说明的是, 这个棋牌游戏服务器架构参考了网狐棋牌的架构。网狐棋牌最令人印象深刻的是其稳定性和高网络负载。...本服务器虽然参考了其设计,但是还是有很大的不同,因为这个服务器框架主要是用在linux系统之上,而网狐棋牌是基于Windows平台的,严重依赖于windows sdk。...这个架构延续了网狐棋牌在网络组件所作的努力,这个棋牌服务器也使用异步IO作为网络的工作方式,更为彻底的是其数据库也是采用异步架构。...图1 棋牌游戏服务器端总架构 Libraries 主要由4个库组成,其中boost::thread是一个跨平台的线程库,boost::asio是跨平台的异步IO库,protobuf则是用来序列化服务器和客户端协议的...游戏类型信息: 棋牌游戏、休闲游戏、视频游戏等。 2. 游戏种类: 比如在棋牌游戏这个大类之下有:德州扑克、斗地主、升级等。 3.

4.6K70

棋牌游戏服务器架构: 总体设计

首先要说明的是, 这个棋牌游戏服务器架构参考了网狐棋牌的架构。网狐棋牌最令人印象深刻的是其稳定性和高网络负载。...本服务器虽然参考了其设计,但是还是有很大的不同,因为这个服务器框架主要是用在linux系统之上,而网狐棋牌是基于Windows平台的,严重依赖于windows sdk。...这个架构延续了网狐棋牌在网络组件所作的努力,这个棋牌服务器也使用异步IO作为网络的工作方式,更为彻底的是其数据库也是采用异步架构。...图1 棋牌游戏服务器端总架构 Libraries 主要由4个库组成,其中boost::thread是一个跨平台的线程库,boost::asio是跨平台的异步IO库,protobuf则是用来序列化服务器和客户端协议的...游戏类型信息: 棋牌游戏、休闲游戏、视频游戏等。 2. 游戏种类: 比如在棋牌游戏这个大类之下有:德州扑克、斗地主、升级等。 3.

2.5K71
您找到你想要的搜索结果了吗?
是的
没有找到

棋牌游戏服务器架构: 总体设计

首先要说明的是, 这个棋牌游戏服务器架构参考了网狐棋牌的架构。网狐棋牌最令人印象深刻的是其稳定性和高网络负载。...本服务器虽然参考了其设计,但是还是有很大的不同,因为这个服务器框架主要是用在linux系统之上,而网狐棋牌是基于Windows平台的,严重依赖于windows sdk。...这个架构延续了网狐棋牌在网络组件所作的努力,这个棋牌服务器也使用异步IO作为网络的工作方式,更为彻底的是其数据库也是采用异步架构。...图1 棋牌游戏服务器端总架构 Libraries 主要由4个库组成,其中boost::thread是一个跨平台的线程库,boost::asio是跨平台的异步IO库,protobuf则是用来序列化服务器和客户端协议的...游戏类型信息: 棋牌游戏、休闲游戏、视频游戏等。 2. 游戏种类: 比如在棋牌游戏这个大类之下有:德州扑克、斗地主、升级等。 3.

2.2K90

棋牌游戏服务器架构: 详细设计(二) 应用层设计

这里的应用层,指的是CenterServer、LogonServer、LogServer、RoomServer等几个服务器,另外还包括游戏模块的设计。不过游戏模块和前4个服务器的设计很不相同。...这里先说一下服务器应用的详细设计。 这上面提到的4个服务器都需要响应客户端(这里的客户端的意思是泛指)的请求,进行数据库操作,同时还要能够配置,以及显示系统运行的状态信息等。...3) 将游戏相关的请求转交给TableMgr处理. 4) 处理聊天及管理请求。 TableMgr管理着这个房间里的桌子。而Table则是处理公共棋牌游戏逻辑的地方。...图6 德州扑克游戏模块结构 这里虽然给出的是德州扑克的结构图,但是其他游戏也有类似的结构。...2) GetGameAttrib 返回游戏的属性,主要包括: 游戏的名称 ,游戏描述,游戏模块的名称,客户端模块名称,游戏数据库名称等 3) RectifyRoomOption 由于一些游戏对房间有特殊要求

1.2K130

棋牌游戏服务器架构: 详细设计(二) 应用层设计

这里的应用层,指的是CenterServer、LogonServer、LogServer、RoomServer等几个服务器,另外还包括游戏模块的设计。不过游戏模块和前4个服务器的设计很不相同。...这里先说一下服务器应用的详细设计。 这上面提到的4个服务器都需要响应客户端(这里的客户端的意思是泛指)的请求,进行数据库操作,同时还要能够配置,以及显示系统运行的状态信息等。...3) 将游戏相关的请求转交给TableMgr处理. 4) 处理聊天及管理请求。 TableMgr管理着这个房间里的桌子。而Table则是处理公共棋牌游戏逻辑的地方。...图6 德州扑克游戏模块结构 这里虽然给出的是德州扑克的结构图,但是其他游戏也有类似的结构。...2) GetGameAttrib 返回游戏的属性,主要包括: 游戏的名称 ,游戏描述,游戏模块的名称,客户端模块名称,游戏数据库名称等 3) RectifyRoomOption 由于一些游戏对房间有特殊要求

93440

棋牌游戏服务器架构: 详细设计(三) 数据库设计

GameTypeInfo,其主要字段为: TypeID:类型标识 ID TypeName:类型名字,例如棋牌类,休闲类 Enable:控制游戏大厅是否显示该类型...UserAccounts的主要字段: UserID:玩家的唯一标识,注册的时候自动生成,不能修改 Accounts:帐户名字,具有唯一性,不能重复,修改...,可以通过修改每个游戏的经验数值增加方案得到策略的改变 AllLogonTimes:玩家成功登陆的总次数 RegisterDate:玩家的注册日期...ClubList是用来存储社团列表的,主要字段包括: ClubID:社团的唯一标识号码,注册的时候自动生成,不能修改 ClubName:社团名字...:玩家在游戏房间游戏所产生的和局局数改变的数值 FleeCount:玩家在游戏房间游戏所产生的逃跑局数改变的数值 Experience:玩家在游戏房间游戏所产生的经验数值改变的数值

1.2K80

棋牌游戏服务器架构: 详细设计(三) 数据库设计

GameTypeInfo,其主要字段为: TypeID:类型标识 ID TypeName:类型名字,例如棋牌类,休闲类 Enable:控制游戏大厅是否显示该类型...UserAccounts的主要字段: UserID:玩家的唯一标识,注册的时候自动生成,不能修改 Accounts:帐户名字,具有唯一性,不能重复,修改...,可以通过修改每个游戏的经验数值增加方案得到策略的改变 AllLogonTimes:玩家成功登陆的总次数 RegisterDate:玩家的注册日期...ClubList是用来存储社团列表的,主要字段包括: ClubID:社团的唯一标识号码,注册的时候自动生成,不能修改 ClubName:社团名字...:玩家在游戏房间游戏所产生的和局局数改变的数值 FleeCount:玩家在游戏房间游戏所产生的逃跑局数改变的数值 Experience:玩家在游戏房间游戏所产生的经验数值改变的数值

1.3K90

棋牌游戏大厅座位内存分析过程

今天有业务,需要分析某棋牌游戏房间内的座位内存。 目标:通过内存判断每个座位上是否有玩家。所以,要找到每个桌子、每个座位相关内存的排布规律及其内存基址。 游戏大厅截图: ?...风雷游戏大厅 首先,查找座位上玩家信息的内存地址。查找方法:坐到一个座位上,任何用CE搜索大于0的内存(4字节),然后离开座位,再搜值为0的内存。...看来这个棋牌大厅的内存数据设计和其他棋牌不一样。暂无其他办法,先分析找到的这个内存。观察后发现,每桌5个座位,该内存块连续存储5个玩家的金币值,每个座位的金币值内存间隔为8。...接下来关掉CE, 打开OD,附加游戏进程。先定位到第一处代码查看。 ?

2.1K30

棋牌游戏服务器架构: 详细设计(二) 应用层设计

这里的应用层,指的是CenterServer、LogonServer、LogServer、RoomServer等几个服务器,另外还包括游戏模块的设计。不过游戏模块和前4个服务器的设计很不相同。...这里先说一下服务器应用的详细设计。 这上面提到的4个服务器都需要响应客户端(这里的客户端的意思是泛指)的请求,进行数据库操作,同时还要能够配置,以及显示系统运行的状态信息等。...3) 将游戏相关的请求转交给TableMgr处理. 4) 处理聊天及管理请求。 TableMgr管理着这个房间里的桌子。而Table则是处理公共棋牌游戏逻辑的地方。...图6 德州扑克游戏模块结构 这里虽然给出的是德州扑克的结构图,但是其他游戏也有类似的结构。...2) GetGameAttrib 返回游戏的属性,主要包括: 游戏的名称 ,游戏描述,游戏模块的名称,客户端模块名称,游戏数据库名称等 3) RectifyRoomOption 由于一些游戏对房间有特殊要求

1.9K120

棋牌游戏服务器架构: 详细设计(三) 数据库设计

GameTypeInfo,其主要字段为: TypeID:类型标识 ID TypeName:类型名字,例如棋牌类,休闲类 Enable:控制游戏大厅是否显示该类型...UserAccounts的主要字段: UserID:玩家的唯一标识,注册的时候自动生成,不能修改 Accounts:帐户名字,具有唯一性,不能重复,修改...,可以通过修改每个游戏的经验数值增加方案得到策略的改变 AllLogonTimes:玩家成功登陆的总次数 RegisterDate:玩家的注册日期...ClubList是用来存储社团列表的,主要字段包括: ClubID:社团的唯一标识号码,注册的时候自动生成,不能修改 ClubName:社团名字...:玩家在游戏房间游戏所产生的和局局数改变的数值 FleeCount:玩家在游戏房间游戏所产生的逃跑局数改变的数值 Experience:玩家在游戏房间游戏所产生的经验数值改变的数值

1.8K60

5 款Linux平台上的棋牌游戏

传统意义上,游戏功能是Linux的弱项之一。近年来,由于Steam,GOG和其他将商业游戏平台的努力,这种情况有所改变,但是这些游戏通常不是开源的。...虽然大多数开源游戏不太可能与某些预算庞大的3A商业游戏相匹敌,但许多类型的开源游戏都非常有趣,可以从大多数主要Linux发行版的存储库中安装。...本文我将介绍棋牌类型的游戏来继续有关Linux开源游戏的系列文章。在以后的文章中,我计划介绍益智、赛车,角色扮演以及策略与模拟类游戏。...Kajongg 有许多游戏打着麻将的旗号,但几乎所有游戏都是使用麻将牌的砖块来套在纸牌游戏上。Kajongg是一个罕见的例外,因为它是针对四个玩家的经典拉米式游戏的实现。...,与Axis&Allies棋盘游戏和其他类似的棋盘游戏风格有亿点类似。

3.6K00

TDD 在棋牌游戏算法中的应用

棋牌游戏一直以来都是受欢迎的休闲娱乐方式,而其中的算法设计对于游戏的平衡性和公正性至关重要。...测试驱动开发(Test-Driven Development,简称TDD)正是一种在棋牌游戏算法开发中广泛应用的方法。本文将探讨TDD在棋牌游戏算法中的应用,并介绍其优势。...这样一来,开发者可以更加自信地发布算法,确保游戏的公正性和可靠性。 其次,TDD能够提高棋牌游戏算法的可维护性。...当需要修改算法时,开发者只需运行测试用例,确保修改不会破坏原有的功能。这种自动化的测试机制能够有效地减少人工测试的工作量,提高代码的可维护性。 此外,TDD还能够提高棋牌游戏算法的性能。...对于开发者而言,采用TDD方法进行棋牌游戏算法的开发是一种明智的选择。

15020

系统架构之二(棋牌游戏常用架构)

棋牌游戏常用架构: 我从事过4年的棋牌游戏开发,使用过的架构大致如上,各模块解释如下。...GateWay: 网关服务器,有多个来做负载均衡,与client 使用长连接方式,client发送的消息都通过GateWay转发给大厅服务器游戏服务器,大厅服务器游戏服务器返回给client的消息也都经过...GateWay,充当游戏消息转发的中转站,防御网络恶意攻击。...LobbyServer:大厅服务器,可以有多个,负责游戏大厅中功能,例如游戏桌数目,各游戏桌在线人数等等。 GameServer:游戏服务器,多个,不同的游戏有不同的游戏服务器,具体游戏的逻辑实现。...dbmgr: 数据服务器,所有需要持久的数据,都经过dbmgr与数据库进行交互,dbmgr通过数据缓存,批量事务,本地持久等手段大大提高整体系统性能。

2.2K71

腾讯云方勇:TFC 全球泛游戏大会谈棋牌游戏安全防护

以下由新浪游戏与手机游戏第一门户网站18183采访报道: 2017第十五届 TFC 全球泛游戏大会已于10月26日在厦门杏林湾大酒店盛大开幕,会上采访到了腾讯云安全首席架构师方勇,就棋牌游戏网络安全防护方向进行了深度的讨论...方勇认为,棋牌从过去两年到现在主要面临 DDoS 的威胁,知己知彼才能做到棋牌游戏网络安全的高效防护。 ” ?...以下为采访实录: 1、新浪游戏记者:目前,棋牌游戏遇到哪些安全问题,应该怎么解决呢?...2、新浪游戏记者:针对DDoS这边,我们这边有什么解决方案可以提供给棋牌公司? 方勇:腾讯云给两种棋牌客户量身定制了两类防护方案。...方勇:可以用 DNS 调度流量,在被攻击时把被攻击的服务器通过超大防护的数据中心进行流量清洗。这种方案对客户各方面要求都比较低,大概几分钟就能完成部署,防护效果也不错,比较适合初创的棋牌公司。

1.4K50

人工智能当前,棋牌游戏留给人类的堡垒不多了

最近半年在写一个棋牌游戏的环境:RoomAI,目的是为方便自己和他人在棋牌游戏 AI 方面进行一些探索和研究。...在开发过程中,查看了一些棋牌游戏相关的资料,在这里分享给大家。 ? 1....棋牌游戏 之前为了写一个棋牌游戏相关的专利,去查棋牌游戏的定义,发现搜狗百科 “棋牌游戏是棋类游戏和牌类游戏的统称”。这和没说有什么区别,囧。...棋牌游戏和人工智能 信息是否完全决定一款游戏是棋类游戏还是牌类游戏,也决定了其 AI 算法。 2.1....留给人类的堡垒们 几千年以来,棋牌游戏是人类智力的竞技场。值此人工智能大发展之际,人类用棋牌游戏构建了其中一条保卫人类智力优越感的防线。

2K80

普通服务器搭建云游戏吗?搭建云游戏平台需要做什么准备?

,只有适配的服务器才能保证正常使用,那么普通服务器搭建云游戏吗?...搭建云游戏平台需要做什么准备?小编接下来就为大家带来相关内容介绍。 普通服务器搭建云游戏吗? 云游戏平台使用的服务器是是比较特殊的,和普通的服务器有很大区别,不过有人会问普通服务器搭建云游戏吗?...答案是肯定的,不过普通的服务器同样有多种类型,只有配置足够高的服务器才可以用来搭建云游戏平台,毕竟云游戏对于运行速度是有要求的,这就需要大家根据实际情况去选择。 搭建云游戏平台需要做什么准备?...搭建云游戏平台之前需要大家做好相关准备工作,首先就是云服务器的租用,根据云游戏平台的规格去租用合适的服务器类型,其次就是硬件方面的准备,比如显卡、宽带、显示设备等等,将这些东西都准备好之后就可以进行搭建了...以上就是关于普通服务器搭建云游戏吗的文章内容,小编今天就为大家整理到这里了,大多数企业里面使用的都是普通服务器,这种服务器性价比是非常高的。

2.4K20
领券