Cookie Clicker Guide 304

Cookie Clicker Guide 304

はじめに

このガイドでは、CookieClickerを最小化する (または他のウィンドウが完全に重なる) とゲームが止まってしまう不具合の直し方と原因を解説しています。

英語版の記事はこちら

The English version of this guide can be found here.

https://steamcommunity.com/sharedfiles/filedetails/?id=2701779641

手順


Cookie Clicker Guide 304 image 6
Cookie Clicker Guide 304 image 7

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