Code Monkey home page Code Monkey logo

ksgamelauncher's Introduction

Ks Game Launcher

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

Japanese (日本語)

drawing

What is this?

This is an application to start the BEMANI for Konaste (コナステ) with one click.

Please check this document for details such as operation and functions.

Development Environment

OS: Microsoft® Windows™ 10 or later

Required runtime: Microsoft® .NET Framework 4.8

Optional

  • Docker

How can I build this

You can build on your machine with Microsoft® Visual Studio or MSBuild

NuGet

We are using some NuGet libraries.

You need to run the following command to install from NuGet.

nuget restore KsGameLauncher.sln

For debugging

A part of features will be download the data from the server. To simulate this, we have included a Docker image configuration file for the simple web.

Build image

docker compose build

Create a container, and start

docker compose up -d

Server will start on port 8080 Connect to http://localhost:8080

appinfo.json will be put on http://localhost:8080/conf/appinfo.json.

Stop the container

docker compose stop

Remove the container

docker compose down

Troubleshoot

If it overlaps with an existing port, change it with services.web.ports in docker-compose.yml.

Process flow

Start up

  flowchart TD;
      A([Start]) --> B{Is appinfo.json already exists?};
      B -- Yes --> E;
      B -- No  --> C[Get appinfo.json file from the server];
      C ----> D{Can I get and save it to disk?};
      D -- Yes --> E[list games in context menu];
      D -- No  --> F[No content in context menu];
      E --> G([Finish startup]);
      F --> G([Finish startup]);

Launch the game

  flowchart TD;
      subgraph Normal flow;
        A([Choose the game]) --> B{Is the user account already set up?};
        B -- Yes --> C[Load account information];
        B -- No  --> D([Display dialog notifying 'Account settings required']);
        C --> E{Check login session\n Already login ?};
        E -- Yes --> F;
        E -- No  --> AA([Go to login flow])
        F[Send request to launche the game] --> G[Load the game launch page];
        G -- Parse page --> H[Find 'Launch the game' button];
        H --> I[Get custom URI for launch the game from the button];
        I --> J[Find installed game path from registry];
        J --> K[Run launcher.exe with custom URI parameters];
        K --> L([Finish]);
      end
      X([After login]) --> F;

Login flow

  flowchart TD;
      Start([Login flow]) --> LoginScreen[Send request to login screen];
      LoginScreen --> ReqOTP{Required OTP ?};
      ReqOTP -- Yes --> OTP{{Display OTP dialog}};
      ReqOTP -- No  --> SendLogin[Send request with credentials];
      OTP -- Input OTP --> SendLogin[Send request with credentials];
      OTP -- Cancel --> Cancel1([Cancel process]);
      SendLogin --> IsSuccess1{Succeed login ?};
      IsSuccess1 -- Yes --> 2FARes{Require 2FA ?};
      IsSuccess1 -- No  --> LoginFail;
      2FARes -- Yes --> 2FA{{Display 2FA input dialog}};
      2FARes -- No  --> Continue([Go to launch process]);
      2FA -- Input 2FA --> IsSuccess2{Succeed login ?};
      2FA -- Cancel --> Cancel2([Cancel process]);
      IsSuccess2 -- Yes --> Continue([Continue launching process]);
      IsSuccess2 -- No  --> LoginFail;
      LoginFail([Display dialog 'Failed to login']);

License

FOSSA Status

ksgamelauncher's People

Contributors

anon5r avatar fossabot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

fossabot

ksgamelauncher's Issues

[bug] ゲーム起動時にエラーメッセージが表示され、ゲームが起動できない

現象 What happend

ゲーム起動時に エラーメッセージが表示され、ゲームが起動できない。
その後も「アカウントIDまたはパスワードが異なります」と表示され、続行不可能になる。

Could not be launched the game. then the message "Incorrect username or password" in the dialog is shown, and could not be continued.

スクリーンショット screenshots

スクリーンショット 2022-07-28 021928

スクリーンショット 2022-07-28 021952

言語リソースファイルを含める

言語リソースファイルはILMergeでマージされておらず、外部ファイル化されているままとなっている。
Exe単体で実行するとデフォルト言語(英語)となってしまう。
日本語対応させるには ja-JP\ksgamelauncher.resources.dll というパスで当該ファイルが存在しないと日本語化されない。

言語ファイルも単体exeファイルにまとめられるようにする

ワンクリックショートカット起動

ショートカット経由でワンクリックで起動できるようにする

実装方法

  • インターネットショートカットを作成する、または書き換える
  • カスタムURIスキーマでの起動を実装
  • カスタムURIスキーマを解析し、特定のゲームを直接起動できるようにする
  • 通常モードとは起動方法を異なる形として、アプリケーションのUIを表示しない

追加される機能

  • カスタムスキーマ機能対応
  • カスタムスキーマの登録
  • カスタムスキーマの解除
  • ショートカットの作成機能
  • ゲームの直接起動機能

ゲームの直接起動モードと設定の追加

公式ランチャーをスキップし、ゲームの直接起動を行えるようにする。
起動モードはオプションで変更可能とする。

ゲーム起動のためのパス情報を appinfo.json に追加するか、あるいは自動検出できるようにする。

新規ゲームの追加画面

新規ゲームをユーザー側で簡単に追加できるようにする。

ゲームインストール後にデスクトップに作成される「インターネットショートカットファイル」をフォームにドラッグドロップすると、情報を読み取ってローカルのappinfo.jsonに書き込む。

ゲームリストをリロードし、ランチャー起動できるようにする。

ログイン情報の保存について

ログインアカウントを保存する方法、および場所について考慮する

ログイン情報は アカウント名パスワード とする。

初期段階ではワンタイムパスワードの有無についてはいったん考慮せず、別途実装する。

Does not support 2 Factor Authentication

Signing in with an account with email 2 Factor does not work. A code is sent to the email but there is no way to enter it in the app.
A workaround is to disable 2FA on the account, then sign in and launch a game. Afterwards, reenable it. However this must be done every time you want to play.

Login issue

Cannot start all games from the launcher

Konami has been changed login UI and URL since Oct. 31th 2022.

» ログイン画面変更のお知らせ
Therefore launcher could not be launch any games.

In current version (-v1.0.3), launcher cannot support new login UI.

login_new

Also, should be support to login for their CAPTCHA.

メニューが消えないバグ

現象

コンテキストメニューが消えない

再現手順

  1. タスクトレイのアイコンを左クリックまたは右クリック
  2. コンテキストメニューが表示される
  3. デスクトップやほかの部分をクリック
  4. ほかのアプリであればコンテキストメニューが消えるが、いつまでたっても消えない
  5. 右クリックしなおすなどして、コンテキストメニューのいずれかの項目をクリックしないと消えない

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.