Skip to content

Latest commit

 

History

History
150 lines (102 loc) · 4.92 KB

README.ja-JP.md

File metadata and controls

150 lines (102 loc) · 4.92 KB

Ks Game Launcher

GitHub release (latest by date) GitHub all releases KS Game Launcher

English

drawing

これは何?

コナステのゲームをワンクリックで起動するためのアプリケーションです。

動作、機能などの詳細はこちらのドキュメントを確認してください。

開発環境

OS: Microsoft® Windows™ 10 以上

必要ランタイム: Microsoft® .NET Framework 4.8

インストールが必要な場合は こちら からインストールしてください。

オプショナル

  • Docker

ビルド方法

Microsoft® Visual Studio、または MSBuild を用いてビルドすることができます。

NuGet

いくつかのNuGetライブラリを使用しています。

それらをインストールするためにNuGetから復元する必要があります。

nuget restore KsGameLauncher.sln

デバッグ

一部、サーバーからデータをダウンロードする機能があります。 これをシミュレートするために簡易WebサーバーとしてDockerイメージを同梱しています。

イメージのビルド

docker compose build

コンテナの作成、起動

docker compose up -d

サーバーはポート 8080 で起動します。 接続先 http://localhost:8080

ゲーム一覧となる appinfo.jsonhttp://localhost:8080/conf/appinfo.json となります。

コンテナの停止

docker compose stop

コンテナの削除

docker compose down

トラブルシュート

既存のポートと重複する場合は docker-compose.ymlservices.web.ports で変更してください。

処理フロー

起動

  flowchart TD;
      A([開始]) --> B{appinfo.jsonが存在するか};
      B -- ある --> E;
      B -- ない  --> C[サーバーからappinfo.jsonを取得];
      C ----> D{ファイルを取得/保存できたか};
      D -- Yes --> E[コンテキストメニューに\nゲーム一覧を表示];
      D -- No  --> F[コンテキストメニューに何も表示しない];
      E --> G([起動完了]);
      F --> G([起動完了]);
Loading

ゲーム起動フロー

  flowchart TD;
      subgraph 通常フロー;
        A([ゲームを選択]) --> B{アカウントの設定有無};
        B -- 済み --> C[アカウント情報読込];
        B -- まだ  --> D(['アカウントの設定が必要です'の表示]);
        C --> E{ログインセッションの確認\nログイン済み};
        E -- Yes --> F;
        E -- No  --> AA([ログインフローへ])
        F[ゲーム起動ページへリクエスト] --> G[ゲーム起動ページの読み込み];
        G -- ページの解析 --> H["「ゲームを起動」ボタンをさがす"];
        H --> I[ゲーム起動用カスタムURIを取得];
        I --> J[レジストリからゲームのパスを取得];
        J --> K[カスタムURIをパラメータに指定して\nlauncher.exeを実効];
        K --> L([完了]);
      end
      X([ログインフロー後]) --> F;
Loading

ログインフロー

  flowchart TD;
      Start([ログインフロー]) --> LoginScreen[ログイン画面を取得];
      LoginScreen --> ReqOTP{OTPが必要であるか};
      ReqOTP -- Yes --> OTP{{OTP入力ダイアログ表示}};
      ReqOTP -- No  --> SendLogin[認証情報を送信];
      OTP -- OTP入力 --> SendLogin;
      OTP -- キャンセル --> Cancel1([キャンセル処理]);
      SendLogin --> IsSuccess1{ログイン成功};
      IsSuccess1 -- Yes --> 2FARes{二要素認証が必要};
      IsSuccess1 -- No  --> LoginFail;
      2FARes -- Yes --> 2FA{{二要素認証入力ダイアログ表示}};
      2FARes -- No  --> Continue([ゲーム起動処理続行]);
      2FA -- コード入力 --> IsSuccess2{ログイン成功};
      2FA -- キャンセル --> Cancel2([キャンセル処理]);
      IsSuccess2 -- Yes --> Continue([ゲーム起動処理続行]);
      IsSuccess2 -- No --> LoginFail(['ログイン失敗'ダイアログの表示]);
Loading