从移动平台移植到 Facebook.com

The Web Games on Facebook and Facebook Gameroom platforms are no longer available for new submissions. This documentation is intended solely for developers with existing games. To learn more, read our blog post.

将游戏部署到网页意味着您可以快速频繁地迭代修改(无审核流程、无费用),而且能让网页游戏玩家始终连接到互联网并使用最新的游戏版本。推出网页版游戏可简化并加快测试、平衡和微调流程,如果您使用的是 UnityCocos2d-x 等跨平台游戏引擎,则可以将您学到的网页版经验运用到移动版本中,无需每次都重写代码。

本文档简要介绍了将游戏从移动平台移植到 Facebook 时需要考虑的事项。

为什么要在 Facebook.com 上发布游戏?

在网页平台和移动平台上,平均每月有 4.45 亿用户在玩与 Facebook 关联的游戏。其中许多玩家会直接在 Facebook.com 上玩游戏,所以这是一个可以让新玩家发现您游戏的好地方。

Facebook.com 上由 Madfinger Games 出品的《Dead Trigger 2》

我们简化了 Facebook 游戏的 Unity 部署,优化了 Unity 开发者的体验。为了支持您的游戏业务,我们的 SDK 支持 Facebook 平台功能,并提供值得信赖的 Facebook 支付的简单集成

对于 Cocos2d-x 开发者也是如此,我们已与 Cocos2d-x 团队开展合作,在 Cocos2d-x 引擎中为 Facebook 开放平台功能提供内置支持。如果使用 Cocos2d-x,玩家可以通过同一个代码库在网页平台和移动平台上分享内容和打造个性化的社交体验,享受极大便利。

托管游戏资产

很显然,移动版游戏与网页版游戏之间的一个重要区别就是网站。您需要安排将游戏二进制文件和资产托管到支持 SSL/TLS (https) 的网站服务器上,这样才能在 Facebook 上使用游戏。

请参阅 Facebook 游戏托管,了解最佳实践和入门信息。

优化加载时间

加载时间过长会降低玩家留存率。网页版游戏的优势之一就是便于发现和探索,玩家可以直接与游戏内容互动,无需安装游戏客户端或下载大量数据。如果新玩家遇到下载时间过长的情况,部分玩家还没等到下载完毕便会选择离开。为了尽可能留住玩家,应尽量提升游戏的加载速度。

缩减游戏大小

务必清除从未用过的和多余的游戏资产。尤其注意游戏中第三方代码和插件的数量,这些内容可能会显著增加最终的二进制文件的大小。此外,您还需要考虑将游戏会话开始时不需要的资产(例如关卡)移至外部资产,在后台或根据需要异步加载,以便缩减游戏大小。

如果您是 Unity 开发者,请查看 Unity 的资产捆绑包功能,或 WWW.LoadFromCacheOrDownload 方法。使用 CDN 将有助于分离游戏资产。另请参阅 Unity 入门指南,了解使用 Unity 部署 WebGL 的最佳实践。

衡量早期漏斗表现

使用有效的方法和成效衡量指标监控游戏的注册情况非常重要,这样做有助于确定流失率,并了解您对游戏的更改是否带来积极影响。通过记录整个安装漏斗期间的检测信号,您可以衡量加载时间的表现,并且有可能发现极端情况。

尽早记录加载漏斗期间的事件以及玩家开始与游戏互动时的事件,从而将成功加载与不成功加载分开。除了简单地记录检测信号,还应记录设备和浏览器统计数据(例如浏览器名称、浏览器版本和与这些事件相关的其他浏览器功能),以便确定与设备或浏览器相关的问题。这对于加载时间严重过长的游戏而言尤其重要,例如通过 Unity 或 Unreal 实现的 WebGL 游戏。

您需要尽早记录加载漏斗期间的首个事件,这一时间点远早于您在游戏代码内获得控制权的时间,请考虑向 index.html 顶部添加一个脚本标签以便发送该检测信号。下一个需要记录事件的关键点是游戏完成初始加载,玩家可以与游戏互动时。这两个时间点构成帮助您衡量加载过程中玩家流失率的最基本漏斗。您应记录这些事件之间和之后发生的其他与游戏相关的事件,以便进一步优化。

详情请参阅指南中的游戏成效衡量,其中包含关于 Facebook 应用事件的详细说明。

Facebook.com 上由 Zynga 出品的《王国传奇》(Castleville Legends) 的加载画面

输入设计

当然,台式机的用户界面、键盘和鼠标与移动设备上的触摸屏和陀螺仪稍有不同。您需要调整游戏,以便用户可以使用不同类型的界面来玩游戏。

请注意,举例而言,大多数用户玩第一人称射击游戏时,使用键盘和鼠标比使用触摸屏更易于操控,而在平板电脑上拖动元件比使用鼠标的效率更高。对于某些多人游戏而言,确保玩家仅在同类型的平台上对战较为合理。

用户界面设计

台式机显示器往往比手机屏幕大很多。此外,显示器的宽高比通常为 16:9 或 16:10。如果您之前将游戏设计为以 3:4 的纵向模式在 iPhone 4 上运行,则可能需要考虑调整该游戏的布局,以便更好地适应较大的可用空间,避免游戏画面出现垂直黑边。您至少可以考虑添加图片背景,以便充分利用可用空间。

对于用户界面的某些元素,若能针对台式机显示器重新设计,效果会更好。通过鼠标,玩家可以点击较小的用户界面元素,而在移动设备上玩游戏时可能无法轻触到这些小界面。例如,一个很长的菜单系统在移动设备中要分多个画面显示,但您可以将其放到台式机显示器的一个画面中。这种做法能让用户界面更加清晰,更易使用。

Rumble Entertainment 出品的《KingsRoad》针对桌面设备优化的用户界面

使用 Facebook 支付

Facebook 游戏需要使用游戏专用 Facebook 支付。Unity 开发者可以使用 Unity SDK,此 SDK 可为适用于所有 Facebook 游戏的同一种强大支付 API 提供原生支持。Cocos2d-x 开发者可以执行具体调用,以便在 Facebook.com 上启动支付流程。

您需要为游戏中每个可供购买的商品定义商品对象。每个对象都需要有至少以一种货币定义的价格。Facebook 会自动向全球玩家提供外币价格。但是,您可以选择扩展商品对象,用多种货币定义价格,从而向全球玩家展示精心选择的价格。

此外,您还需要设置服务器,以便发生交易时可以收到相关通知。Facebook 支付实现指南介绍了所需的步骤。