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

Xsolla Launcher

Xsolla Launcherは、独自のゲームランチャーを持たないゲーム開発者や、品質や機能面でアップグレードしたいユーザー向けに設計されています。これは、配布ベースの内部および外部のユーザベースの収集と管理に役立ち、開発者には次の利点があります。

  • クラウド。Xsolla Loginを使用して、ゲームの進行状況やゲーム/ランチャーの設定をクラウドに保存可能。
  • 統合認証システムによるユーザーの認証と登録。Launcherは、ゲームの認証システムやXsollaのユニバーサル認証プラットフォーム(Xsolla Login)を使用可能。
  • ゲームとアップデートを、P2Pや任意のCDNを使用してエンドユーザーに配信。
  • マルチプラットフォーム。ゲームはPC、Mac、Linuxで起動可能。ランチャーは、スマートテレビ、コンソール、および他のエンターテインメントシステムでも利用できる。
  • プレイヤーは、Facebook、YouTube、Twitchなどのストリーミングプラットフォームにゲームをストリーミングできる。
  • プレイヤーはゲームのメインルームやゲーム内でチャットをすることができる。
  • ソーシャルネットワークで友人を招待し、成功を共有し、ニュースを再投稿できる。
  • ゲームは、ランチャーを通じてニュースとビデオをプレイヤーに配信できる。
  • プレイヤーはプッシュ通知を有効にすることができます。
  • プレイヤーは、ランチャーからゲームやゲームアイテムを購入することができる。
  • ゲーム開発者は、ゲームのためにリーダーボードを作成しカスタマイズできる。
  • ゲーム開発者はユーザーのデータ(OSのバージョン、DirectXのバージョン、ハードウェアの仕様など)を収集できる。
  • Steam対応。
  • ゲームデータのバイナリパッチ。

Xsolla Launcherの統合は、integration@xsolla.comまで、お問い合わせください。

インターフェースのカスタマイズ

カスタマイズできるもの:

  • 画像(アイコン、背景);
  • フォント;
  • インターフェースの色(背景、テキストなど)

必要なカスタマイズパラメータはすべて、ランチャーの実行フォルダにあるUIStyle.jsonファイルに格納されます。

画像の置き換え

画像はimgフォルダに保存され、アプリケーションセクション(Background、LoginWindowなど)でグループ化されます。

次のいずれかを実行できます。

  • 既定のイメージを元の名前に戻して置き換えるか、
  • 新しいイメージをimgフォルダに追加し、UIStyle.jsonで指定する。たとえば、“my_custom_bg_image.jpg”を背景として使用する場合は、画像ファイルをimg / LoginWindowフォルダに配置し、UIStyle.jsonを開いてlogin_windowオブジェクトに移動して置き換る "bg_image":"img/LoginWindow/login_background.png" with "bg_image":"img/LoginWindow/my_custom_image.jpg".

1xと2xサイズの2つのバージョンのイメージが必要です(4kディスプレイで使用する場合)。 2倍の画像には、(拡張子の前に)「@2x」という接尾辞(例えば、「login_background@2x.png」)が必要です。

フォントの置き換え

アプリで使用されるフォントはFontsフォルダにあります。レギュラー、ミディアム、ボールド、ブラックの4種類のフォントが用意されています。新しいフォントを使用するには、それらを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", ```

色は次の形式で定義できます。

フロントエンドのカスタマイズ

Xsolla LauncherはQt 5.8フレームワーク(ドキュメントを参照)に基づいています。 ランチャーのインターフェースは、Qtquick(ドキュメント)とQML(ドキュメント)に基づいています。

プロジェクトの構造

プロジェクトのフロントエンド全体は、ランチャーのルートディレクトリのqmlサブディレクトリにあり、アプリケーションの画面とコンポーネントに従って構成されています。各ウィンドウのディレクトリには、それぞれのウィンドウのインタフェースが以下のように記述されています。

ErrorReportWindow

アプリでエラーが発生するとポップアップします。

GameInstallwindow

ゲームのインストールパスを尋ね、必要なディスク容量を表示します。

LauncherUpdateWindow

アプリの起動時にポップアップし、ランチャーの更新の進行状況を示します。

LoginWindow

4つのファイルで定義された ログインウィンドウ:

  • 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接続を有効にする」チェックボックスなど)。

インターフェース

インターフェースディレクトリには、プロジェクト全体で使用されるコンポーネントが含まれています。

  • 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 - ファイルからすべてのURLを読み込み、処理し、インターフェースでの使用を可能にする。
  • UIStyleManager - UIStyle.jsonからスタイル定数を読み込み、それらをインターフェースで利用での使用を可能にする。

QMLは複数の種類もサポートしています:

  • LauncherUpdater - ランチャー更新用。
  • LoginHelper - ログイン用(ソーシャルネットワークの一覧を取得し、ログインとパスワードまたはソーシャルプロファイル経由でログインする)。
  • NewsReceiver - ニュースの取得用(通常とバナーベースの両方)。
  • BannersModel - 広告バナーの取得用。
  • SteamWorker - Steam ログイン用。

フロントエンド内で任意の数の新しいスクリーンとコンポーネントを追加して使用できますが、アプリケーション自体は上記の3つのみを開くことができます(WindowControllerを参照)。 未使用のQtモジュールを追加するときは、ファイルを配布フォルダに追加してください。たとえば、現在のバージョンでは視覚効果が使用されているので、QtGraphicalEffectsフォルダを配布パッケージに追加しました(Qt 5.8で利用可能なQMLモジュール一覧は、こちらを参照)。