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网站后台架构
### 高性能高并发服务器架构的关键知识点 #### 1. 高性能高并发服务器架构概述 - **定义**: 高性能高并发服务器架构是指能够同时处理大量用户请求,并且能够保持稳定性能的服务器架构。 - **重要性**: 在当前互联网...
整理的高性能高并发服务器架构文章,内容预览: 初创网站与开源软件 6 谈谈大型高负载网站服务器的优化心得! 8 Lighttpd+Squid+Apache搭建高效率Web服务器 9 浏览量比较大的网站应该从哪几个方面...
负载均衡是SNS网站架构中的关键一环,包括Web服务器、服务层和数据访问层的平衡。通过DNS轮询、服务总线层的控制轮询、ID分区等策略,可以有效地分散请求,避免单点故障。缓存的分布与均衡通常按应用和对象类型进行...
具体地讨论以下问题: 1)SNS社区的三层产品架构: Profile;Relation;Content&App; 2)SNS三层产品架构之间的关联与相互依存; 3)关系链开放及NewsFeed,SNS的重要元素; 4)市场上SNS产品形态及商务模式;
无服务器架构微服务方案是一种新兴的技术模式,它将传统微服务的概念与无服务器计算相结合,以提高系统的可扩展性、灵活性和成本效益。无服务器架构的核心在于,开发者只需要关注业务逻辑,而无需关心底层基础设施的...
除了 Lambda,无服务器架构还涉及到其他 AWS 服务,如 DynamoDB(用于实时、高性能的 NoSQL 数据库)、SNS(简单通知服务,用于消息传递)、SQS(简单队列服务,用于异步处理)、Kinesis(用于实时流数据处理)、S3...
Push 系统总体架构图展示了 Push 系统的整体架构,包括客户端、推送服务器、消息服务支持模块、云端服务、数据存储服务、第三方服务等部分。同时,Push 系统还使用了多种技术,包括 Spring 框架、MyBatis 框架、...
大型电商网站架构设计的原因可以分为三类:大型门户、SNS 网站和电商网站。电商网站具备以上两类的特点,比如产品详情可以采用 CDN,静态化,交互性高的需要采用 NOSQL 等技术。 二、电商网站需求 客户需求包括: ...
在IT行业中,SNS(Social Networking Service)社交网站是用户互动和信息分享的重要平台,如开心网就是一个典型的例子。为了构建这样一个系统,通常会采用三层...对于大型社交网站来说,这样的架构设计是必不可少的。
**开源SNS架构——Elgg深度解析** 在互联网社交领域,SNS(Social Networking Service)网站已经成为人们在线交流、分享信息的重要平台。Elgg是一款强大的开源SNS框架,以其灵活性和可扩展性受到开发者的青睐。本文...
解析SNS社区产品架构模型.doc
SNS2124&SNS2224&SNS2248&SNS3096&SNS5192&SNS5384产品文档
二、SNS网站架构解析 SNS网站的核心功能包括用户注册、登录、个人资料管理、好友关系、动态发布、评论互动等。在"近乎SNS论坛"中,我们可以看到这些功能的实现细节。源代码中的Model层负责数据处理和业务逻辑,View...
在系统架构设计方面,高校SNS系统采用分层架构,包括表示层、业务逻辑层、数据访问层和数据持久层。这种架构有利于职责分明,便于维护和扩展。 总之,这篇论文探讨了使用Spring MVC和MongoDB构建高校SNS系统的关键...