Принцип работы сохранений
Цитата: Obey от 27.12.18, 19:45Не совсем поняла, как работает функционал сохранений/загрузок. По идее, сохранка должна меня возвращать на тот же параграф, где она была сделана, с теми же значениями переменных и т.д., так? Я сейчас пробую сгенерированный html, и этого не происходит.
Скажем, если я сделаю простейший проект из десяти параграфов (без особого наполнения, просто в каждом будет ссылка на следующий), сохранюсь в третьем и попробую загрузить эту сохранку из десятого — я останусь там, в десятом. Почему? Как это работает?
Не совсем поняла, как работает функционал сохранений/загрузок. По идее, сохранка должна меня возвращать на тот же параграф, где она была сделана, с теми же значениями переменных и т.д., так? Я сейчас пробую сгенерированный html, и этого не происходит.
Скажем, если я сделаю простейший проект из десяти параграфов (без особого наполнения, просто в каждом будет ссылка на следующий), сохранюсь в третьем и попробую загрузить эту сохранку из десятого — я останусь там, в десятом. Почему? Как это работает?
Цитата: DoubleDragon от 27.12.18, 20:23Потому что сохранения пока не работают. Реализовать полноценные сохранения для пользовательского кода на JavaScript - нетривиальная задача. Я потихоньку двигаюсь в этом направлении, но до решения этого вопроса сейчас далеко. Можете пока вообще отключить сохранения через asm.save = false;
Потому что сохранения пока не работают. Реализовать полноценные сохранения для пользовательского кода на JavaScript - нетривиальная задача. Я потихоньку двигаюсь в этом направлении, но до решения этого вопроса сейчас далеко. Можете пока вообще отключить сохранения через asm.save = false;
Цитата: Obey от 27.12.18, 21:04Ах, понятно. А пожелания принимаете? :з
Было бы круто увеличить количество слотов (шесть — это очень мало) и получить возможность сохранять в файл.Кстати, а ведь в предыдущих версиях Аксма, если я правильно понимаю, как-то решался последний вопрос? По крайней мере, в версиях «из коробки» такой функции не было, но мне попадались игры, где сохранения в файл (.txt, наверное) были реализованы. Кажется, даже в руководстве Morych этот процесс объяснялся. Мне интересно, этот код портируется? И как он выглядит, ну, с точки зрения логики нового языка — может, вообще не стоит пока заморачиваться, потому что он будет совсем другой?
Ах, понятно. А пожелания принимаете? :з
Было бы круто увеличить количество слотов (шесть — это очень мало) и получить возможность сохранять в файл.
Кстати, а ведь в предыдущих версиях Аксма, если я правильно понимаю, как-то решался последний вопрос? По крайней мере, в версиях «из коробки» такой функции не было, но мне попадались игры, где сохранения в файл (.txt, наверное) были реализованы. Кажется, даже в руководстве Morych этот процесс объяснялся. Мне интересно, этот код портируется? И как он выглядит, ну, с точки зрения логики нового языка — может, вообще не стоит пока заморачиваться, потому что он будет совсем другой?
Цитата: DoubleDragon от 29.12.18, 07:42Вы только что попросили у нас модуль пользовательских сохранений?
Вы только что попросили у нас модуль пользовательских сохранений?
Цитата: Obey от 29.12.18, 15:13Ну тут как. Вы говорите, что потихоньку пилите систему сохранений — и я ведь не знаю, в каком виде она будет реализована. Сейчас в клиенте (я не буду пока про бету, где это не работает, а про 6.1, к примеру) мы по стандарту имеем возможность сохранять прогресс через меню опций. Выполнено это, мягко говоря, слабо: шесть сохранений в кэш(?) браузера — это никуда не годится даже для среднестатистической CYOA. Но это не проблема до тех пор, пока у разработчика есть инструментарий, чтобы сделать поддержку сохранений такую, какая ему нужна. Инструментарий на уровне пользовательского кода есть в 6.1 и, насколько я могу судить, планируется в JS.
И вопрос в том, в каком виде он должен быть реализован, верно? За себя могу сказать, что большее количество слотов и возможность писать в файл необходимы. Возможность шифрования, вероятно, тоже хорошо бы перенести. Может быть, какая-то автоматическая сортировка (допустим, новая игра другим персонажем имела бы свою страницу сохранений; этакая система «профилей», какую можно наблюдать во многих играх); генерация названия сохранения, основываясь хотя бы на системных дате/времени или по заголовку параграфа; автосохранения по условиям (каждый игровой день, допустим). То есть примерно вот такой функционал мне бы хотелось видеть как пользователю. Как это сделать, я не знаю точно, но мне понятно по уже вышедшим играм, что как минимум часть этих функций возможно прописать в той же 6.1 ручками самостоятельно.
И разумеется, что модуль позволит всё это дело знатно облегчить. Добавил в игру, настроил по гайдику под свои нужды — всё заработало.Вообще, идея подключаемых модулей очень крутая. То есть глобальная карта, инвентарь, сохранения, часы и календарь, дженерик погода, etc. Можно много всего навыдумывать, только кто-то этим заниматься должен. Конечно, когда сообщество разрастётся (очень надеюсь, что это произойдёт), появятся и пользовательские модули, и гайды, и всё. Тот же Твайн, несмотря на свою ветхость, прекрасно себя чувствует, потому что постоянно допиливается — и уже не разработчиками.
Но сейчас — да. Я попросила у вас модуль пользовательских сохранений. :з
Ну тут как. Вы говорите, что потихоньку пилите систему сохранений — и я ведь не знаю, в каком виде она будет реализована. Сейчас в клиенте (я не буду пока про бету, где это не работает, а про 6.1, к примеру) мы по стандарту имеем возможность сохранять прогресс через меню опций. Выполнено это, мягко говоря, слабо: шесть сохранений в кэш(?) браузера — это никуда не годится даже для среднестатистической CYOA. Но это не проблема до тех пор, пока у разработчика есть инструментарий, чтобы сделать поддержку сохранений такую, какая ему нужна. Инструментарий на уровне пользовательского кода есть в 6.1 и, насколько я могу судить, планируется в JS.
И вопрос в том, в каком виде он должен быть реализован, верно? За себя могу сказать, что большее количество слотов и возможность писать в файл необходимы. Возможность шифрования, вероятно, тоже хорошо бы перенести. Может быть, какая-то автоматическая сортировка (допустим, новая игра другим персонажем имела бы свою страницу сохранений; этакая система «профилей», какую можно наблюдать во многих играх); генерация названия сохранения, основываясь хотя бы на системных дате/времени или по заголовку параграфа; автосохранения по условиям (каждый игровой день, допустим). То есть примерно вот такой функционал мне бы хотелось видеть как пользователю. Как это сделать, я не знаю точно, но мне понятно по уже вышедшим играм, что как минимум часть этих функций возможно прописать в той же 6.1 ручками самостоятельно.
И разумеется, что модуль позволит всё это дело знатно облегчить. Добавил в игру, настроил по гайдику под свои нужды — всё заработало.
Вообще, идея подключаемых модулей очень крутая. То есть глобальная карта, инвентарь, сохранения, часы и календарь, дженерик погода, etc. Можно много всего навыдумывать, только кто-то этим заниматься должен. Конечно, когда сообщество разрастётся (очень надеюсь, что это произойдёт), появятся и пользовательские модули, и гайды, и всё. Тот же Твайн, несмотря на свою ветхость, прекрасно себя чувствует, потому что постоянно допиливается — и уже не разработчиками.
Но сейчас — да. Я попросила у вас модуль пользовательских сохранений. :з
Цитата: Morych от 29.12.18, 18:07В
доисторическихне-js версиях асм я просто выводил в текстовое поле все значения переменных, склеенных через некий символ. Это был так называемый код сохранения. И при загрузке игрок должен был вставить этот код в текстовое поле. Теперь в "Теории сказочного градостроения" написанной на js я кое-как сделал сохранение в файл. Там у меня есть всего один объект на всю игру, и все остальные переменные и все прочее - это свойства этого объекта. В этом объекте также содержится и имя текущего параграфа. Поэтому я просто конвертирую этот мега-объект в json-строку и сохраняю эти данные как текстовый файл. А при загрузке - парсю этот json обратно. Вроде работает (не без нюансов конечно) :) И я не проверял на всех браузерах. Кроме того, некоторые браузеры спрашивают имя при сохранении, а некоторые сразу сохраняют с дефолтным. Правда можно дефолтное имя задать как предлагает @obey - с использованием текущих даты и времени.А мне от модуля сохранений, кроме всего вышеперечисленного, еще нужна возможность "авто-сохранений". Незаметно для игрока (из кода). Чтобы игрок даже не заморачивался сохранениями, а просто при следующем входе в игру сразу попадал на свое последнее состояние. Ну так и быть, пускай это будет справедливо лишь при игре с одного и того же браузера :) Хотя... если я авторизовался на сайте асм, и асм знает, что это я, и в какую игру я играю - может он разрешит мне и складывать состояние текущей игры в свою бд? Отсюда уже близко глобально видимые таблицы рекордов и ачивки - но это уже отдельная тема :)
В доисторических не-js версиях асм я просто выводил в текстовое поле все значения переменных, склеенных через некий символ. Это был так называемый код сохранения. И при загрузке игрок должен был вставить этот код в текстовое поле. Теперь в "Теории сказочного градостроения" написанной на js я кое-как сделал сохранение в файл. Там у меня есть всего один объект на всю игру, и все остальные переменные и все прочее - это свойства этого объекта. В этом объекте также содержится и имя текущего параграфа. Поэтому я просто конвертирую этот мега-объект в json-строку и сохраняю эти данные как текстовый файл. А при загрузке - парсю этот json обратно. Вроде работает (не без нюансов конечно) :) И я не проверял на всех браузерах. Кроме того, некоторые браузеры спрашивают имя при сохранении, а некоторые сразу сохраняют с дефолтным. Правда можно дефолтное имя задать как предлагает @obey - с использованием текущих даты и времени.
А мне от модуля сохранений, кроме всего вышеперечисленного, еще нужна возможность "авто-сохранений". Незаметно для игрока (из кода). Чтобы игрок даже не заморачивался сохранениями, а просто при следующем входе в игру сразу попадал на свое последнее состояние. Ну так и быть, пускай это будет справедливо лишь при игре с одного и того же браузера :) Хотя... если я авторизовался на сайте асм, и асм знает, что это я, и в какую игру я играю - может он разрешит мне и складывать состояние текущей игры в свою бд? Отсюда уже близко глобально видимые таблицы рекордов и ачивки - но это уже отдельная тема :)
Цитата: DoubleDragon от 29.12.18, 18:26Проблема с автосохранением видится только одна. Нельзя достоверно определить момент завершения игры, потому придётся автосохранять состояние в каждом параграфе (это если вся игра не в одном параграфе) или по таймеру. Вопрос в размере сохранения. Действительно, придётся сохранять все переменные, объекты, а также состояние спрайтов и т. п. Хочется сделать так, чтобы не пострадала скорость работы самой игры.
Проблема с автосохранением видится только одна. Нельзя достоверно определить момент завершения игры, потому придётся автосохранять состояние в каждом параграфе (это если вся игра не в одном параграфе) или по таймеру. Вопрос в размере сохранения. Действительно, придётся сохранять все переменные, объекты, а также состояние спрайтов и т. п. Хочется сделать так, чтобы не пострадала скорость работы самой игры.
Цитата: Daydrax от 04.01.19, 12:37Поддерживаю всё вышесказанное, необходимость нормально реализованных сохранений для меня, как пользователя очень важна. Единственное что меня всегда останавливало перед покупкой профессионального аккаунта это как раз то, как были устроены сохранения, насколько я понимаю, они сохранялись в кеш браузера, как по мне это не очень надежно, стоит просто читателю почистить систему, и весь прогресс в игре канет в лету. Так что, как по мне, сохранки должны записываться в отдельный файл, и соответственно с него игрок и должен загружаться далее. К сожалению, я так же, говорю от лица обычного пользователя, мало знакомого с программной частью и кодированием, поэтому самому такую функцию, вообще не представляется возможным реализовать.
Поддерживаю всё вышесказанное, необходимость нормально реализованных сохранений для меня, как пользователя очень важна. Единственное что меня всегда останавливало перед покупкой профессионального аккаунта это как раз то, как были устроены сохранения, насколько я понимаю, они сохранялись в кеш браузера, как по мне это не очень надежно, стоит просто читателю почистить систему, и весь прогресс в игре канет в лету. Так что, как по мне, сохранки должны записываться в отдельный файл, и соответственно с него игрок и должен загружаться далее. К сожалению, я так же, говорю от лица обычного пользователя, мало знакомого с программной частью и кодированием, поэтому самому такую функцию, вообще не представляется возможным реализовать.
Цитата: Mim от 14.01.19, 13:52Приветствую, народ.
Прочитал тему, посему вопрос: в новой версии моей игры перестали работать сохранки (что в самой AXMA, что в сохранённом html), т.е. сохраниться вроде как можно, но загрузить сохранение нельзя. Система тупо не реагирует. Думал, что это связано с разросшимся объёмом игры, но, прочитав тему, как понял, это связано с новой версией AXMA? Причём у меня даже 6.1., а не JS beta 10.
Как эту проблему можно решить? Из-за огромного объёма игры сохранения там просто необходимы.
З.ы. Так и не понял, как отправлять на форуме личные сообщения.
Приветствую, народ.
Прочитал тему, посему вопрос: в новой версии моей игры перестали работать сохранки (что в самой AXMA, что в сохранённом html), т.е. сохраниться вроде как можно, но загрузить сохранение нельзя. Система тупо не реагирует. Думал, что это связано с разросшимся объёмом игры, но, прочитав тему, как понял, это связано с новой версией AXMA? Причём у меня даже 6.1., а не JS beta 10.
Как эту проблему можно решить? Из-за огромного объёма игры сохранения там просто необходимы.
З.ы. Так и не понял, как отправлять на форуме личные сообщения.
Цитата: DoubleDragon от 14.01.19, 15:35Я не понял - сохранения перестали работать в версии 6.1 или JS?
Я не понял - сохранения перестали работать в версии 6.1 или JS?