大型MMO-SNS类游戏服务器架构

ARPG、MMORPG、MOBA、卡牌类、棋盘类游戏服务器架构图 阅读详情

SNS类型的游戏和RPG类的网游有一些不同的特点,而这些特点会导致这类游戏的后台架构和RPG网游的后台架构存在一些区别。

SNS类型的游戏一般有以下的特点:

(1)所有的玩家角色可能存在交互

        SNS类型的游戏一个玩家角色会找他的好友或者其他任何一个毫无关系的玩家角色进行某种逻辑上的互动。

(2)这类游戏玩家角色一般是看不见的

(3)玩家角色在线或离线状态比较模糊

        在线的玩家角色可以主动找不在线玩家进行交互。如去某个没上线的好友菜园偷菜,去攻打不在线的玩家角色的城池。

(4)交互频率较低,数据量小。

 

根据上面的主要特点,这类游戏后台要设计成唯一一个的大世界,而角色之间无须相互可见,实现这个大世界后台就有存在的可能。实际的商业项目中,可以采用下面的架构。

   

一般前面的节点往后主动连接。

connsvr有可能是webserver,也有可能是自定义协议的tcpsvr;他采用某种hash映射的方式,将client(网页或桌面程序)请求的消息包转发给任意一个schedulesvr。

schedulesvr收到某个消息请求,根据请求的业务特点,将请求分发给一个或多个logicsvr;同时他可能会提供事物机制,保证请求处理的完整性。

logicsvr和上面转发hash映射机制对应的方式的作分布式部署。

dbproxy是访问DBMS的代理。

另外说明一下,服务器之间建议用tcp通信,这样可以借助tcp拥塞控制的机制做应用层的流量控制。

 

举个简单例子,来说明一下某个游戏逻辑的流程。就拿偷菜来说,client1上的玩家A想偷好友B的菜。

(1)A根据某种负载均衡机制(DNS轮询就可以了)向某个connsvr发请求包,connsvr将请求包转发给某台schedulesvr;到A所在的logicsvr上。

(2)schedulesvr发请求给A所在的logicsvr,这个logicsvr做一些基本验证,如B是否是A的好友等,处理偷菜逻辑;如果B也在这台logicsvr上,那就直接处理B的被偷逻辑;最后把结果返回给schedulesvr。

(3)schedulesvr发现A&B不在一个logicsvr上,如果(2)的逻辑处理成功,将消息再转给B所在的logicsvr,logicsvr把B的菜数量减掉。

(4)schedulesvr最后收到B的处理的结果,把回应返回给Client。

 

上面是一个比较简单的sns应用,只涉及到双方。最简单的应用是只涉及自己。另外,有些sns会和3方或更多方扯上关系,这个可以考虑用类似schedulesvr性质的服务器处理这类业务。像大部分SNS类型的游戏会附加很多小游戏,就上面类似的方法处理。像邀请一些好友一起做某种游戏之类的小游戏可以考虑用独立的进程处理。

小游戏logicsvr和下面的logicsvr有本质的不同,前者只须局部的玩家角色数据,而后者的数据要求是全局性的。

小游戏的游戏结结果往往要在主游戏中较及时的反映出来,比如得到某些物品,经验级别有变化了之类。大体流程一般这样:

(1)多个角色进入到小游戏中时,要从各自的主logicsvr中拉取最新数据。

(2)小游戏完成后,要将游戏结果(一般是增量)保存到各自的主logicsvr,再退出,返回到主logicsvr。


 

 

 

SNS服务端解决方案(原创) SNS服务端解决方案: 关于服务器架构等。 立即下载

相关推荐

从理想光源到部分相干:Abbe与Hopkins模型在计算光刻中的演进与选择

本文深入探讨了计算光刻中Abbe模型与Hopkins模型的演进与选择,分析了理想光源与部分相干光源在光刻仿真中的关键差异。Abbe模型基于理想点光源假设,计算简洁但存在精度局限;Hopkins模型则通过互强度函数和TCC技术,更准确地模拟现实中的部分相干光源,尤其适用于先进节点光刻工艺。文章还提供了模型选择的实用建议,帮助工程师在精度与效率间取得平衡。

weixin_29217235的博客 299

MMORPG大型游戏设计与开发(构架)

游戏整体是以经典的武侠世界/天龙八部作为基本的一种设计模式,大致分为以下几个部分。  游戏的简单的一次处理流程如下,不过有些凌乱,还有待完善。  程序设计方面,服务器基本上分为数据处理、日志、网络等模块,客户端分为UI、场景、动作等模块。客户端选择的开源引擎OGRE+CEGUI。 作者:viticm 出处: http://www.cnblogs.com/lianyue/本文版权归作者和博客园共有,

Sunface撩技术 6789

《遥感大模型生产级实战:从数据到决策的端到端AI工程》系列第一部分:AI遥感工程师的基础设施与工具链-文章 4:传统遥感分析与机器学习基线

本章将系统性地介绍经典遥感分析工作流,从数据预处理到多维度特征工程,再到如何利用经典的机器学习模型(如随机森林、支持向量机)进行监督与非监督学习。我们将通过一个完整的“智慧农业作物分类”项目实战,展示如何利用我们之前构建的数据湖和工具链,从原始数据到最终的分析结果,构建一个性能可靠、可解释性强的基线系统。更重要的是,我们将深入剖析这种传统方法的局限性,从而为后续章节引入遥感大模型的必要性提供强有力的论证。

panshengwu的博客 707

SNS游戏服务器架构随笔

在最近设计的SNS游戏服务器架构中有一些感悟: 第一, 首先对业务领域进行建模; 产生一些核心的, 不变的概念: 在设计中, 我抽象了几个概念, 1) 绝对ID: 在系统中需要唯一标识的实体或类型; 2) 类型: 实体的类型 3) 数据源: 实体的数据来源和持久化, 在其中实现数据源与程序数据的相互转化 4) 战斗元素: 可以被装备, 可以被在战斗中使用, 为战斗者提供战斗加成

songjiyuan的专栏 1335

Astah 9.0升级步骤(Widnows/Mac OS)

Astah Professional是一款全新的轻量级UML建模工具。软件集思维导图和UML建模于一体,采用100%纯JAVA构建, 兼容性强,不仅能够实现分布式建模、项目合并,还能够实现和其它建模工具的交互。

tequiero777的博客 2826

新手必看!Unity中Tag和Layer的7个实际应用场景(含MOBA案例)

本文深入探讨Unity中Tag和Layer的7个实际应用场景,特别以MOBA游戏开发为例,详细解析如何利用LayerMask进行高效场景管理和碰撞检测优化。从双相机方案到射线检测的精准控制,帮助开发者掌握这些基础功能的进阶用法,提升游戏性能和开发效率。

weixin_28723171的博客 313

TCP连接的建立与终止

相关博客:https://blog.youkuaiyun.com/knowledgebao/article/details/84626184 目录 第18章 TCP连接的建立与终止 18.1 引言 18.2 连接的建立与终止 18.2.1 tcpdump的输出 18.2.2 时间系列 18.2.3 建立连接协议 18.2.4 连接终止协议 18.2.5 正常的t c p d u m p输出 ...

knowledgebao的博客 783

74、光谱成像在电子内窥镜及色彩理论中的应用

本文探讨了光谱成像在电子内窥镜中的应用及其与色彩理论的深度融合。通过分析FICE技术、色彩再现模型及胃黏膜光谱测量,展示了光谱信息在提升医学诊断准确性方面的潜力。同时,系统阐述了颜色的物理属性、标准表示方法、同色异谱现象、颜色测量技术(密度法与比色法)以及CIELAB等均匀颜色空间的构建原理。结合流程图与对比表格,梳理了从光信号获取到颜色处理的完整路径,并展望了人工智能与新型视觉模型在未来医疗成像与色彩科学中的发展方向。

g2h3i4j5的博客 153

竞技类游戏解决方案-系统架构图

转载于:https://www.cnblogs.com/vickygu2007/p/5753764.html

weixin_34318326的博客 250

『Apisix进阶(九)』基于Upstream实现服务转发的最佳实践

本篇文章将以服务转发为核心,带你从原理到实战,深入了解 Upstream 的配置方法与常用场景。

老陈聊架构 1516

基于通义千问2.5-7B-Instruct的技术深度解析

通义千问2.5-7B-Instruct是一个基于Transformer架构的大型语言模型,具有70亿参数。它通过自注意力机制和前馈神经网络处理输入序列,能够捕捉长距离依赖关系,适用于多种NLP任务。微调是指在预训练模型的基础上,使用特定任务的数据进行进一步训练,以使模型更好地适应特定任务。微调可以显著提高模型在特定任务上的性能。通义千问2.5-7B-Instruct是一个强大的语言模型,适用于多种NLP任务。通过深入理解其架构、微调方法和核心代码,可以更好地应用于实际场景。

zhangjiaofa的专栏 1569

用Unity进行网络游戏开发(一)

使用Unity3D进行网络游戏开发 一.Unity3d简介      Unity3d是时下比较流行的一款游戏引擎,流行是因为用它做游戏很方便,无论是3d还是2d都会有非常好的效果,  即便某些朋友不懂编程,也可以通过Unity自带的组件做出一些简单的诸如三维视频游戏、建筑可视化、实时三维动画  等类型的小作品。在正式发布前,Unity经历的多年的开发阶段,Gooball在2005三月发布,

Less Is More 9891

(9-2)离线强化学习:离线强化学习的主流方法

本文介绍了三种离线强化学习的主流约束策略优化方法:BCQ、CQL和Fisher-BRC,并通过CartPole环境进行性能比较。BCQ利用生成模型约束动作选择并引入扰动网络;CQL通过正则化Q值抑制对未见状态-动作对的高估;Fisher-BRC使用Fisher散度正则化策略分布。实验结果表明,三种方法各有优势,其中CQL表现最为稳定。文章还指出,为获得更好的性能,需要更大的数据集和更长的训练轮次。这些方法通过限制策略优化范围,有效提高了离线强化学习的稳定性和泛化能力。

码农三叔 1540

Linux命令学习(一)

linux命令

señoritaw的博客 409

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

TcpSvr中用redis作为缓存管理工具

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 redis提供五种数据类型:string,dict(hash),list,set及zset(sorted set)。 https://redis.io/ Redis is an open source (BSD licensed), in-memory

Power of technology will free your body and spirit 462

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

基于C/S的网络游戏架构分析(转)

网络游戏的系统架构大约可以分三种: Peer-to-Peer 对等通信结构。如下图所示,即在多个玩家参与的游戏中,各玩家之间采用Peer-to-Peer的直接通信方式。在网络通信服务的形式上,一般采用浮动服务器的形式,即其中一个玩家的机器既是客户端,又扮演服务器的角色,一般由创建游戏局的玩家担任服务器(主机)。很多对战型的RTS(即时策略类游戏)网络游戏都采用这种结构。 基于游戏大厅代理的...

weixin_33815613的博客 686

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

通用游戏服务器架构设计

功能:主要没有db操作的,比如:进入到mmo中的场景服,打麻将的麻将服,再结算后,将结果post到逻辑线程池(完全是异步交互,不会出现等待),进行发奖计算等,这样子场景层的业务完全不会阻塞。功能:进行业务线程的处理,这里主要是一些带有db操作的业务逻辑,比如:任务、背包等,好友,工会,宠物。和上面的服务完全是一套代码,通过config区分到底是跨服服务器,还是游戏服务器。其实java游戏服务器就是这么简单,这种架构适合所有的游戏服务器类型。线程池:3*core 这样子的线程数。线程池:10个左右。

focus-unchanged-thing 1682

mmo游戏服务器架构简述

mmo服务器架构总体来说相对比较复杂,由多组服务器进程组成。而这些服务器进程大致分为两类,一类是平台服,另一类是普通服。 一、平台服 平台服务器一般都用于处理全局相关功能,涉及玩家登陆,角色唯一性认证,跨区,全区排行榜等。主要包括以下几种: flserver:登陆服务器进程,玩家登陆时首先连接flserver服务器。 roleregserver:角色唯一性验证服务器,验证角色名是否重复。 ...

Ftworld21的专栏 2852

Mmo游戏后端架构

Mmo游戏后端架构

m0_60259116的博客 1186

MMORPG服务器架构

原文地址 http://www.blogjava.net/landon/archive/2012/07/14/383092.html MMORPG服务器架构 一.摘要 1.网络游戏MMORPG整体服务器框架,包括早期,中期,当前的一些主流架构 2.网络游戏网络层,包括网络协议,IO模型,网络框架,消息编码等。 3.网络游戏的场景管理,AI,脚本的应用等。 4.开源的网络

Hello World! 3389

MMO基础游戏服务器架构(一)

/BaseConnection是我自己封装的一个连接类,每一条消息都有一个Protobuf的IMessage和Baseconnection。Log.Information("开始监听端口:" + endPoint.Port);//当有人连入的时候。Log.Information("开始监听端口:" + endPoint.Port);//当有人连入的时候。//我的日志系统是使用Serilog的成熟链式调用的日志框架。if (serverSocket == null) //避免触发空引用异常。

Moon_Star的博客 1133

sshesame从入门到精通:完整配置教程与最佳实践

sshesame是一款简单易用的SSH蜜罐工具,作为一个伪造的SSH服务器,它允许任何人连接并记录其所有活动。无论是网络安全爱好者还是系统管理员,都能通过本指南快速掌握sshesame的配置与使用,有效监控和分析SSH连接尝试。 ## 什么是sshesame? sshesame的核心功能是接受并记录SSH连接及相关活动(如通道、请求等),但不会在主机上执行任何实际操作(如命令执行、网络请求)。

gitblog_00091的博客 856

浅谈全区全服架构的SNS游戏后台

版权声明:本文由梁本志原创文章,转载请注明出处:  文章原文链接:https://www.qcloud.com/community/article/198 来源:腾云阁 https://www.qcloud.com/community   首先说下分区分服和全区全服的概念,查了一下资料,没有找到合适的定义。说下自己的理解:所有游戏服务器都有玩家数据库,如果以数据库为单位划分

qian_xiaoqian的博客 714
上一篇: Herm统一分发框架的分发各种对象的流程
下一篇: 记录一下,gvim配置文件
herm_lib
博客等级 码龄16年 173粉丝 115原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值