纸桶厂家
免费服务热线

Free service

hotline

010-00000000
纸桶厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

分享节省游戏内容数字传输成本的方法

发布时间:2020-02-11 07:06:40 阅读: 来源:纸桶厂家

如今的游戏开发者在数字传输平台上拥有了更加广泛的选择。当一款游戏过大时,开发者便需要使用一种与配送服务不同的资源去传输其中的某些内容。而对于那些不熟悉网页开发的人来说,这便是一个全新的领域。

所以我将通过本篇文章详细阐述如何在网页上传输游戏内容。亲自发行自己的数字资产对开发者来说非常有帮助,因为这能让你更好地取悦用户。

当提到数字传输时,我们总是需要考虑两大主要元素,即时间和金钱:时间是指用户下载内容并开始游戏的过程中所花费的时间,而金钱则是指开发者在传输位体时所花费的金钱。并且这两大元素相互联系。

Cloud-Computing

衡量时间的成本:带宽和延迟

我们都知道用户讨厌过长的加载时间,这也很大程度地制约着一个网站的成败。为了更好地理解这一问题,我们将着眼于有关下载时间(从全世界的服务器到圣何塞的图书馆内的一台公共电脑)的速度测试结果并对此进行分析。

基于标准的下载速度,以下是不同地区的服务器在下载1GB内容所需要的时间:

data

基于服务器所处的不同地区,传输相同数量的数据将会花费7分钟至3个小时不等的时间。为什么会出现下载时间多样性的情况?为了搞清楚这一问题,我们首先需要考虑两个元素:带宽和延迟。

带宽是指在特定时间内能够进行传输的信息量。我们可以通过从一个位置传输一个数据包到另一个位置所需要的时间进行测量。开发者对于带宽具有一定的控制权(如能够压缩数据包的大小或传输数据包的数量),但是最终带宽还是受控于用户与传输服务间的基础设施,并且每个服务协议都拥有它们各自的互联网服务提供商(ISP)。

举个例子来说,ISP将够提供给用户不同的带宽服务层面,或者将基于每日使用限制去控制带宽的大小,而与用户平台的最终连接也将影响着带宽的传输(注:例如缓慢的网络连接便是一大限制因素)。

延迟是关于测量系统中的时间拖延。在网络术语中,延迟总是与往返时间(RTT)联系在一起,因为这是关于两点之间的传输,所以我们能够很轻松地进行测量。我们可以将RTT作为一个从目标上反弹并回到发射器上的声音。Unix的ping指令便是基于这一原理。

作为开发者,你总是很难去控制延迟。你只能通过算式而得知延迟所需要的费用,但是关于发射器与接收器之间的实体距离以及光速等元素都让你很难真正理解RTT。也就是一个特定媒介(如铜线或电缆)所连接的两个点的实体距离影响着数据的最终传输速度。

你也许认为通过购买更快速的带宽连接便能够确保内容的快速传输。如果你清楚用户的具体位置并确保他们不会到处移动,这一方法便非常有效;但是就像Ilya Grigorik所指出的,关于延迟的改进将更大程度地影响着下载时间,而非带宽的完善。

降低延迟率的最简单也是最普及的一种方法便是基于网络加速器(CDN)而缩短用户与内容服务器之间的距离。

基于位置而缓解延迟问题

CDN将通过复制并在世界各地的数据中心保存你的数据而减少从全球任一点获取一个文件所需要的时间。举个例子来说,我最初在圣何塞的CDN服务器上传了一份文件,而来自北京的用户则可以通过中国的服务器接受这一文件。

当你在使用CDN时,你便可以利用网络结构的一大基本功能:互联网的核心便是一个缓存数据的层面。YouTube便是个典型的例子。当你上传了一个视频后,它将被分散到世界各地的YouTube数据中心,从而避免了从原始数据中心面向任何未知位置传输文件所需要的高额成本。Google Cloud Storage便是基于这一原理——在需求较高的区域同时设置多个中间缓存。例如在巴黎便具有2个附加数据中心。

Google Cloud Storage

你也许不知道网络中还隐藏了另一种效能:为了在之后进行更快速的检索,客户端机器总是会对数据进行缓存,而ISP也会在面向终端用户传输数据前对其进行缓存——这么做能够确保位体更接近用户并最终达到降低数据传输成本的作用。

基于技术而缓解延迟问题

一些CDN提供了能够加速传输速度的高级传输协议。Google APP Engine便支持SPDY协议——旨在缩短延迟时间并克服客户端中并发连接受限的情况。

CDN还能够确保数据访问的灵活性。Google Cloud Storage便支持跨源资源共享(CORS)以及访问控制列表(可用于编写脚本)。而这些工具能够帮助你明确最佳内容间隔,并基于特定用户类型而匹配特定资产。Google APP Engine便可以用于编写脚本。编写脚本能够帮助你提高在线资源的安全性,例如编写能够察觉到任何可疑行为的代码,如来自多个客户端对于某一资产的连续请求。

使用CDN能够帮助你面向世界各地的用户更有效且更安全地传输数据。

关于手机内容的传输

除了延迟和下载速度外,手机网络还存在着不同的问题。Ilya Grigorik对此做出的解释:

“手机网络是一个完全不同的领域,但是在这里情况并没有好转。如果你足够幸运的话,当你打开收音机,并且网络和信号均保持稳定时,你便只需要花费50至200毫秒便能够连接到网络骨干。而基于这一连接时间而乘以2便是手机上的RTT范围(即100至1000毫秒)。

以下是来自Virgin Mobile(注:隶属于美国第四大无线通讯运营商Sprint)的一些常见网络问题:Sprint 4G网络的用户希望能够体验到3Mbps至6Mbps的下载速度,以及基于150毫秒延迟时间的1.5Mbps的上传速度。在Sprint 3G网络中,用户则希望体验到600Kbps 至1.4Mbps的下载速度以及350Kbps至500Kbps 的上传速度,并且平均延迟时间为400毫秒。

更糟糕的是,如果你的手机出现了停顿或收音机中断的情况,你便只能增加额外的1000至2000毫秒的时间去连接无线电线路。”

所以任何手机开发者在试图提升数据传输速度时都必须考虑到这些问题。并确保你的流系统和压缩系统都能够补偿这些额外的负担。

内容传输的现金成本

为了使用CDN,你需要投入一定的金钱。例如Google Cloud Storage每次传输所收取的费用便为0.12美元(这是关于每个月首个1太字节数据传输的费用)。

让我们以例子进行说明。假设你的游戏平均每个月拥有340万的独立用户。你的游戏内容为1GB,而Google cloud storage每次传输收取的费用为0.085美元(每月能够传输0.66拍字节),那么你每天便需要为此投入9633美元。

所以为了保持收支平衡,你每天必须从每个用户身上赚取0.002美元才能继续传输更多内容。而如果你每个月能够获得340万名用户,你便很容易做到这一点。

但是不得不承认的是这些数字都是不现实的;你根本不可能每天面向340万名独立用户提供1GB的内容。如此估算,只需要几个月的时间世界上所有人都能够看到你的内容——所以这并不能算是一种长期的方法。

明确所需要的时间和成本便是成功的一半

当你清楚资产传输所需要的时间和成本,你便能够规划接下来的任务了。

只传输用户需要的内容

直到现在我们仍然在假设每个用户在开始游戏时都需要1GB的内容,但这却大错特错。事实上,用户只需要一个数据子集便能够开始游戏。基于分析,你将发现我们总是能够快速传输那些初始数据,所以用户总是能够快速进入内容体验,而剩下的数据将会默默地流向幕后。

让我们举个例子来说,如果用户从一个网站或数字软件商店中下载了首个20兆的内容,他们能否立刻开始体验游戏内容或在之后获得剩下的内容?需要经历多长时间他们才能接触到下一个20兆的内容?那下个400兆的内容呢?CDN是否能够更快或更灵活地传输后续内容?优化这种使用方法将能够减少加载时间以及总体的传输成本,并加强产品的易用性和实惠。

确保用户能够接收到更新内容

在现在的游戏开发世界中,同时运行于多个不同的平台已经不是件新鲜事了。所以当你的内容能够进行更新时,你便需要花点时间去确保所有用户都能够接收到新内容。

假设你已经对游戏服务器进行了更新,但是有些玩家却不能与之保持同步,如此你的AQ测试员便会遇到像“OMG th1s g4m3 duznt werk!”等漏洞。控制应用的更新过程与时间具有很大的好处——尽管有时候更新逻辑是受控于操作系统,并且完全不受你控制。你必须确保所有用户都将清楚你的应用何时进行更新,并能够第一时间获得这些更新内容。

大多数应用都将包含一些平台所特有的资产。例如,受硬件支持的纹理压缩格式在不同平台上也各不相同,你便需要在手机上运行一个低分辨率模式的单独层面,或者某些内容在不同区域中也各不相同。而当任何资产发生改变时,与之相关联的更新也必须随之发生改变。如果你能够基于平台或区域去划分你的内容,你便能够更好地控制更新时间,更新对象以及传输内容了。

进一步发展

老实说,我们在此所讨论的所有传输策略并不是针对于每一个人。如果你的应用小于10兆,你便不需要分割你的资产或脱离主要的传输点去传输内容。

而如果你的应用较大,你便应该理解传输游戏的数字资产到底需要花费多少成本,以及你该如何去压缩这些成本和及用户成本。除此之外你还必须掌握传输策略是如何减少加载时间并避免更新所引起的各种问题。通过把控内容传输,你便能够有效地节约成本并提高终端用户的体验质量了。

中山代理记账哪家好

广州代理记账网

中山注册公司服务

广州工商税务代办公司