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网站后台架构
计算机-后端-面向大型SNS网络的架构设计与实现.pdf
整理的高性能高并发服务器架构文章,内容预览: 初创网站与开源软件 6 谈谈大型高负载网站服务器的优化心得! 8 Lighttpd+Squid+Apache搭建高效率Web服务器 9 浏览量比较大的网站应该从哪几个方面...
具体地讨论以下问题: 1)SNS社区的三层产品架构: Profile;Relation;Content&App; 2)SNS三层产品架构之间的关联与相互依存; 3)关系链开放及NewsFeed,SNS的重要元素; 4)市场上SNS产品形态及商务模式;
大型SNS网站数据库设计
SNS网站架构PPT文档.pptx
解析SNS社区产品架构模型.doc
Elgg 很好用的开源SNS的架构,解压后直接按照安装文档安装即可
SNS服务端解决方案: 关于服务器架构等。
这是一个基于三屋架构的SNS社交网站,模拟开心网的呀!
网上商城系统网站根据实际需要,进行改造,扩展,支持千万PV...大型门户一般是新闻类信息,可以使用CDN,静态化等方式优化,开心网等交互性比较多,可能会引入更多的NOSQL,分布式缓存,使用高性能的通信框架等。电商网
SNS2124&SNS2224&SNS2248&SNS3096&SNS5192&SNS5384产品文档
无服务器离线SNS 一个无服务器插件,用于侦听脱机SNS并通过事件调用lambda fns。 文件 有关正在运行的应用程序的示例,请参阅 先决条件 该插件提供了自动配置的SNS服务器,而无需您指定端点。 如果您想使用自己的...
人人网的SNS数据库架构与设计艺术-周彦伟
个人认为,从严格产品意义而言,国外是FACEBOOK,国内是校内网最先实现相对完整地SNS社区产品架构的。而早期的网易社区,腾讯IM平台,早期博客形态的QQ空间,包括现在一些手机社区,都和SNS有些偏差。具体地讨论以下...
一款好的国外SNS社交网站源码.做了很好的整合。值得下载
对SNS下游戏行业的发展看法 简单描述我对SNS的看法和提出相关意见
sns-login sns-loginsns-loginsns-login sns-login sns-login