游戏行业,目前开发推荐服务器器主流用什么语言

  以下是一些竞相实施这些想法的项目:

  DMarket是所有虚拟物品的全球市场 在他们的白皮书中概述的任务是“利用区块链技术将虚拟物品变成真正的资产”。他们打算鉯类似于游戏行业中其他区块链项目的方式来实现这一点

  DMarket正在推出一款名为DMarket Coin的通用游戏币。 DMarket Coin可用于与其他玩家或开发者交换游戏内粅品 它也可以在任何时候以现金交易。 这为跨游戏物品交易提供了一个平台并为玩家提供了兑现的途径。 DMarket令牌可以让您切换游戏而不會失去所有来之不易的进步

  还有一个重点是为开发人员创造收入。蓬勃发展的市场需要游戏开发者的参与和整合 DMarket承诺将交易所需嘚大部分费用(高达80%)直接返还给开发商。这给了他们一个强大的动机来创建值得交易的游戏并将这些游戏与DMarket集成。

  也许最酷的创新之┅是使用他们的区块链解决方案为每个虚拟物品赋予一个独特的标识符为个别物品的“收藏”状态打开大门。例如让买家收集他们喜愛的体育明星在比赛中使用的个人物品,就像真正的运动员一样

  DMarket Coin使用Exonum区块链框架,具有速度弹性和安全性。数据存储在一个分散嘚数据库中并且使用智能合约完成交互。游戏开发者可以使用API来整合他们的游戏并为他们的数字项目创造价值

  一个令人担忧的问題是,用户和游戏开发者必须先注册DMarket网站然后才能开始使用区块链和令牌。 这意味着DMarket可以对系统进行控制以便他们可以审查市场上他們认为合适的方式。

  然而DMarket最为关注的问题与许多竞争对手相同 - 获得市场份额。 Steam拥有大量致力于其平台的玩家并且将其撕开并不容噫。 游戏开发者也需要加入并积极地将DMarket整合到他们的游戏中

  GameCredits也是一种通用的游戏币,也是DMarket的直接竞争对手 三年前推出,它在加密卋界是一个老手 然而,GameCredits只是一个适合更广泛组织称为GNation的组件 GNation的野心略大,旨在为购买和销售游戏和游戏内资产构建通用货币 他们还唏望帮助推动加密货币的全球采用。

  GameCredits是GNation的一系列产品之一旨在破坏当前的市场。 其中包括一个加密货币一个游戏钱包,一家游戏商店一个交易游戏点数兑换处,一个esports比赛制作网站一个慈善组织,大型多人在线手机游戏“Pixel Wars”一个面向开发者的游戏制作引擎, 应鼡商店 这是一个拥有巨大发展势头的大项目。

  勇敢的新钱首席执行官Fran Strajinar认为GameCredits在市场上具有很大的优势称它拥有“正确的技术,团队囷方法......成千上万试图构建”区块链“解决方案来破坏各个行业的新公司GameCredits是唯一拥有实际解决方案,工作产品数百万用户以及正在被打亂的可量化市场的公司。“

  技术基准与许多区块链项目类似它快速,全球化分布式,安全高效且匿名。但是该技术的细节并鈈像其他区块链产品那样开放,也没有任何白皮书或技术规格可以轻松地向公众提供

  这个项目的主要问题是它不是一个纯粹的分散笁具来帮助玩家和开发者。创作者对协议费用和发票API有很大的控制权,他们认为游戏的新世界以GNation为中心这提出了一个单一的控制点和夨败,区块链初创公司通常希望破坏

  这样看来,游戏中的虚拟经济体就像是区块链和加密货币的完美用例 许多行业的最大问题都適用于基于加密的解决方案。 但从中央集权国家我们现在到别的地方会很困难。 根深蒂固的市场领导者不会轻易放弃他们的控制

没开发过游戏的人会觉得游戏推薦服务器器是很神秘的东西但事实上它并不比 web 推荐服务器器复杂,无非是给客户端提供网络请求推荐服务器本质上它只是基于长连接嘚 socket 推荐服务器器。当然在逻辑复杂性、消息量、实时性方面有更高的要求

游戏推荐服务器器是复杂的 socket 推荐服务器器。

如果说 web 推荐服务器器的本质是 http 推荐服务器器那么游戏推荐服务器器的本质就是 socket 推荐服务器器。 它利用 socket 通讯来实现推荐服务器器与客户端之间的交互事实仩有不少游戏是直接基于原生 socket 来开发的。 相对于简单的 socket 推荐服务器器它承受着更加烦重的任务:

  • 后端承载着极复杂的游戏逻辑。
  • 网络流量与消息量巨大且实时性要求极高。
  • 通常一台 socket 推荐服务器器无法支撑复杂的游戏逻辑因此在 socket 推荐服务器器的背后还有一个推荐服务器器群。

为什么纯粹的 socket 推荐服务器器还不够好

很多 web 应用不会基于原生的 http 推荐服务器器搭建,一般都会基于某类应用推荐服务器器(如 tomcat)搭建而且还会利用一些开发框架来简化 web 开发。 同样一般游戏推荐服务器器的开发都会在 socket 推荐服务器器上封装出一套框架或类似的应用推薦服务器器。为什么使用原生的 socket 接口开发不够好呢?

  • 抽象程度原生的 socket 抽象程度过低,接口过于底层很多机制都需要自己封装,如 Session、filter、请求抽象、广播等机制都要自已实现工作量很大,容易出错且有很多的重复劳动。
  • 可伸缩性高可伸缩性需考虑很多问题,消息密度、存储策略、进程架构等因素都需要考虑用原生的 socket 要达到高可伸缩性,需要在架构上花费大量的功夫而且效果也未必能达到开源框架的沝准。
  • 推荐服务器端的监控、管理很多推荐服务器器的数据需要监控,例如消息密度、在线人数、机器压力、网络压力等如果采用原苼 socket,所有这些都要自己开发代价很大。

用框架来简化游戏推荐服务器器开发

一个好的框架可以大大简化游戏推荐服务器器的工作除了遊戏自身的逻辑外,大部分的工作都可以用框架来解决推荐服务器端的抽象,可伸缩性可扩展性这些问题都可以通过框架来解决。 游戲推荐服务器器框架也承担了应用推荐服务器器的功能可以把框架看成容器,只要把符合容器标准的代码扔进去容器就运行起来了。咜自然具备了抽象能力、可伸缩性和监控、管理等能力

在开源社区里充斥了数不清的 web 推荐服务器器框架,游戏客户端的框架和库也有一夶堆但唯独游戏推荐服务器器框架少之又少,零星有一些类库但完整的解决方案几乎没有。我们只好从商用的解决方案中拿出一些框架进行类比:

RedDwarf 是唯一一个能找到的完整的开源游戏推荐服务器器框架由 sun 出品。可惜在它合并到 Oracle 以后已经停止开发了 在设计上,RedDwarf 是个分咘式架构它在分布式数据存储和任务管理上投入了太多精力,而且做的过于理想化如动态任务迁移功能的实现非常复杂,但实际应用Φ根本用不到而在可伸缩性和性能的设计上不太理想。因此 RedDwarf 夭折了

SmartfoxServer 是由意大利的一家游戏公司 gotoAndPlay() 推出的商用游戏推荐服务器器。 它是基於 java 开发的与 web 应用推荐服务器器如 Tomcat 看上去很类似。Smartfox 支持各种客户端且有一些成功案例。它在推荐服务器端封装和监控管理方面实现得很唍善 但在可伸缩性上并不是太理想,尽管 Smartfox 也支持 Cluster 模式但它的扩展方式是基于 jvm 内存复制的。也没有实现传统 MMORPG 基于场景分区的解决方案 Smartfox 囿免费版本,但完全不开源而且它的免费版本 (达不到高并发用户要求) 很大程度是为了吸引开发者最终购买它的收费版本。不限在线人数嘚收费版本价格达到 3500 美刀

Bigworld 是澳大利亚 Bigworld 公司开发的全套 3d MMORPG 游戏解决方案,解决方案包含了客户端和推荐服务器端Bigworld 功能非常强大,在动态负載均衡和容错性做了很多工作可扩展性非常强大。 它的缺点是过于重量级对硬件要求高,且价格非常昂贵Bigworld 是专门为 3d MMORPG 游戏定制,但并鈈适用于中小型游戏的开发

Pomelo 是网易于 2012 年 11 月推出的开源游戏推荐服务器器。它是基于 node.js 开发的高性能、可伸缩、轻量级游戏推荐服务器器框架 它的主要优势有以下几点:

  • 架构的可伸缩性和可扩展性好,pomelo 在推荐服务器器扩展和应用扩展上实现得非常方便
  • 轻量级,虽然是分布式架构但启动非常迅速,占用资源少
  • 参考全面,框架不仅提供了完整的中英文档还提供了完整的 MMO demo 代码 (客户端 html5),可以作为很好的开发參考

Pomelo 目前的主要缺点是推出时间尚短,一些功能还在完善中支持的客户端类型还有限,目前已支持 HTML5、ios、android、untiy3d 等 4 类客户端未来还会支持哽多的客户端类型。

游戏推荐服务器器的可伸缩性探讨

不管是 web 应用还是游戏推荐服务器器可伸缩性始终是最重要的指标,也是最棘手的問题它涉及到系统运行架构的搭建,各种优化策略 只有把可伸缩性设计好了,游戏的规模、同时在线人数、响应时间等参数才能得到保证

为什么游戏推荐服务器器的可伸缩性远远不及 web?

相比 web 应用几乎无限扩展的架构(前提是架构设计得好),游戏推荐服务器器的可伸缩性相比就着差远了那么是哪些因素导致游戏无法达到 web 应用的扩展能力呢? 说明:本文提到的 web 应用不包括类似于聊天这样的高实时 web 应用高实时 web 可认为是一种逻辑较简单的游戏。

web 应用都是基于 request/response 的短连接模式占用的资源要比一直 hold 长连接的游戏推荐服务器器要少很多。Web 应用能使用短连接模式的原因如下:

  • 通讯的单向性普通 web 应用一般只有拉模式
  • 响应的实时性要求不高,一般 web 应用的响应时间在 3 秒以内都算响应比較及时的

而游戏应用只能使用长连接,原因如下:

  • 通讯的双向性游戏应用不仅仅是推拉模式,而且推送的数据量要远远大于拉的数据量
  • 响应的实时性要求极高一般游戏应用要求推送的消息实时反映,而实时响应的最大时间是 100ms

在高并发长连接推荐服务器的解决方案中,目前除了传统的 C 语言(过于重量级)实现用的最多的是 erlang 与 node.js。两者的性能指标差不多而 node.js 在易用性方面毫无疑问胜出太多。

最近微博上看到时 go 的能撑起 100 万的并发连接node.js 也能达到同样的数据, 有 node.js 的长连接数据它占用了 16G 内存,但 CPU 还远没跑满

交互的相邻性与分区策略

普通的 web 應用在交互上没有相邻性的概念,所有用户之间的交互都是平等交互频率也不受地域限制。 而游戏则不然游戏交互跟玩家所在地图(場景)上的位置关系非常大,如两个玩家在相邻的地方可以互相 PK 或组队打怪这种相邻的交互频率非常高,对实时性的要求也非常高这僦必须要求相邻玩家在分布在同一个进程里。 于是就有了按场景分区的策略如图所示:

一个进程里可以有一个场景,也可以有多个场景这种实现带来了以下问题:

  • 游戏的可伸缩性受到场景进程的限制,如果某个场景过于烦忙可能会把进程撑爆也就把整个游戏撑爆。
  • 场景推荐服务器器是有状态的每个用户请求必须发回原来的场景推荐服务器器。推荐服务器器的有状态带来一系列的问题:场景进程的可伸缩高可用性等都比不上 web 推荐服务器器。目前只能通过游戏推荐服务器器的隔离来缓解这些问题

游戏中广播的代价是非常大的。玩家嘚输入与输出是不对等的玩家自己简单地动一下,就需要将这个消息实时推送给所有看到这个玩家的其他玩家 假如场景里面人较少,廣播发送的消息数还不多但如果人数达到很密集的程度,则广播的频度将呈平方级增长如图所示:

假如场景中 1000 个玩家,每人发 1 条消息如果需要其它玩家都看到的话,消息的推送量将高达 1,000,000 条这足以把任何推荐服务器器撑爆。

  • 减少消息数量 --- 消息只发送给能看到的玩家玩家能看到的只是屏幕的大小,而不是整张地图的大小这样推送消息的时候可以只推给对自己的状态感兴趣的玩家。这个可以用 AOI(area of interested)算法来实现在 pomelo 的库 pomelo-aoi 中实现了简单的灯塔算法。
  • 分担负载将消息推送的进程与具体的逻辑进程分离。如图:

这样广播逻辑与具体的进程逻輯就不会相互影响了而且由于只有后端的场景推荐服务器器是有状态的,前端负责广播的推荐服务器器还是无状态的因此前端推荐服務器器可以无限扩展。

实时游戏的推荐服务器端一般都需要一个定时 tick 来执行定时任务为了游戏的实时性,一般要求这个 tick 时间在 100ms 之内这些任务包括以下逻辑:

  • 遍历场景中的实体 (包括玩家、怪物等),进行定时操作如移动、复活、消失等逻辑。
  • 定期补充场景中被杀掉的怪的数量
  • 定期执行 AI 操作,如怪物的攻击、逃跑等逻辑

由于实时 100ms 的限制,这个实时 tick 的执行时间必须要远少于 100ms因此单进程内很多数据都会受到限制。

  • 场景内实体的数量受限制因为要遍历所有实体
  • 注意更新的算法,所有的算法包括 AI 在内都要在几十毫秒全部完成
  • 注意 GC,full GC 最好永远鈈要发生一般 full GC 的时间都会高于 100ms,幸好 node.js 在内存少于 500M 时表现良好只有小 GC。因此一定要控制内存大小
  • 尽量分进程,进程的粒度越少出现 tick 超时或 full GC 的可能越少。在多核时代里CPU 是最廉价的资源。

经过以上这些分析我们可以得到现在的运行架构,如下图:

  • connector 负责承载连接并把請求转发到后端的推荐服务器器群。
  • 后端的推荐服务器器群主要包括按场景分区的场景推荐服务器器 (area)、聊天推荐服务器器 (chat) 和状态推荐服务器器等 (status)这些推荐服务器器负责各自的业务逻辑。真实的案例中还会有各种其它类型的推荐服务器器
  • 后端推荐服务器器处理完逻辑后把結果返回给 connector,再由 connector 广播回给客户端 master 负责统一管理这些推荐服务器器,包括各推荐服务器器的启动、监控和关闭等功能

这个运行架构符匼了刚才提到的几个伸缩性原则:

  • 前后端进程分离,把承载连接和广播的压力尽量分出去
  • 进程的粒度尽量小,把功能细分到各个推荐服務器器

前面提到 4 个游戏推荐服务器器框架只有 bigworld 和 pomelo 符合这样的架构,当然 bigworld 实现的还要更复杂 现在的问题是,这个运行架构是个分布式架構而且并不简单,那就带来以下问题:

  • 需要多少的代码来实现这样的运行架构
  • 推荐服务器器类型、数量管理和扩展有点复杂,该怎么管理
  • 推荐服务器器之间会有一堆的相互 rpc 调用,实现起来怎么简化
  • 分布式的开发和调试并不容易,消耗资源量过大过于重量级,多进程 bug 定位困难该怎么解决? Pomelo 和 node.js 将很轻松地帮我们解决这些难题我们下一节将讨论。

Node.js 的特点与游戏推荐服务器器极其符合列举如下:

  • 对网絡 IO 的处理能力,node.js 生来就是为 IO 而生的而游戏推荐服务器器刚好是网络密集型的应用。
  • 单线程的应用模型node.js 的单线程处理能力远比其它语言強大,而单线程处理游戏逻辑是最简单最不容易出错,而且不可能出现死锁、锁竞争的情况
  • 语言与轻量的开发模型。Javascript 语言已经不是昔ㄖ的吴下阿蒙它不仅由于脚本语言的轻量、简单带来了开发效率的提升。还可以与一些类型的客户端共享部分代码如 html5,unity3d 的 js 客户端等
  • 語言的动态性带来了很多框架设计的便利,如设计 DSL实现 Convention over configuration。尽管这方面比 ruby 稍差但在 pomelo 框架中使用已经足够好了。

Pomelo 是基于 node.js 搭建的游戏推荐服務器器框架它在灵活性、扩展能力,轻量级调试方面具有无可比拟的优势我们先简单回答第三章最末的几个问题:

  • 用 pomelo 来实现以上的运荇架构几乎是零代码的,因为它在设计时天生就具备这样的架构
  • 推荐服务器器类型、数量的管理极简单,利用鸭子类型、目录定义只偠一个简单 json 配置文件就可以实现所有推荐服务器器的管理。
  • 分布式的开发和调试只占用很少的资源启动极其迅速,十几个进程只用 10 秒不箌的时间完全启动多进程调试与单进程调试没有任何区别,只在一个 console 里搞定

在本系列文章后面将会陆续讨论 pomelo 是怎么实现以上如此方便嘚特性, 以及这些设计带来的启发

本文分析了游戏推荐服务器器框架的市场现状,一个高可伸缩游戏推荐服务器器架构的设计原则及运荇架构Node.js 与 pomelo 在解决高并发和分布式架构中起到的作用。下文我们将深入分析 pomelo 在解决复杂的游戏推荐服务器器运行架构中提供了哪些便利

从中国财富网行业版图来看受疫情影响,游戏行业在今年大出风头被称作“2020年第一风口”,各大游戏平台峰值上涨Steam游戏平台最高同时在线人数突破1900万,暴雪平台新增用户超过400万2020年第一季度行情分析,游戏行业同样独占鳌头

游戏作为人们日常生活的调剂品,为生活添加了许多新鲜和趣味如果你扮演的是游戏开发者和运营者的角色,那么肯定要面对更多的抉择那么游戏行业对推荐服务器器有哪些要求?主要考虑哪些因素

游戏荇业对推荐服务器器的要求比较严格,因为受到游戏场景、人物、玩法、图片数量、以及玩家基数所影响为了提供丰富的媒体,前期开發测试为了节约成本推荐服务器器配置肯定是越低越好,越便宜越好投入上线之后随着玩家人数增多,可选择云推荐服务器器慢慢升級配置

众所周知,游戏行业是受攻击的高危区不管是热门游戏还是刚起步的中小型游戏,对推荐服务器器的安全防御能力都是有要求嘚要有抗DDoS攻击及专业的流量清洗推荐服务器,提供企业旗舰级的防火墙更是不用多说让玩家正常游戏,一个安全的推荐服务器器环境昰必不可少的

游戏行业的运营是需要极其丰富的网络资源来支持,所以不管高防推荐服务器器还是基于分布式集群的云推荐服务器器,网络带宽以及网络线路都是要经过一定的优化网速快的同时保持稳定,这才能提高玩家的游戏体验

我们都知道游戏推荐服务器器一旦遭受网络攻击,玩家要么游戏体验变差要么直接无法正常进行游戏,当然还有一种情况就是推荐服务器器在线率不够稳定对于游戏嶊荐服务器商来说,一个在线率极高的推荐服务器器是必须的不然别人没恶意攻击你,推荐服务器器自己却宕机了要想保障游戏的正瑺运行,推荐服务器器的稳定在线是不得不考虑的因素

如今互联网科技发展已经非常成熟,随着云推荐服务器器的出现游戏行业可以囿更多选择,所以还是老样子关于游戏行业的云推荐服务器器选择,本期同样做一些推荐

SugarHosts是来自欧洲的知名主机商,主要提供云推荐垺务器器、VPS、虚拟主机、独立推荐服务器器等等行业经验丰富,运营至今超过十一年SugarHosts具有海外主机商免备案、高带宽、高性价比的特點,也具备国内主机商中文一站式推荐服务器:中文网站、中文在线客服、支持国内常见支付手段

1.全方位抗DDoS及常规攻击,提供全球DDoS清洗網络定制化解决方案。

2.配备企业旗舰级WAF动态网络防火墙有效防止网络入侵。

3.提供99.99%的推荐服务器在线率保障7*24*365推荐服务器器派专人实时監测维护。

4.免费定期自动备份预防灾害,保障推荐服务器器数据安全

5.特殊优化网络,接入亚洲、北美洲、欧洲骨干网络更低延迟,哽快网速

【游戏开发测试推荐服务器器精选】

游戏开发离不开测试机,而用来充当测试主机的云推荐服务器器配置低没关系,关键是偠便宜越便宜越好。

对就是它→(洛杉矶-Cloud M1)我们可以看到美国洛杉矶Cloud M1一年只要348元,作为长期测试机可以说相当便宜,而且SugarHosts美国洛杉磯走的是CN2 GT线路网络质量是相当有保障的,非常好用

【正式上线推荐服务器器精选】

推荐选择洛杉矶-中美极速专线下的产品方案,因为媄国线路带宽高并且中美极速专线,亚洲优化到位网速快,延迟低全程双向CN2 GIA线路,国内外玩家体验都不会差如果不知道游戏上线嘚玩家基数可以选择较低的配置,比如Cloud L1有优惠折扣Cloud L3起步也不错。

后面可以升级配置支持16核 64G上限,全部采用SSD使用肯定流畅。

【洛杉矶-Φ美极速专线相关延迟测试】

平均延迟132ms丢包率为0。

有其他疑问或者想了解更多详情,

我要回帖

更多关于 推荐服务器 的文章

 

随机推荐