Посібник 6 — Збереження рекордів і налаштувань
Файли гравця потрапляють у теку var/ гри на комп'ютері та в сховище браузера
(IndexedDB) у вебі: код той самий.
// найкращий рахунок
$best = $this->engine->storage->readJson('scores.json', ['best' => 0]);
if ($this->score > $best['best']) {
$this->engine->storage->writeJson('scores.json', ['best' => $this->score]);
}
// налаштування (зберігаються одразу)
$difficulty = $this->engine->options->get('difficulty', 'normal');
$this->engine->options->set('difficulty', 'hard');
Коли гравець залишає сторінку або закриває вікно, подія close дає змогу зберегти стан:
$this->engine->lifecycle()->on('close', fn () => $this->engine->storage->writeJson('partie.json', $this->state()));
Ніколи не читайте файли гравця під час збірки: тека var/ не публікується.