はじめに
このガイドでは、CookieClickerを最小化する (または他のウィンドウが完全に重なる) とゲームが止まってしまう不具合の直し方と原因を解説しています。
英語版の記事はこちら
The English version of this guide can be found here.
https://steamcommunity.com/sharedfiles/filedetails/?id=2701779641
手順
1. 以下のファイルを開きます。
Steam\steamapps\common\Cookie Clicker\resources\app\start.js
2. 画像のコードを探します。
2021/12/31時点では36行目にあります。
3. webPreferencesプロパティの先頭に以下のコードを追加します。
("false"の後ろのカンマも忘れずに!)
backgroundThrottling: false,
以下の画像のようになっていれば問題ありません。
保存後、CookieClickerを再起動することで、問題なく動作するようになるはずです。
不具合の原因
この不具合の原因はElectronのbackgroundThrottling (*1) によるもので、これがONになっているとバックグラウンドでの実行時にタイマー (setTimeoutやsetIntervalなど) が抑制されてしまいます。
具体的にはsetTimeoutが1秒間に最高1回、setIntervalが1分間に最高1回に制限されていました。(自身が検証した限りでは)
このタイマー (setTimeout) がゲームのメインロジックに使用されているため、backgroundThrottlingの影響を受けて1秒間に1回しか実行できなくなってしまった結果、ゲームが止まってしまう (極端に遅くなってしまう) という不具合が起こっていました。
なお、ドキュメントでは
If backgroundThrottling is disabled, the visibility state will remain visible even if the window is minimized, occluded, or hidden.と記載されています (*2) が、レンダラプロセスではvisibilityがvisibleで固定されることはなく、これまで通りEventListenerで変化を受け取れることができ、バックグラウンド時はCPU使用率が下がっていることを確認出来ているため、backgroundThrottlingをオフにすることによるパフォーマンス上の問題はないかと思われます。
*1: https://www.electronjs.org/docs/latest/api/browser-window#class-browserwindow
options -> webPreferences
*2: https://www.electronjs.org/docs/latest/api/browser-window#page-visibility
Source: https://steamcommunity.com/sharedfiles/filedetails/?id=2701810314
More Cookie Clicker guilds
- All Guilds
- How To Click A Cookie Like A Giga Chad
- Cookie Clicker Guide 672
- how to play cookie clicker
- Cookie Clickers Strangest Achievements and How to get them!
- grimorio: la guia para todo mago
- cookie clicker guide
- Speed Baking III | GUIDE & GAME SAVE
- Fastest Path to Sacrifice Garden
- True Never Click, NO clicks?
- HOW TO PLAY COOKIE CLICKER