登陆服务器和游戏服务器为甚要分开 摘自知乎

把游戏登陆逻辑单独成一个服务的优点有如下几点:

  1. 登陆入口唯一.:游戏如果不是自己运营,则需要上其他平台。每个平台只能有一个登陆服务器,但是游戏逻辑服务器要跟着玩家数量的增加而增加。
  2. 方便扩展:游戏可能会在多个平台一起运营,不同的平台对登陆的处理方式可能不一样。单独把登陆部分分开的话,只要修改登陆服务的代码,然后发布就可以了,其他部分的服务器不需要做任何修改。
  3. 部署灵活:游戏中玩家数量较少的时候,可以将登陆服和逻辑符部署到一台物理服务器上。当玩家增多,服务器压力增大时,可以将登陆服单独部署到性能更强大的物理服务器上。
  4. 减少耦合:登陆服和逻辑服独立后,登陆服挂了不会影响正在游戏中的玩家。某一个逻辑服挂了也不会影响到登陆。

弓親,虚拟世界架构湿

知乎用户、佛仙魔、姜梁 等人赞同

因为现在手游几乎全部是运营商和开发商(CP)分开的模式了。

================
首先大概介绍一下运营商的概念,或者换个现在更常用的说法,“渠道”。
因为如果对国内手游产业不是非常了解的话,可能不是很能理解国内手游产业中“渠道”的角色。
传统的单机游戏行业,开发商负责整个游戏的研发,而真正的纯单机游戏并没有“运营”的概念,所以只有所谓的“发行商”,负责对游戏进行包装、营销和发售。例如《暗黑破坏神2》在中国的发行商是奥美,《伊森疯狂赛车》在中国的发行商是天人互动。最后的营收则是由开发商和发行商按一定的比例瓜分。
而传统的PC网游(俗称“端游”),由于有开发大型端游能力的公司往往也同时具有强大的运营能力(包括营销推广、维护服务器、客服等等),因此开发商与运营商往往是同一家公司(如网易、完美、腾讯、西山居等等)。而国外的网游如果要在中国市场运营,则往往会委托中国的公司来进行运营活动(也就是俗称的“代理”)。而最后的营收同样由开发商和运营商进行分成。例如《魔兽世界》与网易、《龙之谷》与盛大、CF(我就不打书名号了)与腾讯等等。也有极少数国内网游由别家的国内公司进行运营。例如盛大也曾经运营过西山居的《剑网三》。然而这些游戏由于往往是国外的公司全权委托给国内公司进行代理,因此往往账号登陆和游戏本身还是要通过同一家公司的服务器。
而到了手游时代,整个产业的运作方式进行了一次大洗牌。所谓的“渠道”如今承担了更重要的角色。因为这个时代的“渠道”商往往是几年前霸占了更多用户流量资源的公司。例如有微信和QQ的腾讯、有贴吧等等的百度、有自己的手机平台的小米等等。由于拥有更多的用户资源,这些平台往往比传统的自研游戏大厂本身的推广能力要强上几个数量级。许多端游大厂在转型手游的过程中对于“渠道”的认识严重不足,往往都付出了惨痛的代价。如今“渠道”+开发商的模式已经成为常识。
需要指出的是,APPSTORE和国外的GOOGLEPLAY也是“渠道”的一种。APPSTORE的首页推荐几乎是苹果平台上最有力的推广手段。

===================
介绍完渠道的概念后,再来理解为何要把登陆和游戏服务器分开就很容易了。因为在手游时代,是个网游都是要接入渠道登陆功能的,因此在开发游戏的初期就应该把接入渠道的工作纳入开发计划之中。
一般运营的游戏实际负责保存游戏数据和执行服务端逻辑的服务器由开发商进行部署和维护,而负责登陆的服务器则由渠道负责部署和维护。由于渠道往往拥有很多现成的用户,以及各种方便快捷的登陆方式(例如微信的自动登录),而这些登陆方式不同平台往往差别很大,而渠道间的竞争也很激烈,因此大多数渠道都会通过给出现成的登陆模块(SDK)和统一接口的方式供开发商进行接入。
不过要指出的是,这里的“登陆”应该是只单纯的用户名密码、游客账号等等单纯的“验证身份”的模块。事实上,开发商在自己的游戏服务器中也会有单独的登陆功能模块。
举个例子,现在有个由“NETHARD”的公司开发的叫《枕头大战》的游戏在小米的平台上进行运营。
有个叫小A的玩家是小米的用户,账号是13854389438,昵称是“巭孬嫑莪”。
然后他玩了小米上的《枕头大战》,用了小米的账号进行登陆。
然后进入游戏后他建了个叫“伊藤诚”的角色。
在普通玩家看来,这整个一套是一个非常简单的登陆流程。但其实这里面有三套可以称之为“账号”的系统。
首先是小米平台的账号(13854389438 - 巭孬嫑莪)。这套账号保存在小米的服务器上。
在登陆了“巭孬嫑莪”后,NETHARD公司获取了小米提供的身份验证信息,如果这个身份是第一次在NETHARD的服务器上登陆,那么NETHARD的服务器会为该用户分配一个NETHARD内部的用户身份,例如“13854389438%%MI”,并将这两个身份进行映射。而每次“巭孬嫑莪”在用“13854389438”的账号登陆《枕头大战》时,NETHARD的服务器上也会自动通过“13854389438%%MI”的账号进行登陆。
最后,存在NETHARD游戏服务器内的角色“伊藤诚”则相当于第三重账号。由于现在的手游网游往往在同一个账号下的角色不共享货币(如常见的“元宝”、“钻石”等等),因此在NETHARD的服务器内,“伊藤诚”则是一个独立的身份。而NETHARD的账号系统则会将“伊藤诚”和“13854389438%%MI”再一次映射起来。

====================
最后需要指出的是,在上述的流程中其实是有三台服务器存在的。分别是小米的登陆服务器、将小米账号“13854389438”和NETHARD账号“13854389438%%MI”进行映射的服务器以及将“13854389438%%MI”和“伊藤诚”进行映射的服务器。而最后那台服务器往往才是真正的游戏服务器。
至于为什么要将第二台服务器和第三台服务器分开?因为除了“登陆”功能外,手游还有“计费”模块。
NETHARD公司自然不会只有《枕头大战》一款游戏。而NETHARD公司还有自己独立的财务、审计,那么玩家花的每一块软妹币,最后都是要通过第二台服务器的流水的。
当“伊藤诚”在游戏里消费“¥100”买了一瓶“妹汁”时,首先第三台服务器会生成一张订单,告诉第二台服务器“玩家13854389438%%MI买了道具No8989,订单号XXX”。第二台服务器则会告诉小米的服务器“你的那个玩家13854389438买了道具No8989,订单号XXX”。然后小米在自己的服务器上查了下,道具No8989的售价是¥100(这个信息是游戏在平台上发布前事先注册好的信息),然后在获得“伊藤诚”的确认后,小米和支付宝进行了一系列肮脏的交易,最后小米获得了¥100,然后告诉第二台服务器“已收到13854389438的赃款,可发放No8989,订单号XXX已完成”,第二台再把该信息传达给第三台服务器,最后第三台服务器(也就是游戏服务器)在游戏里把妹汁发放给了“伊藤诚”先生。
当然这事儿还没完,在月底时,小米会把¥100中应该分成给NETHARD的那一部分给NETHARD,然后两家公司再各自给自己的临时工们发了饷,大家就各回各家各找各妈了。

登陆服务器和游戏服务器为甚要分开总结相关推荐

  1. 为什么手游服务器一般将登陆服务器和游戏服务器分开?

    搭建手游服务器,网上很多资料都是登陆服务器和游戏服务器分开,问一下,这样做有什么优势? 把游戏登陆逻辑单独成一个服务的优点有如下几点: 1.登陆入口唯一.:游戏如果不是自己运营,则需要上其他平台.每个 ...

  2. web服务器也是端系统么,Web服务器和游戏服务器的那些事儿

    随便聊聊 我接触过的软件,最早定义为C/S(Client/Server)和B/S(Brower/Server),如今传统意义上的C/S程序已经很少了,其实App和网络游戏还归位这一类.但更多的是B/S ...

  3. 怎样制作网吧服务器,网吧游戏服务器制作的过程是怎样的

    网吧的游戏都是放在服务器上面的,这就涉及到网吧游戏服务器制作,对于一些新生的网吧管理员可能还不是很清楚,网吧游戏服务器制作的过程,作为网吧游戏资讯,以2000SEVER+win98为例. 一.服务器部 ...

  4. 传统软件服务器与游戏服务器架构区别

    项目 智能客服 爬虫 SLG游戏 语言 java python kotlin 模型 异步事件驱动 可能没什么模型可言 actor模型 传输协议 http http tcp + netty 传输结构 j ...

  5. 网站查询服务器租期,游戏服务器租期

    游戏服务器租期 内容精选 换一换 创建一台或多台裸金属服务器.裸金属服务器的登录鉴权方式包括两种:密钥对.密码.为安全起见,推荐使用密钥对方式.密钥对指使用密钥对作为裸金属服务器的鉴权方式.接口调用方 ...

  6. 一键端服务器维护,游戏服务器一键端

    游戏服务器一键端 内容精选 换一换 如果您需要使用鲲鹏GCC编译器中一些加速库,则需要先在服务端安装鲲鹏GCC编译器.鲲鹏GCC编译器是针对鲲鹏平台的高性能编译器,它基于开源GCC开发的编译器工具链( ...

  7. 网上游戏服务器维护,游戏服务器正在维护中

    游戏服务器正在维护中 内容精选 换一换 应用容器化改造有三种方式,您可单击这里查看.本教程以某游戏为例,将该游戏进行微服务的架构改造,再进行容器化.本教程不对改造细节做深度讲解,仅讲解大致的建议.如需 ...

  8. 游戏一直服务器维护,游戏服务器显示维护中

    游戏服务器显示维护中 内容精选 换一换 应用容器化改造有三种方式,您可单击这里查看.本教程以某游戏为例,将该游戏进行微服务的架构改造,再进行容器化.本教程不对改造细节做深度讲解,仅讲解大致的建议.如需 ...

  9. [自己做个游戏服务器二] 游戏服务器的基石-Netty全解析,有例子,多图解释

    目录 1.Netty 是什么 2.Netty的优点 3.核心组件 3.1 Netty的线程模型 3.2 EventLoopGroup 3.3 Channel 3.4  option()与childOp ...

最新文章

  1. 社会计算研究组研究方向
  2. 新电子书:解决生产中Java应用程序错误的完整指南
  3. 数据中台精华问答 | 数据中台和传统数仓的区别是什么?
  4. 选课 topsort
  5. 拉格朗日乘子法几何意义
  6. 进程栈大小 与 线程栈大小-转
  7. java云端开发_云端编写Java代码的方法
  8. python入门代码-python基础知识和练习代码
  9. SQL Server性能调优:资源管理之内存管理篇(上)
  10. 微波工程(1)——电磁理论
  11. QT小项目练手——用QTimer做一个倒计时程序
  12. R语言survival包coxph函数构建cox回归模型、ggrisk包ggrisk函数可视化Cox回归的风险评分图、使用cutoff包基于最小p值法方法计算最佳截断值(基于LIRI基因数据集)
  13. 关于MSP430单片机程序烧写的介绍
  14. 微信小程序云开发项目——多肉植物销售小程序
  15. Aquariusの瓶子的眼泪
  16. 准确率99.9%的离线IP地址定位库
  17. Linux命令 - su命令
  18. Nylg541 最强DE 战斗力
  19. 对seed()的个人理解
  20. Python-Flask开发微电影网站(五)

热门文章

  1. Spring Aop: 从醉生梦死到豁然开朗
  2. Linux之tail命令
  3. 2022年省考各省报名考试时间
  4. kong笔记——自定义插件开发
  5. JMeter脚本的Beanshell和JSR223和Java原生请求的对比
  6. 网络io,磁盘io,线程池解决思想
  7. Insightface测试Megaface流程!
  8. 浪潮8460m4安装linux,NF8460M4(DDR4) – IPMI设置
  9. 农业+电商+XFS,农民伯伯的福音来啦
  10. Git与SVN区别,各自优缺点