2 месяца назад
Про сохранения в Unity https://habr.com/ru/articles/840086/ Большая статья про сохранения. В целом я люблю такие, и хорошо что скажем описаны разные подходы, разные форматы реализации и т.п. Единственное что я бы больше уделил внимания версионированию. Дело в том, что в сущности в сохранениях ничего сложного нет, если это не опенворлды. В опенворлде стейты хранятся хитро и там неплохо бы знать что такое BSP даже в системе сохранения. В контексте Unity для оффлайн хранения берём плеер префс. Для онлайн бекенд сервис. И сохраняем YAML, JSON. Или чтобы было по быстрее BSON либо другой бинарный формат данных (там уже надо бы писать реализацию под конкретику целевой платформы). А вот версии — это гребанный ад. Версии это то почему сохранения не тривиальная задача в целом. Так как мало того, что пользователя надо хранить, он ещё зараза такая может менять свою структуру. Условно вот играл себе человек в игру, забросил на пол года, там апдейтов уже вышла целая тонна, и он либо не может зайти, либо теряет прогресс. Косяк? Косяк. В целом там есть много разных подходов: xstl шаблоны (что-то на древнем *кряхтит*), миграция регулярными выражениями. Лучше не хранить пользователя централизовано, а декомпозировать данные для сохранения состояния по соответствующим сервисам. Чисто чтобы реже писать миграцию. А как условно сохранить и загрузить файлик, какие форматы файликов существуют — это самое простое что в этой теме есть. Но и хорошо, что такие статьи появляются. Статьи для новичков важны и нужны. #новости
2 месяца назад
Современное хранение игрового прогресса в контексте Unity
Вроде бы в интернете и так много контента по этой теме, но я до сих пор часто встречаю вопросы на тему сохранения прогресса. Обычно все хотят получить быстрое готовое решение для своих текущих проблем и не разбираться с их сутью. Многие материалы в сети это и дают – конкретные сухие простые решения, которые ломаются о будущий внезапно изменившийся контекст, порождая новые итерации тех же вопросов, но уже с новыми вводными. Часто начинающие разработчики мыслят слишком конкретно и решают конкретные задачи, пытаясь затем из частных случаев собрать что-то общее...