2022年3月にアップデートが配信されたDMMGamePlayerですが不具合まみれでゲームの起動に時間がかかったりログインし直さなかったりしなければなりません
今回は素早く起動できるようになるツールを開発したので紹介します
ちなみに、アプデするときなどのDMMGamePlayerのエラーはDMMGamePlayerを管理者で実行すればだいたい治ります
DMMGamePlayerのここがクソ
DMMGamePlayerでゲームを起動する際は管理者権限が求められます 管理者権限がなくても起動するのでよく分かりません もしかすると必要なゲームもあるかもしれませんが全てのゲームで権限が求められるのでクソです
DMMGamePlayerはゲームを直接起動することが出来ません Steamなどであればゲームのexeを直接実行してもゲームが起動しますがDMMGamePlayerでダウンロードしたゲームを直接実行するとログインする際にエラーが出てしまいます
新DMMGamePlayerでは数回に1度、ログインを求められます これが本当に面倒くさい ログイン情報を記憶するチェックボックスにチェックを付けてもすぐ忘れます
新DMMGamePlayerはゲームのショートカットを作成することが出来なくなりました DMMGamePlayer開発者は何を考えているのか分かりません
旧DMMGamePlayerで作成したショートカットを新DMMGamePlayerで実行すると起動にワンクリック余計な動作が必要になり不便 これではショートカットの意味がない 旧DMMGamePlayerではショートカットを実行するとゲームを起動することが出来た
旧DMMGamePlayerで作成したショートカットがタスクバーやステータスメニューに固定できない
DMMGamePlayerFastLauncherとは
上記のDMMGamePlayerの悩みを全て解決するツールです
なお出来るのは起動のみでゲームのダウンロードなどの機能はありません
DMMGamePlayerがインストールされていないと機能しません
また、ある程度PCの知識が必要になります と言っても書いてある通りにすれば簡単に導入することが出来ます
インストール
上のリンクにアクセスしてAssetsのDMMGamePlayerFastLauncher-Setup.exeをクリックしてダウンロードします
ダウンロード出来たら実行してインストールを完了させて下さい
WindowsによってPCが保護されましたと表示されたら詳細情報をクリックして実行をクリックして下さい
使い方(v4.0.0の記事なので最新版では参考になりません)
エクスプローラーやデスクトップで右クリックし新規作成、ショートカットの作成を選択
項目の場所を入力して下さいにダウンロードしたDMMGamePlayerFastLauncherのパスとproduct_idを入力
例
%AppData%\DMMGamePlayerFastLauncher\DMMGamePlayerFastLauncher.exe umamusume
%AppData%\DMMGamePlayerFastLauncher\DMMGamePlayerFastLauncher.exe priconner
product_idはゲーム別に割り当てられているidです ここで指定したproduct_idのゲームが起動するショートカットになります
目的のゲームのproduct_idが分からない場合、目的のゲームのproduct_idが分からない場合、%AppData%\DMMGamePlayerFastLauncher\tools\DMMGamePlayerProductIdChecker.exe を実行すると一覧で表示されます
%AppData%\DMMGamePlayerFastLauncher\sample にサンプル用のショートカットを置いています
項目の場所を入力し終わったら次へを選択して下さい
ショートカットの名前はなんでもいいです 自分にとって分かりやすい名前にして下さい
完了をクリックするとショートカットが作成できます
詳しい使い方はGithubをご覧ください
仕組み
初回起動時にElectron(Chromium)のCookieを保存しているDBをロードしログインに必要なTokenを取得しています
取得したTokenはDPAPIで暗号化され厳重に保存しています 新DMMGamePlayerのログインが不安定なのでこの処置を取っています これを行うことでDMMGamePlayerからログアウトしているときでもゲームが起動出来るようになっています
ゲームのインストール先もデータを保存しているファイルから取得しています
また、ゲームを直接起動する方法ですがゲームの起動引数にviewer_idとonetime_tokenが必要です
このツールでは標準出力から取得したログイン情報でDMMのAPIを叩いて取得しています 参考