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

卡牌类游戏游戏大厅——下篇

阿巩 It will all be okay 我们继续昨天的上篇,在注册/登录->选择游戏区域->认证->进入大厅之后就是选择房间/创建房间,也就是进入到了大厅游戏对接的部分。...---- 在进入房间后,一般是不会直接进入游戏的,因为仍有很大的比例这个房间无法达成进入游戏的条件。那么这个阶段也是属于大厅的层面。...还是以Python做服务端为例,我们可以另开一个进程来处理游戏逻辑部分,房间的进程将该房间的内容发送到游戏服务器,告诉服务器是否开始游戏,玩家有哪些,每个玩家金币数量等。...服务器只会保存房间的具体信息和房间号码,等游戏全部结束后,游戏服务器才会返回给大厅服务器。最终的游戏结果也被视作游戏房间的部分。...参考: 《游戏服务器架构与优化》 蔡能 END

1K30

卡牌类游戏游戏大厅——上篇

阿巩 要睡个好觉喔 通常在打开一个游戏后的基础流程包括登录/注册->选择游戏区域->认证->进入大厅->选择房间/建立房间->进入房间->等待游戏/建立游戏->游戏中。...以上环节中,游戏大厅包含了登录和进入游戏前的策略,针对其中的每一环节都需要思考其中的实现细节,今天阿巩将以卡牌类游戏为例,来看实现一个游戏大厅的流程及需要注意的细节。...对于大厅的登录流程,如果游戏使用HTTP/HTTPS连接方式,可以使用反向代理来做负载均衡给出对应区域的ip地址。...对于登录和选游戏区域,其实这两步的顺序并不固定,如果是登录前选择服务器,会先将玩家的选择项传输到网关服务器,再按下确定后,网关通知服务器集群用户登入,之后走登录或者注册的流程; 对于先登录再选服务器区域...《卡牌类游戏游戏大厅——下篇》了,明日更新~ END

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

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

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

2.1K30

游戏服务器存储系统设计

本文内容源自腾讯游戏学院程序公开课_服务器第四节 一、数据存储基础 什么是数据存储? 运行数据保存到硬盘上形成持久化数据。...可扩展性较差 数据库 - NoSQL数据库 NoSQL数据库特点 Key - Value结构 支持结构化查询 优点 易于维护 性能较高 可扩展性好 问题 容易产生数据冗余 不支持SQL查询 二、游戏服务器架构与数据存储设计...解决方案 为了实现高速响应,玩家数据全部在内存中 在登录时从DB加载进内存 游戏过程中的数据变更通过操作内存数据完成 游戏服务器架构介绍 分区分服服务器架构(天涯明月刀、梦幻西游) Player 1—...游戏服务器存盘策略设计 Player——>Game Server 1(Player Runtime Data)<——(load)DB 游戏存盘需求特点:update > read > insert >...注:此模型较简单,真正设计时会比这个复杂的多。 运营日志存储 什么是运营日志? 游戏中玩家重要行为的记录 诸如登录记录,等级变更,财产变化流水,交易记录等信息 运营日志的用途有哪些?

3.6K30

游戏服务器设计之任务系统

游戏服务器设计之任务系统 介绍 任务系统是游戏中最重要的系统之一,本文旨在设计一个轻量清晰的任务系统。通用易扩展是本系统关注的重点。...设计设计任务时有如下几个重点: 任务需要以线的方式组织,一般都是在每个任务配置中指定下一个任务的id,每个任务线的第一个和最后一个比较特殊,第一个任务必须在角色属性满足条件下自动获得,而最后一个任务因为是故事线的结尾所以不能触发下一个任务...任务接取后角色在游戏中做相关的操作,如果跟接取的任务相关,那么任务的进度会自动更新,那么二者是组合产生关联的呢?...我们使用事件机制,玩家的游戏行为拆分出一系列的事件类型,用三个字段表示,事件类型,事件对象,事件值,比如打怪,事件类型为击杀怪物,事件对象为树妖,事件值为1。...github.com/fanchy/h2engine 关于任务系统使用的属性管理器:http://www.cnblogs.com/zhiranok/p/h2engine_propmgr.html 关于游戏服务器引擎

3K40

游戏服务器设计之NPC系统

游戏服务器设计之NPC系统 简介 NPC系统是游戏中非常重要的系统,设计的好坏很大程度上影响游戏的体验。...NPC在游戏中有如下作用: 引导玩家体验游戏内容,一般游戏内有很多主线、支线任务,而任务的介绍、接取、领取奖励等操作都是通过NPC的操作,一般会有几个核心NPC,再不停的任务引导中,玩家会对核心npc印象深刻...,强化了游戏代入感。...NPC的设计 NPC跟角色怪物等相似是一个实体,所谓实体指的是必须有唯一ID,可通过ID索引到且可以在地图动态添加,本文实现的NPC的ID由配置文件指定,其他基本属性如名字、地图坐标、外形、朝向等都可配置...https://github.com/fanchy/h2engine 关于属性管理器:http://www.cnblogs.com/zhiranok/p/h2engine_propmgr.html 关于游戏服务器引擎

2.5K40

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

首先要说明的是, 这个棋牌游戏服务器架构参考了网狐棋牌的架构。网狐棋牌最令人印象深刻的是其稳定性和高网络负载。...本服务器虽然参考了其设计,但是还是有很大的不同,因为这个服务器框架主要是用在linux系统之上,而网狐棋牌是基于Windows平台的,严重依赖于windows sdk。...图1 棋牌游戏服务器端总架构 Libraries 主要由4个库组成,其中boost::thread是一个跨平台的线程库,boost::asio是跨平台的异步IO库,protobuf则是用来序列化服务器和客户端协议的...Applications是基于Core实现的4种服务器,它们管理着游戏信息,提供登录以及处理游戏逻辑的功能。...玩家也可以通过RoomServer参与聊天(包括大厅公聊和私聊)。 4 交互协议 客户端和服务器进行交互时,传递的包需要使用protobuf来序列化。

2.2K90

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

首先要说明的是, 这个棋牌游戏服务器架构参考了网狐棋牌的架构。网狐棋牌最令人印象深刻的是其稳定性和高网络负载。...本服务器虽然参考了其设计,但是还是有很大的不同,因为这个服务器框架主要是用在linux系统之上,而网狐棋牌是基于Windows平台的,严重依赖于windows sdk。...图1 棋牌游戏服务器端总架构 Libraries 主要由4个库组成,其中boost::thread是一个跨平台的线程库,boost::asio是跨平台的异步IO库,protobuf则是用来序列化服务器和客户端协议的...Applications是基于Core实现的4种服务器,它们管理着游戏信息,提供登录以及处理游戏逻辑的功能。...玩家也可以通过RoomServer参与聊天(包括大厅公聊和私聊)。 4 交互协议 客户端和服务器进行交互时,传递的包需要使用protobuf来序列化。

2.5K71

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

首先要说明的是, 这个棋牌游戏服务器架构参考了网狐棋牌的架构。网狐棋牌最令人印象深刻的是其稳定性和高网络负载。...本服务器虽然参考了其设计,但是还是有很大的不同,因为这个服务器框架主要是用在linux系统之上,而网狐棋牌是基于Windows平台的,严重依赖于windows sdk。...图1 棋牌游戏服务器端总架构 Libraries 主要由4个库组成,其中boost::thread是一个跨平台的线程库,boost::asio是跨平台的异步IO库,protobuf则是用来序列化服务器和客户端协议的...Applications是基于Core实现的4种服务器,它们管理着游戏信息,提供登录以及处理游戏逻辑的功能。...玩家也可以通过RoomServer参与聊天(包括大厅公聊和私聊)。 4 交互协议 客户端和服务器进行交互时,传递的包需要使用protobuf来序列化。

4.6K70

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

这里的应用层,指的是CenterServer、LogonServer、LogServer、RoomServer等几个服务器,另外还包括游戏模块的设计。不过游戏模块和前4个服务器设计很不相同。...这里先说一下服务器应用的详细设计。 这上面提到的4个服务器都需要响应客户端(这里的客户端的意思是泛指)的请求,进行数据库操作,同时还要能够配置,以及显示系统运行的状态信息等。...1 Center Server详细设计 CenterServer的主要功能是维护游戏列表和房间信息。游戏列表是从ServerInfoDB中加载到的,下面是一个简略的结构图。 ?...2 Logon Server 详细设计 ?...5 Game Module详细设计 这里以德州扑克为例,来说明一个游戏的逻辑的结构, ?

1.9K120

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

GameTypeInfo,其主要字段为: TypeID:类型标识 ID TypeName:类型名字,例如棋牌类,休闲类 Enable:控制游戏大厅是否显示该类型...Enable: 控制游戏大厅是否显示该游戏,默认为1。 3....ServiceNullity:服务禁止标志,保留供网站系统使用或者将来系统扩展使用 UserRight:玩家权限标志,每一位代表一种权限, 比如旁观权限,大厅公聊权限...:玩家在游戏房间游戏所产生的和局局数改变的数值 FleeCount:玩家在游戏房间游戏所产生的逃跑局数改变的数值 Experience:玩家在游戏房间游戏所产生的经验数值改变的数值...PlayTimeCount:玩家在游戏房间游戏所产生的游戏时间的数值 OnLineTimeCount:玩家在游戏房间游戏所产生的在线时间的数值

1.8K60

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

这里的应用层,指的是CenterServer、LogonServer、LogServer、RoomServer等几个服务器,另外还包括游戏模块的设计。不过游戏模块和前4个服务器设计很不相同。...这里先说一下服务器应用的详细设计。 这上面提到的4个服务器都需要响应客户端(这里的客户端的意思是泛指)的请求,进行数据库操作,同时还要能够配置,以及显示系统运行的状态信息等。...1 Center Server详细设计 CenterServer的主要功能是维护游戏列表和房间信息。游戏列表是从ServerInfoDB中加载到的,下面是一个简略的结构图。 ?...2 Logon Server 详细设计 ?...5 Game Module详细设计 这里以德州扑克为例,来说明一个游戏的逻辑的结构, ?

93440

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

这里的应用层,指的是CenterServer、LogonServer、LogServer、RoomServer等几个服务器,另外还包括游戏模块的设计。不过游戏模块和前4个服务器设计很不相同。...这里先说一下服务器应用的详细设计。 这上面提到的4个服务器都需要响应客户端(这里的客户端的意思是泛指)的请求,进行数据库操作,同时还要能够配置,以及显示系统运行的状态信息等。...1 Center Server详细设计 CenterServer的主要功能是维护游戏列表和房间信息。游戏列表是从ServerInfoDB中加载到的,下面是一个简略的结构图。 ?...2 Logon Server 详细设计 ?...5 Game Module详细设计 这里以德州扑克为例,来说明一个游戏的逻辑的结构, ?

1.2K130

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

GameTypeInfo,其主要字段为: TypeID:类型标识 ID TypeName:类型名字,例如棋牌类,休闲类 Enable:控制游戏大厅是否显示该类型...Enable: 控制游戏大厅是否显示该游戏,默认为1。 3....ServiceNullity:服务禁止标志,保留供网站系统使用或者将来系统扩展使用 UserRight:玩家权限标志,每一位代表一种权限, 比如旁观权限,大厅公聊权限...:玩家在游戏房间游戏所产生的和局局数改变的数值 FleeCount:玩家在游戏房间游戏所产生的逃跑局数改变的数值 Experience:玩家在游戏房间游戏所产生的经验数值改变的数值...PlayTimeCount:玩家在游戏房间游戏所产生的游戏时间的数值 OnLineTimeCount:玩家在游戏房间游戏所产生的在线时间的数值

1.2K80

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

GameTypeInfo,其主要字段为: TypeID:类型标识 ID TypeName:类型名字,例如棋牌类,休闲类 Enable:控制游戏大厅是否显示该类型...Enable: 控制游戏大厅是否显示该游戏,默认为1。 3....ServiceNullity:服务禁止标志,保留供网站系统使用或者将来系统扩展使用 UserRight:玩家权限标志,每一位代表一种权限, 比如旁观权限,大厅公聊权限...:玩家在游戏房间游戏所产生的和局局数改变的数值 FleeCount:玩家在游戏房间游戏所产生的逃跑局数改变的数值 Experience:玩家在游戏房间游戏所产生的经验数值改变的数值...PlayTimeCount:玩家在游戏房间游戏所产生的游戏时间的数值 OnLineTimeCount:玩家在游戏房间游戏所产生的在线时间的数值

1.3K90

7 QQ游戏百万人同时在线服务器架构实现

在构建好了基本的完成端口服务器之后,就是有关服务器组的架构设计了。之所以说这是一个服务器组,是因为它绝不仅仅只是一台服务器,也绝不仅仅是只有一种类型的服务器。...在设计登陆服务器时,至少应该有以下功能:N个大厅服务器的每一个大厅服务器都要与所有的登陆服务器保持连接,并实时地把本大厅服务器当前的同时在线人数通知给各个登陆服务器,这其中包括:用户进入时的同时在线人数增加信息以及用户退出时的同时在线人数减少信息.../ 2 / 大厅服务器:是普通玩家看不到的服务器,它的连接IP和端口信息是登陆服务器通知给客户端的。也就是说,在QQ游戏的本地文件中,具体的大厅服务器连接IP和端口信息是没有保存的。...大厅服务器的主要作用是向玩家发送游戏房间列表信息。...其他两个服务器仍然允许最多5000人的同时在线。 如果按照这样的结构来设计,那么要实现百万人的同时在线就应该是这样: 首先是大厅,1000000/5000=200。

2.9K21

可复用的游戏服务器端开发框架之副本系统

在“副本系统”中,最需要考虑的是游戏服务器的隔离性和生命周期。这时游戏服务器不再简单的代表一个静态的“虚拟世界”,而是一批动态的,不断生灭的小虚拟空间。同时我们还需要一个相对静态的“大厅”。...而房间则应该是一个对游戏关卡的容器,能承担任何一段游戏逻辑,但是需要大厅提供一组玩家和选择关卡作为输入,最后在结束时提供一个返回给大厅,修改房间的状态和触发玩家的关卡结算。...总结 本文初步介绍了可重用的游戏服务器框架中的三层结构。...而框架的中层结构,提供了大量的游戏业务领域的建模,这些建模也许不是非常详细,不够详细,但是如果我们坚持分层设计原则,并且以库和开放源码的方式去维护,那么这些中层模型将日渐强大,成为可重用代码的核心模块,...这个转换并无任何硬性规定,而是随项目和使用团队(社区)的变化而变化的:当某个游戏设计成为“主流”,对应的实现代码就能成为可服用的模块——这正是整体框架想要表现的最重要功效。

2K40
领券