Game distribution
=================

你已经跟着一两个教程 (en-US)做了一个 HTML5 游戏了——真棒 ! 这篇文章介绍了一些可以让你投放你的游戏的方式。包括自己建立网站，在公开的应用市场上线，或是发布到 Google Play 或 IOS 的 App Store。

HTML5 相较于传统的好处
--------------

用 HTML5 构筑游戏有许多好处，例如

### 多平台兼容

HTML5 本身是多平台的，所以你只需要写一种代码就可以适配不同的平台。从小型的智能手机和平板电脑，到笔记本电脑和台式电脑，再到智能电视，智能手表甚至是智能冰箱（如果它内置现代化浏览器的话）。

你并不需要数个开发小组去编写不同平台的代码，你们只需要维护这一种基础代码。你可以花更多时间去推广游戏 (en-US)和促进游戏收益化 (en-US)。

### 即时更新

你不需要花数日去上传你的游戏代码.。如果你发现了漏洞，你可以立即修复它，升级系统和在服务端上传代码以为你的用户更新游戏几乎都是即时的

### 直连，直玩

若是 HTML5 游戏，你无需让大家去应用商店搜索，只需要给他们 URL 链接即可，他们点击链接就可以直接玩游戏，而不需要使用第三方平台或是下载一个很大的安装包来安装游戏。不过你仍需考虑你的游戏的大小是否可能会让用户花一点时间来加载资源，以及你的游戏对网速的需求。总之，如果你把你的游戏按照你的设想构建，并且在开玩之前没有那么多弯弯绕绕，推广它还是很容易的

电脑还是手机？
-------

我们感兴趣的绝大部分流量——HTML5 游戏玩家——都来自移动设备，所以如果你真的想要成功，你就必须专注于这一点。手机端是 HTML5 真正发光发热的地方，那里没有 Flash，HTML5 便是全部。

要与 PC 端游直接竞争是很困难的，当然你也可以在 PC 端发布你的游戏（见下文的电脑平台）你也应该这么做，因为这可以让你的游戏支持的平台变得多样化，但谨记，电脑游戏的开发者拥有多年的经验，优秀的工具和稳定的发行渠道。许多 HTML5 游戏会与传统电脑游戏面向不同的受众市场。例如，简单的的小游戏比大型的沉浸式游戏更有人气，这类游戏通常设计成用两根手指，甚至一根手指玩，所以你可以拿着设备玩游戏，还可以用第二只手做你目前需要的任何事情。

话又说回来，电脑平台易于发行游戏，因为有许多好用的打包软件帮助你构造游戏的架构（见下文游戏打包），为你的游戏配置适应电脑端的控制器也是很不错的做法——即使你的游戏主要面向手机用户。用户可以在任何平台畅玩你的游戏，电脑端也应该是其中之一。此外，在电脑端先构建和测试游戏通常更为便捷，然后再到手机端测试 BUG

发布游戏
----

当你要发行游戏时，通常有三种主要的方式可供选择

* 自运营
* 发行商代理
* 上架商店

记住你的游戏名应该要足够独特，这样可以在发布之后迅速地推广 (en-US), 但也要同样朗朗上口，这样人们才不会忘记。

### 自运营

如果你是前端开发者，你应该已经知道要做什么了。一个 HTML5 游戏不过是又一个网站而已.。你可以将它上传到远程服务器，设置一个好记的域名，然后就可以自己开始运营游戏了。

如果你想从游戏开发中赚钱，你应该用多种方法保护你的源码，这样其他人不会轻易地取得你的源码并且拿去当成自己的去出售。你可以压缩和精简代码，让它变得更小，更难读，这样他人就不能轻易的复刻你的游戏。一个更好的方法是在网上发布测试版如果你打算打包你的项目并把它出售给 Steam 或者 iTunes。

如果你只是为了娱乐性质的话，开放源码可以让那些想要从你的作品中学习的人收益。你甚至不需要担心主机提供商，因为你可以在 Github 上托管游戏. 你可以有一个免费的主机，可控制的版本，以及可能的贡献者——如果这个项目足够有趣的话。

### 发行商和门户网站

顾名思义，开发商可以帮助你发行游戏，是否交给开发商则取决于你的游戏开发计划：你想在全平台发行么？或你只向购买了游戏的用户开放游戏？这都取决于你，考虑各个选项，试验和结论。你可以在游戏收益化这篇文章中得到更详细的关于发行商的解释。

这里还有许多独立的门户网站收集 HTML5 游戏，例如 HTML5Games.com, MarketJS.com, Clay.io, or Poki 你可以把你的游戏发布上去，它会得到一些自然的推广，因为这些网站吸引了大量的流量。一些网站会把你的文件放在他们的服务器上运营，而其他网站则只链接到你的网站或将你的游戏嵌入他们的网站，这样的曝光可能只是为你的游戏提供宣传，如果你的游戏旁边有广告 (或其他赚钱的选项)，它也可能为你的游戏提供收益化。

### 网络和应用商店

你也可以直接把游戏发布到不同的应用商店里，或者是应用市场，要做到这一点，你必须准备好并将其打包为针对你想要针对的每个应用程序生态系统的特定构建格式。见下文应用市场—多样化平台来获取更多关于应用市场的细节

应用市场—多样化平台
----------

让我们看看针对不同平台和操作系统的市场/商店有哪些可用选项。

**备注：** 这些是最流行的发行平台，但这并不是说这些是唯一的选择。你也可以尝试找到一个对口的平台，并直接向那些对你的游戏感兴趣的观众推广你的游戏。在这里，你的创造力至关重要。

### 网络商店

最适合 HTML5 的平台是基于 web 的商店。为它们准备一款游戏很容易，因为这样的操作几乎不需要修改游戏本身——通常在包含所有资源的压缩包中添加包含必要信息的清单文件就足够了。

* Firefox OS 是 HTML5 游戏的完美硬件平台，因为系统本身是用 JavaScript 编写的，而且是开源的。你可以快速访问控制硬件的核心应用程序，Firefox Marketplace 是推广你的游戏的好地方，你也可以更进一步，允许人们直接从网络上安装你的游戏。
* The Chrome Web Store 也是一个吸引人的选择——同样，准备好一个清单文件，压缩你的游戏并填写在线提交表单就足够了。
* Tizen 还高度重视支持用 JavaScript 编写的应用程序。他们的商店是另一个可用的选择。
### 手机应用商店

在移动市场上，iOS 版的苹果应用商店 (Apple App Store)、Android 版的谷歌 Play 以及其他竞争对手。原生商店中已经充斥着销售优秀游戏的成熟开发者，所以你必须具备足够的天赋和幸运才能获得关注。

* iOS App Store 很难进入，因为游戏必须满足严格的要求，你必须等待一到两周才能被接受。此外，它是最著名的移动商店，有成千上万的应用程序，所以很难从人群中脱颖而出。
* Google Play's 的要求不那么严格，所以商店被低质量的游戏污染了。由于每天提交的应用程序数量庞大，因此很难被注意到。在这里赚钱也更加困难——大多数来自 iOS 的付费游戏都是在 Android 上作为免费游戏发布的，盈利来自于应用内购买 (IAPs) 或广告。
* 其他面向 Windows Phone 或黑莓 (Blackberry) 等本土移动平台的商店也在努力分一杯羹，而且远远落后于竞争对手。在那里提交你的游戏是很好的，因为它会更容易被注意到。

如果你想了解更多关于不同类型的应用程序商店的信息，你可以在维基百科上查看手机软件发布平台列表。

### 电脑平台

为了扩大你的受众，你也可以使用 HTML5 游戏去占据电脑游戏市场——只要记住那些已经占据了大部分市场份额的 AAA 级游戏，并仔细考虑这是否适合你的策略。要正确的在电脑端运行，你应该支持所有三种操作系统:Windows、Mac OS 和 Linux。最大的电脑游戏商店无疑是Steam — 独立开发者可以通过 Greenlight 接触 steam. 请记住，你必须通过为不同的平台上传不同的版本来处理跨平台问题。

在你入驻 Steam 之后，便会有许多类似于Humble Bundle等项目的讨论，这些项目可以把最受欢迎的独立游戏能够呈现给更多人。不过，这更像是一个绝佳的促销机会，而不是一种赚大钱的方式，因为捆绑游戏的价格通常相当低。

打包游戏
----

网页是 HTML5 游戏的首选也是最好的选择，但如果你想接触到更广泛的受众并在封闭的生态系统中发行你的游戏，你仍然可以通过打包它来做到这一点。好在你不需要几个独立的团队在不同的平台上致力于同一款游戏——你可以一次性构建它，并使用像 Phonegap 或 CocoonIO 这样的工具为本地商店打包游戏。生成的包通常非常可靠，但是你仍然应该测试它们，并注意要修复的小问题或 bug。

### 实用工具

根据你的技能、首选框架或目标平台，可以选择多种工具。关键是为你的特定任务选择最好的工具。

* Phonegap —基于 Cordova，这是为本地平台构建/打包 JavaScript 应用程序最流行的工具
* CocoonIO — 为多个本地商店构建 HTML5 游戏的最流行的工具。它对画布上呈现的游戏有自己的性能优化，并支持许多游戏框架。
* Ejecta — 一个专门用于为 iOS 打包使用the ImpactJS框架创建的游戏的工具，由 ImpactJS 作者构建。它提供了与 ImpactJS 的无缝集成，但只支持一个框架和应用程序商店。
* NW.js — 这款游戏的前身是 Node-Webkit，它是开发适用于 Windows、Mac 和 Linux 的桌面游戏的首选。这些发行版与 WebKit 引擎打包在一起，可以在任何平台上提供呈现。

其他替代工具包括：

* Intel XDK — 一个很棒的的替代品，类似 CocoonIO。
* Electron — 或者叫 Atom Shell，是 GitHub 的一个开源跨平台工具。.
* Manifold.js — 微软团队的这个工具可以从 iOS、Android 和 Windows 创建 HTML5 游戏的本地发行版。
总结
--

发行游戏是让你的世界为世界所知的方式，选择很多，但没有上上策。当你发行了游戏之后，便是专注于推广的时候了——让人们知道你的游戏的存在。没有推广，它们甚至都可能不知道有这个游戏，更别说玩了。