启动器

启动器 是供游戏开发合作伙伴使用的可定制交付工具。该产品既可降低内容交付成本,又可集中管理虚拟货币、视频流等各种模块。其功能包括:

  • 商店销售虚拟和实体商品
  • 包含自定义UI和认证方法的内置登录管理器
  • 自定义启动器 UI
  • 在Windows上运行
  • 20种语言的本地化UI
  • 自动向用户交付启动器更新
  • P2P/CDN游戏交付和更新
  • 多游戏支持
  • 通过启动器购买游戏,并自动激活密钥
  • 可在艾克索拉发布商帐户中进行配置
  • 新闻和横幅管理
  • 社交网络好友
  • 游戏内好友列表
  • 用户可选择游戏区域
  • 协助合作伙伴侧对接:将游戏无缝集成到预集成的游戏平台

Note: 如已安装艾克索拉模块且希望集成启动器,请联系您的帐户经理。

集成过程

  1. 注册艾克索拉发布商帐户
  2. 创建项目。
  3. 设置启动器。
  4. 自定义启动器 UI。
  5. 生成启动器安装文件和编译版本压缩文件。
  6. 上传游戏编译版本到艾克索拉更新服务器。
  7. 将启动器安装文件发送给新用户。

创建项目

  1. 转到 项目 ,然后单击 创建新项目
  2. 在设置模式下:
    1. 添加 项目名称
    2. 设置游戏 网站 的链接。

Note: 发布商帐户中的每个项目都对应一个游戏。

设置启动器

在发布商帐户中创建一个启动器实例:

  1. 设置启动器名称。
  2. 选择UI语言。
  3. 选择一个预定义的登录管理器配置或通过发送名称来创建自己的配置。
  4. 添加一个或多个已在发布商帐户中完成设置的项目。

在发布商帐户中完成启动器设置后,请执行以下操作:

  1. GitHub存储库复制该启动器。
  2. 前往存储库副本的launcher/win文件夹,然后在config.json文件中指定对象的值。

示例

{
   "launcher_project_id": "8c91ecf3-e7b0-46a8-aaf7-4c419ef8ef4b",
   "login_project_id": "bd2e1104-5494-48f9-ac50-98f230062df1",
   "callback_url": "https://callback_url.com",
   "product_name": "Launcher",
   "link_support": "https://support_example.com",
   "link_community": "https://community_example.com",
   "default_p2p_enabled": true,
   "game_autoupdate": false,
   "hide_peer_seed_info": false,
   "hide_email": false,
   "build_number": 1
}

自定义启动器UI

要更改图片、字体或启动器的颜色主题,请执行以下操作:

  1. 前往存储库副本的launcher/win文件夹。
  2. UIStyle.json文件中指定对象的值。

示例

"error_window": {
  "bg_color": "#313131",
  "text_color": "white",
  "bottom_line_color": "white"
},
"error_report_window": {
  "bg_color": "#313131",
  "header_text_color": "white",
  "error_text_color": "white",
  "send_error_text_color": "#80FFFFFF",
  "bottom_line_color": "white"
},
"game_page": [
  {
    "game_id": 4,
    "bg_game_image": "img/Backgrounds/game_screen_bg.jpg",
    "version_text_color": "#7FFFFFFF",
    "social_text_color": "#7FFFFFFF"
  },
  {
    "game_id": 6,
    "bg_game_image": "img/Backgrounds/div_background.jpg",
    "version_text_color": "#7FFFFFFF",
    "social_text_color": "#7FFFFFFF"
  }
]

自定义启动器中的商店,请使用config.json

替换图像

可在 img 文件夹下找到启动器的图像,图像按其在启动器中的所属部分进行分组,例如Background、登录管理器Window等。如要添加自己的图像,请替换相应的文件或在该文件夹下添加新文件,然后更改 UIStyle.json 中的相应链接。

示例

要将my_custom_bg_image.jpg用作登录管理器小组件的背景,请执行以下操作:

  1. 将该图像放在img/LoginWindow下。
  2. UIStyle.json中,找到login_window对象,并将
  3. “bg_image”:“img/LoginWindow/login_background.png”更改为“bg_image”: “img/LoginWindow/my_custom_image.jpg”

Note: 可调整启动器使其适应4K屏幕,方法是:添加两倍大小的图像,并在其文件名和扩展名之间添加”@2x”,例如 login_background@2x.png

替换字体

启动器使用Lato Regular、 Medium、Bold和Black字体。字体文件位于 fonts 文件夹下。

要替换字体:

  1. 将新字体添加到 fonts 文件夹。
  2. UIStyle.json 的下列行中指定新字体的路径:

"fonts": {
    "regular": "fonts/Lato-Regular.ttf",
    "medium": "fonts/Lato-Medium.ttf",
    "bold": "fonts/Lato-Bold.ttf",
    "black": "fonts/Lato-Black.ttf"
}

示例

要将 Lato-Black.ttf 替换为 My_Own_Cool_Font.ttf

  1. My_Own_Cool_Font.ttf 添加到 fonts 文件夹。
  2. UIStyle.json 中指定 My_Own_Cool_Font.ttf 的路径,如下所示:

"fonts": {
        "regular": "fonts/Lato-Regular.ttf",
        "medium": "fonts/Lato-Medium.ttf",
        "bold": "fonts/Lato-Bold.ttf",
        "black": "fonts/My_Own_Cool_Font.fft"
}

更改颜色

启动器UI元素的颜色在 UIStyle.json 中按窗口和组件进行分组。如要更改元素颜色,请找到相应部分并编辑相应属性值。

可使用以下颜色格式:

  • SVG颜色。示例:”white”。
  • #RRGGBB。示例:”#F13900”。
  • #AARRGGBB。示例:”#40FFFFFF”。

示例

要将设置窗口的背景更改为红色:

  1. 打开 UIStyle.json 并找到 settings_screen 对象。
  2. bg_color 更改为 “bg_color”:“#FF0000”

自定义商店

要在启动器中自定义游戏商店,请在config.json中添加一组store对象。您可更改表中指定对象的值:

对象 描述
id 发布商帐户中的项目ID。
theme 商店颜色主题。可为’default’和’dark’。默认为’dark’。
size 商店中的元素大小。可为’small’、’medium’和’large’。默认为’large’。
view 商店中的元素位置(横向或纵向菜单)。可为’vertical_navigation’和’horizontal_navigation’。默认为’horizontal_navigation’。

示例

"store": { "id" : 12345, "theme" : "default", "size" : "large", "view" : "horizontal_navigation" } 

更改标准图标

要将启动器打开至某个特定的游戏页面,用户可在 开始 菜单中添加快捷方式。默认使用 img/GamesIcons 文件夹下的 defaultIcon.ico 文件作为快捷方式图标。

可通过以下方式之一更改该默认图标:

  • 在发布商帐户的项目设置中上传新图片。
  • 将新图标文件上传至 img/GamesIcons 文件夹。文件格式为 {publisher_project_id}.ico,其中{publisher_project_id}是您发布商帐户中的项目ID。

示例: 启动器图标 12345.ico,其中’12345’是项目ID。

如需对艾克索拉启动器中的商店进行完整自定义,请将UI素材包或设计资料发送给您的帐户经理。

生成压缩文件和安装文件

scripts/win/deploy.bat 脚本将生成:

  • 可发送给新用户的启动器安装程序;
  • 用于自动向用户交付更新的启动器编译版本压缩文件。

可通过以下方式启动 deploy.bat

  • 双击脚本文件。该操作将把编译版本放在项目文件夹副本下的 target 子文件夹中;
  • 通过添加--out {directory}从命令行界面中启动。{directory}为所需的编译版本安装路径。

示例

deploy.bat --out C:/Target

Notice: 安装文件需由SSH256证书确认的数字签名验证。可从以下任意证书颁发机构获得证书: Thawte、Verisign/Symantec、Comodo、Digicert。
Note: 需将生成的包含启动器编译版本的压缩文件上传到您的发布商帐户。

上传游戏编译版本

要将游戏编译版本上传到更新服务器,请使用上传助手命令行工具。

上传助手系统要求:

  • Windows 7/8/10 64位操作系统
  • 1.6 GHz CPU
  • 100 MB可用内存
  • 可用磁盘空间:1.5 x 编译版本大小

该工具接受以下参数:

  • --init — 初始化该工具
  • --update — 将游戏编译版本发送到服务器
  • --builds-list — 获取游戏编译版本列表
  • --descr {..} — 发送编译版本描述
  • --api-key {..} — 发送API密钥
  • --game-path {..} — 发送游戏编译版本的路径

要上传游戏编译版本:

  1. 打开发布商帐户 > 编译版本设置
  2. 复制API密钥。
  3. 下载并安装 上传助手
  4. 初始化该工具
  5. 上传游戏编译版本到服务器。
  6. 将游戏编译版本置于相应阶段。
  7. 设置游戏文件。

初始化上传助手

要初始化该工具,需传递之前复制的API密钥和游戏编译版本的路径:

> xbuild_loader.exe --init --api-key {..} --game-path {..}

Note: 如无需更改上述参数,则该工具只需初始化一次。

将游戏编译版本上传到服务器

要将游戏编译版本上传到服务器,请指明编译版本的路径:

> xbuild_loader.exe --update --game-path {..}

如初始化工具或上传前一个版本时已指定过该参数,则可跳过这一步。

首次上传时,更新服务器将接收整个游戏编译版本。之后,其将接收 上传助手 生成的补丁

将游戏编译版本置于相应阶段

游戏编译版本上传到服务器后,将在发布商帐户的项目设置 > 编译版本设置 > 编译版本列表中显示。

选择两个阶段之一以将游戏编译版本置为:

  • master:该游戏对最终用户可用;
  • test:该游戏仅对测试可用。

Note: 要测试游戏,请在控制台中传入--game_stage test参数来启动启动器。例如:launcher.exe --game_stage test

设置游戏文件

为确保启动器将正确的文件发送给用户,需先设置并初始化安装文件。

  1. 在发布商帐户中前往编译版本设置,然后转到游戏文件设置
  2. 输入游戏启动文件的名称和扩展名(例如:coolgame.exe)。
  3. 指定游戏安装路径。
  4. 添加启动游戏必需的所有可再发行包(例如,Microsoft Visual C++ 2017 Redistributable)。

启动器会向游戏发送下列参数:

  • --xsolla-locale {locale}:界面语言;
  • --xsolla-login-token {token}:艾克索拉 登录管理器 JWT(JSON Web令牌)
  • --xsolla-playfab-token {token}:PlayFab令牌。

启动器系统要求

为使启动器运行效果最佳,请采用以下推荐配置:

  • Windows 7/8/10 64位操作系统
  • 1.6 GHz CPU
  • 300 MB可用内存
  • 可用磁盘空间:180 MB
  • 最新版本的DirectX

高级诀窍

以下高级诀窍可帮助您使用 启动器 的一些高级功能:

常见问题

问: 如果我能够创建自己的启动器,为什么还要使用艾克索拉启动器?

答: 在开发的最终阶段或游戏完成之后,您肯定不想把资源耗费在创建自己的启动器上。

问: 艾克索拉启动器的费用是多少?

答: 启动器是一个增值服务产品,也就是说,艾克索拉标准费用中已包含启动器访问权限。如果要通过艾克索拉CDN来交付游戏和更新,则可能产生额外费用(0.01美元/GB)。但如果使用P2P负载均衡系统,平均可将该费用减少80%。

问: 游戏需要启动器保持运行才能正常工作吗?

答: 默认情况下,启动器将始终运行。启动器启动游戏后将隐藏在系统托盘中,因此不会占用大量资源。玩家可以关闭启动器进程,游戏将继续运行,因为实际游戏会话过程中不需要连接。

问: 这与Steam有何不同?又有什么相似之处?

答: 艾克索拉 启动器相当于Steam和游戏之间的一座桥梁。

问: 如果在Steam上发布游戏,能够从启动器下载所有内容吗?还是只将完整游戏和启动器上传到Steam,之后再从启动器获取额外更新?

答: 这两种方式启动器均支持。您可以将游戏的最新版本打包到启动器中,然后在Steam上分发,这种情况下用户无需另行下载(游戏交付 由Steam全权负责)。如需快速交付一个更新,则可使用启动器作为快速交付手段,而无需再将游戏打包到启动器并重新上传到Steam。选择哪种方式由您自行决定。

问: 开发者需要维护两个游戏版本吗,一个用于Steam,一个用于独立程序?还是只需将同一个版本上传到Steam?

答: 不需要两个版本。如果同时使用独立程序和Steam两种交付方式,启动器也可满足您的需要,它可将这两个平台的用户数据收集到一个数据库中。我们提供一个叫做“无缝注册”的功能,该功能允许在Steam中首次运行该游戏的新用户无缝通过注册流程,因为我们不会询问其任何信息;但同时他们也可访问您在Steam生态系统之外的官网,并使用 Steam OpenID 在官网进行登录,从而加入官方/中心化社区(例如在论坛上进行交流、发现新游戏、阅读新闻等)。

问: 我正在使用Steam工具,包括他们的启动器,也不用操心CDN费用。我为什么要冒这个风险?

答: 您可以在由Steam支付CDN费用的同时使用艾克索拉 启动器,并可以将您的游戏打包到启动器以在Steam分发。这不仅没有风险,而且好处很多,得益于启动器充分的可定制性,您可以采用您所希望的方式,借助启动器与您的活跃社群开展沟通。您还可以收集一批用户储备,从而在Steam生态系统之外接触这些受众,并与您的粉丝进行交流。

问: 你们有没有预集成启动器的CDN列表?要进一步集成,我是否需要联系CDN厂商?我能否使用列表以外的CDN?

答: 是的,艾克索拉提供一系列预集成的CDN,包括G-Core Labs、Akamai。您不需要联系艾克索拉启动器预集成的CDN厂商。如要使用其他CDN,请联系您的帐户经理。

问: 用Solid State Networks不行吗?

答: Solid State Networks的主要业务是CDN,所以他们的启动器解决方案并非为优化CDN费用而设计。

问: 启动器中是否包含IPC解决方案?

答: 目前没有IPC,因为启动器中没有需要使用IPC通信的功能。未来将会添加更多功能,例如直播视频流,以及浮层(overlay)中的游戏商店功能(要求IPC,通过SDK实现),因此我们有添加IPC的计划。

问: 艾克索拉启动器的用户可如何访问游戏?可通过订阅、优惠券或促销码等形式来分发游戏吗?

答: 目前用户只能通过兑换游戏密钥来访问游戏。

问: 如果艾克索拉启动器的用户未购买游戏密钥,可以下载游戏更新吗?

答: 不能。如果未购买游戏密钥,则无法访问游戏和游戏更新。

问: 有没有可通过P2P连接来连接同一局域网上的电脑的解决方案?这样数据可以只在该局域网内传输。

答: 暂时还没有此类解决方案。

问: 艾克索拉启动器支持不同访问级别吗?例如”alpha”用于测试,”beta”用于最终用户。

答: 是的,艾克索拉启动器可支持不同访问级别。上传游戏编译版本时,可选择两个阶段之一:test,用于测试;master,用于最终用户。如要使用stage=test阶段发布的游戏来启动启动器,请在控制台中传递--game_stage test参数。例如:launcher.exe --game_stage test

问: 艾克索拉启动器的游戏列表中会显示什么游戏?是显示所有添加的游戏,还是只显示用户已购买的游戏?

答: 该列表包含已添加到启动器的所有游戏。用户已购买的游戏会显示开始游戏按钮,其他游戏则显示购买按钮。

问: 特殊用户可以获得免费游戏密钥吗?怎样使用?

答: 可以,您可从发布商帐户下载游戏密钥,然后通过希望的方式免费发送给用户。这些用户可在启动器中激活其密钥。

问: 用户在启动器中完成认证后,可以自动在游戏中通过认证吗?

答: 可以,有一个自动进行游戏内认证的解决方案。--xsolla-login-token参数用于将用户数据从艾克索拉启动器发送到游戏。要获取用户数据,可解码该参数的值(请参阅高级诀窍)。

问: 可以将启动器的下载链接发送给用户吗?比如在游戏密钥激活说明中发送。

答: 游戏密钥激活说明中不包含启动器的下载链接。要单独发送该链接,请执行以下操作:

  1. 生成安装文件。
  2. 在发布商帐户的游戏密钥设置中,将该安装文件作为DRM Free(无数字版权管理)的分发包上传。
用户购买该游戏后,将获得该分发包的下载链接。