RU

Сохранения в играх Quest Navigator

Nex Moderator 13.07.2014 14:06 24 comments 28823 views

Варианты

Есть несколько вариантов места для сохранений состояния игры:

1. Папка плеера.

2. Папка игры.

3. Папка в App Data.

4. Папка в “Моих Документах”.

Проблемы

Минус первых двух - если на компьютере установка новых программ разрешена только для администраторов, то обычный пользователь не может записывать файлы в Program Files. Следовательно, при установке игры либо плеера в Program Files нельзя будет сохраняться.

Третий вариант хорошо подходит, но сохранения скрыты от пользователя, и ему придётся изрядно потрудиться для переноса их на другой компьютер.

Четвёртый вариант лишён этих недостатков, но немного захламляет папку “Мои Документы”. Это может быть нежелательным для автора игры, если его игра распространяется в виде независимой сборки.

Решение

Чтобы автор мог указать для независимой сборки место сохранений, вводится настройка:

saveFolder

Одно из трёх значений: “documents”, “application-data”, “game-folder”.

По умолчанию “application-data”. Настройка имеет значение только при включенном режиме “standalone”.

Таким образом, при распространении игр через “полку игр”, сейвы будут в папке “Мои документы”. Независимые сборки будут хранить сейвы скрыто от пользователя в папке Application Data.

Идентификатор игры

Для игр в файле настроек вводится уникальный атрибут “package”, который идентифицирует игру. Для игр в “Полке игр” - обязателен.

package

Пример: “su.qsp.game.FairiesLostUmbrella”

Если указан этот атрибут, то сейвы будут храниться в папке “…/su.qsp.game.FairiesLostUmbrella/”. Благодаря этому, сейвы от разных копий игры всегда будут находиться в одном месте.

Допустим, пользователь скачал независимую сборку и распаковал её в папку “D:\Хобот-полицейский”. Поиграв и сохранившись, позже он скачивает обновлённую версию игры, распаковывает в “D:\Хобот-полицейский 1.1”. Запустив новую версию, он будет иметь доступ к старым сохранениям.

Версия сохранений

Также вводится атрибут версии сохранений.

saveVersion

Целое число. Значение по умолчанию: “1”.

Этот атрибут позволит автору при серьёзных изменениях в игре сменить версию сохранений. Старые сохранения не будут загружаться в новой версии игры. Просто увеличиваем цифру на 1, когда возникает несовместимость со старыми сейвами.

DEBUG

Переменная DEBUG отвечает за безконфликтную загрузку сейвов. В данный момент я во всех играх устанавливаю DEBUG = 1, чтобы сейвы от разных qsp-файлов могли загружаться. В будущем следует убрать её из библиотеки и плеера соответственно.

Edited at 13.07.2014 14:28 (11 years ago)

newsash предлагает вместо “package” назвать идентификатор “gameId”. Так по его словам будет понятнее для автора. Что думаете? Какой вариант лучше? Можете предложить свои варианты.

И я за то, чтобы сейвы лежали в AppData/Roaming/QSP Navigator/<gameId>/<saveVersion>/

newsash,
расскажи подробнее, что означает такой путь, почему именно в этой папке, и для каких именно конфигураций он предлагается.

saveVersion в пути сохранения однозначно будет, я просто не указал его т.к. описывал другой атрибут.

Заодно отмечу, что в документацию пока что не вношу. Это ещё не реализовано в плеере. Как только выпущу новую версию с этими изменениями, обновлю статью со списком настроек.

Nex:

расскажи подробнее, что означает такой путь, почему именно в этой папке, и для каких именно конфигураций он предлагается.

Для десктопного Windows и полки игр.
Не в “Моих документах”, потому что там так обычно хватает всякой фигни, а сохранения - не документы. Хотя только что заметил там папку My Games, где у меня сохранения держат четыре игры независимых друг от друга разработчиков - можно в “Мои документы/MyGames/QSP Navigator/…”
Не в папке с игрой, потому что Program Files. Хотя если Навигатор допускает лёгкий перенос игр на другой компьютер, то лучше сохранения и игры держать вместе и не в Program Files.

Для standalone я за сохранение игры в папку с игрой. Хотя я ещё и за распространение standalone-игр не инсталлятором, а zip-архивом. Мне вообще удобно держать мелкие игры (а текстовые попадают в эту категорию просто из-за того, что они текстовые и, за малым исключением, мало весят) на флешке и иметь возможность запускать их с любого компа, который подвернется под руку.

можно в “Мои документы/MyGames/QSP Navigator/…”

Сейчас для “Полки игр” по сути так и сделано, только без “My Games” (ни к чему это, я думаю). Отдельных папок под каждую игру в “Мои документы” не будет, за исключением standalone-игр, для которых автор выставит режим “documents”.

лучше сохранения и игры держать вместе и не в Program Files.

Возможность держать сохранения в папке с игрой будет (режим “game-folder”). Запрета на установку в Program Files не будет.

я ещё и за распространение standalone-игр не инсталлятором, а zip-архивом.

Навигатор на это никаких ограничений не накладывает, исключительно дело вкуса автора.

Что касается размещения сейвов для игр с “Полки игр” в AppData, мне кажется это будет хуже чем держать в “Моих документах”. Потому что игрок не сможет перенести сейвы, а так он их легко найдёт и скопирует на любой комп.

Nex:

Сейчас для “Полки игр” по сути так и сделано, только без “My Games” (ни к чему это, я думаю). Отдельных папок под каждую игру в “Мои документы” не будет, за исключением standalone-игр, для которых автор выставит режим “documents”.

My Games (в том числе для standalone-игр) может снизить захламление “Моих документов”.

Nex:

Возможность держать сохранения в папке с игрой будет (режим “game-folder”). Запрета на установку в Program Files не будет.

А возможность со стороны игрока принудительно поменять режим сохранения для всех игр будет?

My Games (в том числе для standalone-игр) может снизить захламление “Моих документов”.

newsash,
во-первых, непонятно, почему именно “My Games”, по-английски, а не “Мои игры”. Во-вторых, для целесообразного использования такой промежуточной папки должна быть устоявшаяся практика среди разработчиков. Она существует?
Для универсального плеера там и так будет только одна папка Навигатора. Которую легче найти, если она отдельно, чем заметить в неприметной “My Games” или “Мои игры”.

А возможность со стороны игрока принудительно поменять режим сохранения для всех игр будет?

Для “Полки игр” - сейчас нет, в будущем возможно. Для standalone-игр, нет.

Видишь ли, для создания такой настройки, помимо затрат на её внедрение, требуется создание отдельного экрана настроек.

В универсальном плеере это может быть уместно. Всё-таки у него есть “Полка игр”, в ней можно сделать кнопку настроек.

В независимой сборке, я даже не представляю, как это сделать. Вкрутить ещё один пункт в системное меню? И нафига захламлять каждую игру ради сомнительного “удобства” выбора места сохранений? Логичнее дать выбор игроку на этапе установки. При особом желании автора, можно это осуществить с помощью трёх копий конфига, при установке будет копироваться одна из них.

Nex:

во-первых, непонятно, почему именно “My Games”, по-английски, а не “Мои игры”. Во-вторых, для целесообразного использования такой промежуточной папки должна быть устоявшаяся практика среди разработчиков. Она существует?

Из личного опыта любителя поиграть в игры из Steam: у меня сейчас папка “Мои документы” захламлена папками всяких миниигр, что довольно раздражает при использовании папки по назначению. Папки “Мои игры” нет. Есть папка “My Games”, куда сложились настройки и сохранения сразу от нескольких игр. Устоявшейся практикой такое не назвать, но прецедент есть.
Одну папку “QSP Navigator” в “Моих документах” ещё можно стерпеть, но если каждая standalone-игра будет создавать себе отдельную папку в корне “Моих документов”, это будет напрягать. Поэтому папки сохранений standalone-игр при хранении в “Моих документах” должны лежать не в корне, а в какой-нибудь подпапке. “My Games” (ну или “Мои игры”) подходит больше, чем папка плеера, т.к. игрок standalone-игры не обязан знать, как называется плеер.

P.S. Ещё в папке пользователя (отдельно от “Моих документов”, W8) есть папка “Сохраненные игры”. Насколько я понимаю, разработчики Windows хотели, чтобы все игры складывали сохранения туда, но среди разработчиков игр не прижилось.

Nex:

Видишь ли, для создания такой настройки, помимо затрат на её внедрение, требуется создание отдельного экрана настроек.

Например, “Настройки” в системном меню, по которой открывается отдельный экран, куда сложены все настройки. При правильном структурировании длина “простыни” не напрягает.
Хотя ты прав, для standalone-игр никто не мешает и самому в конфиг залезть, захламлять плеер этим не стоит.

если каждая standalone-игра будет создавать себе отдельную папку в корне “Моих документов”, это будет напрягать

Каждая не будет. По умолчанию для standalone-игр будет “application-data”. В документы запишется только если автор специально поменяет настройку.

есть папка “Сохраненные игры”

В версии плеера для Windows 8, будет использоваться. Для плеера совместимого со старыми Windows, заточек под разные версии Windows делать не буду, это лишнее.

Например, “Настройки” в системном меню

Усложнение базового интерфейса должно быть оправданным. Ради одной только настройки “куда класть сейвы” добавлять пункт в основное системное меню не буду. Более того, любой дополнительный функционал ляжет нагрузкой на разработчика оформления.

Aleks Versus Moderator 14.07.2014 09:05 (11 years ago)

Nex:

для целесообразного использования такой промежуточной папки должна быть устоявшаяся практика среди разработчиков. Она существует?

Шесть из семи установленных у меня игр используют папку “My Games”. И это не только стимовские игры. Я уже привык, и если раньше в поисках сейвов лез в первую очередь в папку игры, то сейчас - сразу в “My Games”.

Aleks Versus,
хотелось бы более общих данных, чем два частных случая. Статистику какую-нибудь.

Nex:

хотелось бы более общих данных, чем два частных случая. Статистику какую-нибудь.

Не статистика, но обсуждение проблемы
И ещё
И ещё
И ещё

И Skyrim держит сохранения в My Games. Этого должно быть достаточно.

Если одна “лишняя” папка с сейвами Навигатора так сильно напрягает, можно убрать её совсем. Сохранять в App Data.
Только будут ли довольны пользователи тем, что не смогут найти сохранения?

Меня устроит любой вариант.

А по пользователям хотелось бы сделать опрос. В конце концов только ради них папка сейвов выносится в “Мои документы”. Вот их и спросим.

Прошу проголосовать: http://vk.com/club21582484?w=wall-21582484_492

Skyrim

Аххаха.

Log in or Register to post comments.