Твоя гра
Як зберегти прогрес гравця у грі HTML5
Додай набір klyo до файлу index.html, виклич klyo.save.get на старті гри та klyo.save.set після кожної важливої зміни. Прогрес зберігається на сервері klyo і йде за гравцем з акаунтом на кожен пристрій, а перед публікацією ти перевіриш його в попередньому перегляді в студії.
Перш ніж почати
- Гра в браузері (чистий JavaScript, Godot, Unity, GameMaker або інший рушій з експортом для браузера) і доступ до її файлу index.html.
- Стан гри як об’єкт, що вміщується в 64 КБ, наприклад рівень, монети й налаштування.
- З твого боку не потрібні ні сервер, ні база даних: решту зроблять набір і сторінка klyo.
Крок за кроком
Додай SDK
Встав цей рядок у файл index.html перед власним скриптом:
<script src="https://games.klyo.pl/sdk/klyo-gry-sdk.js"></script>. Рушій з експортом для браузера викликає ті самі функції своїм способом виклику JavaScript з гри.Завантаж прогрес на старті
Виклич
klyo.save.get(callback)один раз, коли гра стартує. Якщоz.okістинне, а вz.dataє дані, віднови гру зz.data.z.cloudістинне, коли відповів сервер klyo, аz.reasonпояснює, чому дані лише з браузера.Зберігай після важливих змін
Викликай
klyo.save.set(state, callback)після рівня, покупки або зміни налаштувань. Набір тримає копію в браузері й об’єднує збереження, частіші ніж раз на 2 секунди, в одне, тож власний таймер тобі не потрібен.Перевір у попередньому перегляді в студії
Завантаж пакет і зіграй у вікні попереднього перегляду. Збереження йде в хмару попереднього перегляду, яку бачиш лише ти, а у відповіді
o.cloudіo.previewістинні. Викличklyo.save.getще раз або знову відкрий попередній перегляд: ті самі дані повернуться зz.source, що дорівнює «chmura».Опублікуй гру
Після публікації кожен гравець зберігає прогрес у власному місці: гравець з акаунтом має його на кожному пристрої, гість у цьому браузері. Твоє збереження з попереднього перегляду зникне разом із ним.
Якщо щось не працює
Відповідь каже, що дані локальні
z.reason пояснює чому. bez-strony: гра працює поза klyo (просто з файлу або на іншому сайті), тож прогрес лишається в браузері. bez-serwera: не було з’єднання, а набір надішле копію пізніше. pusto-w-chmurze: у хмарі ще нічого не було, тож гра отримала копію з браузера, а набір надіслав її в хмару.
Мій код чекає, а потім здається
Відповідь приходить завжди, щонайпізніше за 8 секунд, а на klyo одразу. Прибери власний, коротший ліміт часу і запусти гру з копії в браузері ще до відповіді хмари.
Збереження відхилено з причиною rozmiar
Закодований стан більший за 64 КБ. Зберігай лише те, що потрібно для відновлення гри, а не всю сцену.
Часті запитання
Чи потрібен гравцеві акаунт, щоб зберегти прогрес?
Ні. Без акаунта прогрес належить цьому браузеру. З акаунтом він іде за гравцем на кожен пристрій, а копія, збережена в цьому браузері до входу, переходить в акаунт.
Що буде, коли два пристрої зберігають одночасно?
Перемагає останнє збереження в хмарі. Копія з браузера, яку сервер ще не підтвердив, іде в хмару лише тоді, коли за цей час не зберігав інший пристрій, тож старіша копія ніколи не перезапише новіший прогрес.
Чи побачать гравці мої тестові збереження з попереднього перегляду?
Ні. Попередній перегляд має власне місце, яке відкриваєш лише ти й модератори klyo, і воно зникає разом із попереднім переглядом.