The following documentation was deprecated. Current version is available at developers.xsolla.com

Xsolla Launcher

Xsolla Launcher适用于没有自己的游戏启动器的开发者或希望升级游戏启动器质量和功能的开发者。它可以帮助在分发平台内外收集和管理用户资料库,并为开发者提供以下功能:

  • 云服务。使用Xsolla Login可将游戏进度和游戏/启动器偏好设置存储在云中;
  • 通过统一认证系统进行用户认证和注册。启动器可使用游戏的认证系统和/或Xsolla的通用认证平台(Xsolla Login);
  • 可通过点对点和/或CDN向终端用户分发游戏和更新;
  • 多平台。支持在Windows、Mac和Linux上启动游戏;此外,启动器还可在智能电视、游戏控制台及其他娱乐系统中使用;
  • 玩家可在包括Facebook、YouTube和Twitch在内的所有流平台流式播放游戏过程;
  • 玩家可在游戏的主准备厅或在游戏中进行聊天对话;
  • 可在社交网络中邀请朋友、分享胜利或转发新闻;
  • 可通过启动器向玩家发送新闻和视频;
  • 玩家可启用推送通知;
  • 玩家可从启动器购买游戏及游戏中的物品;
  • 游戏开发者可创建并自定义游戏排行榜;
  • 游戏开发者可收集用户数据(例如操作系统版本、DirectX版本、硬件规格等);
  • 兼容流处理;
  • 为游戏数据打二进制补丁。

要集成Xsolla Launcher,请联系t integration@xsolla.com

Xsolla Launcher UI定制

您可自定义:

  • 图像(图标、背景);
  • F字体;
  • UI颜色(背景、文本等)。

所有必需的自定义参数均存储在UIStyle.json文件中,该文件位于启动器的execution文件夹内。

替换图像

图像存储在img文件夹中,并按应用部分(Background、LoginWindow等)分组。

您可以选择:

  • 替换默认图像但保留其原始名称,或
  • 添加新图像到img文件夹,并在UIStyle.json中指定该图像。 例如,如果要使用“my_custom_bg_image.jpg”作为背景,请将该图像文件放在img/LoginWindow文件夹,打开UIStyle.json,找到login_window对象,然后将"bg_image": "img/LoginWindow/login_background.png"替换为"bg_image":"img/LoginWindow/my_custom_image.jpg"。

请注意,图像必须有1x和2x大小的两个版本(用于4K显示)。2x图像必须有“@2x”后缀,例如“login_background@2x.png”。

替换字体

应用使用的字体存储在Fonts文件夹中。 有四种字体可用:常规(Regular)、中等(Medium)、加粗(Bold)、加黑(Black)。 如要使用新字体,请将其放在Fonts文件夹,并编辑 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.fft,请将后者放在Fonts文件夹,然后将UIStyle.json中的上述几行更改为:

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

更改颜色

所有颜色都在UIStyle.json中定义并按屏幕和组件分组。 要更改组件的颜色,请在该文件中找到该组件,然后替换相应属性。 例如,要更改设置屏幕上的背景颜色,请: 打开UIStyle.json,找到settings_screen组件以及其中的bg_color属性。将颜色更改为红色:

``php "bg_color": "#FF0000", ```

颜色可使用以下格式进行定义:

  • SVG (请参阅 颜色名称列表), 如 "white";
  • #RRGGBB, e.g. "#F13900";
  • #AARRGGBB, e.g. “#40FFFFFF”.

Xsolla Launcher前端定制

Xsolla Launcher基于Qt 5.8框架(请参阅文档) 启动器界面基于Qtquick (文档) 和QML (文档)。

项目结构

整个项目前端位于启动器根目录的qml子目录中,并按照应用的屏幕和组件进行组织。各窗口目录对相应窗口界面的描述如下。

ErrorReportWindow

应用出现错误时弹出。

GameInstallwindow

弹出游戏安装路径的提示,并显示需要的磁盘空间。

LauncherUpdateWindow

应用启动时弹出,并显示启动器更新进度。

LoginWindow

登录窗口,在四个文件中定义:

  • BasePart.qml — 登录窗口主体(输入字段、登录按钮、社交网络列表);
  • SocialList.qml — 包含社交网络列表的屏幕;
  • ErrorWindow.qml — 自定义错误窗口(例如,“未找到用户”);
  • LoginWindow.qml — 在BasePart和SocialList间切换的窗口。

MainWindow

应用的主窗口及其组件:

  • MainWindow.qml — 主窗口本身,控制页面的显示(如游戏、新闻等)。
  • LoginContextMenu.qml — 下拉菜单;
  • GameComponent.qml — 游戏页面;
  • NewsWindow 目录:
    • NewsScreen.qml — 新闻页面;控制子屏幕的显示(全部/单个新闻项)
    • BannerNewsComponent.qml — 新闻轮播;
    • NewsListComponent.qml — 全部新闻的列表;
    • OneNewsScreen.qml — 具体新闻项;
  • GameWindow 目录:
    • HorizontalListView.qml — 横幅列表;
    • AdvertisingBanner.qml — 横幅列表元素。 如果元素包含多个横幅,横幅将自动滚动。

SettingsWindow

SettingsWindow.qml — 设置窗口(语言下拉列表和“记住语言”及“启用P2P连接”复选框)。

UI

UI目录包含在整个项目中使用的组件:

  • ComboBox.qml — 带滚动条的下拉列表(见下一条);
  • MyScrollBar — 在ComboBox中使用的自定义滚动条;
  • OrangeButton — 按钮;
  • ProgressBar — 带文本的进度条,用于游戏、新闻及其他应用屏幕。
  • TextLabel — 标题;用于主窗口的页面切换标题。
  • TransparentButton — 按钮;
  • TransparentTextField — “密码”模式下使用圆点替换字符(用户单击输入框右侧的一个图标可切换为普通文本)。

整个前端基于C++,只能通过重新编译项目更改。 全局WindowController对象使用以下方法控制窗口间的切换:

  • void openLoginWindow() — 打开 qml/LoginWindow/LoginWindow.qml;
  • void openUpdateWindow — 打开 qml/LauncherUpdateWindow/LauncherUpdateWindow.qml;
  • void openMainWindow() — 打开 qml/MainWindow/MainWindow.qml;
  • void exit() — 关闭当前窗口。该方法用于更快地关闭窗口,因为部分Windows版本(尤其是Windows 7)在正在加载游戏数据时关闭窗口会导致窗口冻结
  • void move2top() — 将当前窗口移动到窗口堆栈的顶部(目前用于社交网络登录)。

以下全局对象在QML中可用:

  • LauncherManager — 主对象;实现用户界面中的业务逻辑;
  • Settings — 存储应用设置。
  • UninstallManager — 删除游戏数据。
  • UrlManager — 从api_constants文件加载并处理所有URL,并使其在UI中可用;
  • UIStyleManager — 从UIStyle.json加载样式常量并使其在UI中可用;

QML还支持以下几种类型:

  • LauncherUpdater — 用于更新启动器;
  • LoginHelper — 用于登录(检索社交网络列表,并通过用户名和密码或社交个人资料进行登录);
  • NewsReceiver — 用于检索新闻(普通的和基于横幅的新闻);
  • BannersModel — 用于检索广告横幅;
  • SteamWorker — 用于Steam登录;

您可以在前端中添加及使用任意数量的新屏幕和组件,但应用本身只能打开上述三类(请参阅WindowController)。 添加之前未使用的Qt模块时,请务必将它们的文件添加到distribution文件夹。 例如,如果当期版本使用了视觉效果,应将QtGraphicalEffects文件夹添加到distribution包(单击此处可查看Qt 5.8中可用的QML模块列表)。