Автор Тема: Электронный маршрутник в бою (впечатления)  (Прочитано 27974 раз)

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Автосохранение никогда не заменяет неявно текущие данные.
Видимо автосохранение у вас всегда везде отключено.
Я лично почти никогда ни в Гугл драйве ни в в Ворде не жму ctrl+s но тем не менее все мои извинения отлично сохраняются.
100% сделать можно. Можно добавить кучу кнопок, кучу диалогов, вопросов. Но тогда это будет ui и ux которым невозможно будет пользоваться.

Поэтому лично я если бы писал точно так же не делал никаких доп штук и кнопок. Единственное что возможно сделал бы чуть иначе отправлял на сервер только то что изменил и сразу по окончанию ввода: либо. Enter либо потеря фокуса.
По сути тоже самое что с загрузкой фото - выбрал фото ответ сохранился. Так и тут ввожу данные, пока не нажал ентер либо не убрал фокус ничего не отправляется на сервер. Если ошибка тогда уже решать как ее выделить.
Ну и тогда возможно синхронизация нужна только 'обратеная', т.е. показать новые данные с сервера.

unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
>  каждый 1000 ответ игрок будет считать, что он ввёл правильно, а сервер его всё равно не примет

Именно для такого одного случая из 1000 сделан попандер в момент завершения этапа "вот ответы, которые сейчас на сервере, убедитесь, что всё правильно!". Перед выводом этого попандера синхронизация останавливается, а потом с сервера запрашиваются актуальные данные. То есть, то, что там показывается - это 100% то, что живет на сервере в данный момент, что бы ни делали в это время на других устройствах. "Размораживается" синхронизация только в момент нажатия кнопки "Назад".

> различными вариантами конвертируется в серверное

У нас уже синхронизируются часики клиента с серверными, это нужно для счетчика времени до конца игры (или до истечения контрольного времени команды). Точность текущего алгоритма в пределах секунды на наших тестах.

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Malamut
Я отнюдь не говорю что ничего не надо делать и все круто.
Я лишь говорю что
1. Задача которую вы говорите якобы не решаемая, вполне решаемая. И относительно легко решаемая. И привожу примеры как ее можно решить (и смею сказать нужно)
2. если я правильно понял что вы предлагаете (кучу доп кнопок, какой-то отдельное поле для сохраненного ответа) и тд (возможно диалоги) то я как архитектор не соглашусь что это хорошее направление решения проблемы которая есть. Пусть (возможно) оно и относительно простое

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
unxed,
В конце показывать - это маст хев и очень классно. Но я уже писал в соседней теме: в конце нет возможности проверить правильность ответа, вообще-то. Вы же не стоите перед всеми КП) То есть получается, что надо записывать все ответы на листочек, чтоб потом в конце сравнить с электронной системой. Это тоже провал user experience и какая-то бессмыслица, если честно. Вроде как получается, что прогрессивный онлайн-маршрутник нерабоспособен без параллельной бумажки.

Предлагаю компромисс: сделайте кнопочку "заблокировать ответ" (ненавязчивой иконкой), чтобы можно было явно заблокировать каждое поле ввода, синхронизировав всё с сервера, показав гарантированно актуальные данные, и больше уже не позволяя его сохранять на сервер с других клиентов и этого тоже, пока снова явно не будет нажата эта кнопка с явным подтверждением от сервера. Это тоже решит задачу, сохранив всю вашу логику. Типо pin/unpin.
achekh,
Для меня задача - быть на 100% увереным, что сервер получил мой ответ. Она нерешаема текущей технологией, вы везде пишите какие-то допущения, тем самым целенаправленно сколько-то долей процента выкидывая. Это неправильно, когда существует надёжное решение. Я предлагал лишь дополнительную кнопку Сохранить рядом с каждым полем ввода. Это нормальный UI, хотя бы потому, что он наглядный, а наглядность и подсознательная очевидность - это очень важно в UI. Как ведёт себя текущий сайт, если честно, понять невозможно. Это создаёт и будет создавать нервозность в любом случае. Любые неочевидные автоматические операции -это плохо. Но выше я предложил дополнение к текущему интерфейсу, которое решит все проблемы, пусть и менее очевидным и наглядным способом. Да, дополнительной иконкой рядом с каждым полем ввода, но думаю минималисты меня за это не побьют камнями)

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
Иконки вообще стандартные можно: галочку зелёную чтоб сохранить и заблокировать поле на редактирование, карандашик - чтоб разблокировать. Автосейв никуда не отменяется и вообще ничего не меняется. Просто возможность явно принудительно синхронизировать с сервером и точно увидеть серверное значение, плюс не дать случайно поменять, заблокировав поле. Это тоже не подходит? Мне кажется, хороший компромисс) И кнопка Save по сути, и всё остаётся по старому с другой стороны.

N/A

  • Флудер
  • Сообщений: 322
    • Просмотр профиля
По следам "Первого острова" (в "Искру" не играла) - подумалось, что было бы здорово иметь возможность просто смотреть задания и справки без всяких полей ввода, чтобы исключить случайную засылку какой-нибудь ерунды. Ну, мб ещё сохранённый ответ. Во всех онлайн-играх, в которые я играла, ответы вводил кто-то один, а остальные члены команды открывали страницу только для того, чтобы прочитать задания, и им форма для ответов была только лишним риском. Если бы была кнопка "только просмотр", я бы ей пользовалась.

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Malamut я прошу прощения, но у вас абсолютно те же допущения с вашей кнопкой.

Два юзера вводят текст пока кнопка не нажата. Какой из них будет сохранен?
Пользователь а ввел текст АБС и нажал заблокировать. Пользователь б ввел текс ХХХ чуть позже, но запрос до сервера дошел чуть раньше (т.е. поле ещё не заблокировано). Вопрос что должно быть?

Поэтому у вас ровно такие же проблемы с кнопкой как во всех других решениях.

Если вы говорите что у вас проблема в том чтобы сохранить то что ввел пользователь (явно как бы) я и предложит сохранять по ентеру или потере фокуса только (плюс изменения)
Это тоже тест практис.
Если вы ничего не делали с полем оно и не будет сохраняться. И вы легко получите 200% гарантии то что ввели то и сохранено.
Если же два юзера и разница между изменениями небольшая то в любом решении (и вашем и моем) будут допущения.
« Последнее редактирование: 28.06.2020, 13:54:18 от achekh »

unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
> в конце нет возможности проверить правильность ответа, вообще-то

Проблему осознали, думаем.

> кнопочку "заблокировать ответ"

Аххаха, красиво! Только ну вы же представляете количество хаоса, которое добавится при синхронизации состояния запиненности-отпиненности?

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
unxed
Как программист программисту: а почему бы просто не сделать сохраните только на ентер/потерю фокуса для изменённого поля? Мне кажется это бы решило бы 99% проблем (не считая потери связи и других ошибок которые конечно надо решать с помощью проверки времени на сервере). Ну либо оставить при синхронизации но опять же сохранять только данные которые юзер явно менял.

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
Только ну вы же представляете количество хаоса, которое добавится при синхронизации состояния запиненности-отпиненности?
Да вроде нет его. Синхронная операция обычная с ожиданием ответа от сервера и блокировкой на стороне сервера на момент обработки запроса. Нажали кнопку - отправили текущее состояние поля на сервер. Отправка зафейлилась - показали ошибку, ничего страшного (можно просто красным подсветить поле или какую минимульную анимацию, даже без попапа). А дальше сервер либо возвращает ok, и дальше всем клиентам принудительно рассылает сохранённое значение и состояние заблокированности, либо fail если кто-то уже заблокировал до нас с другим значением. Ну да, будут в крайне редких случаях попапы, когда какой-то баг адский синхронизации. Но вы же хотите добиться состояния того, чтобы синхронизация работала максимально идеально, а значит почти никогда не будет проблем. Ну а если будут - пускай лучше попап, чем неявная хрень и порча ответа. Это обычная тривиал операция сохранения, пара блокировок - и никаких проблем. Гораздо проще, чем разрешать конфликтры автосинхронизации.

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

unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
> только на ентер/потерю фокуса

Так можно, да. Но прежде, чем утверждать, что это решило бы 99% проблем, надо научиться эти проблемы воспроизводить :) А то строить на умозрительных допущениях изменения логики как-то странно.


unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
Наблюдается много советов "как сделать так, чтоб ответы не портились". Желания участвовать в тестировании для воспроизведения точных условий, при которых ответы портятся, почему-то не наблюдается :)

Пока что у нас даже нет однозначного ответа на вопрос, случается ли порча при игре с нескольких устройств, или даже когда играют с одного, такое может случиться. Предлагать решения куда проще, чем анализировать причины багов. Только у новых решений обязательно будут новые баги, которые сейчас не кажутся очевидными.
« Последнее редактирование: 28.06.2020, 14:10:50 от unxed »

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
> только на ентер/потерю фокуса

Так можно, да. Но прежде, чем утверждать, что это решило бы 99% проблем, надо научиться эти проблемы воспроизводить :) А то строить на умозрительных допущениях изменения логики как-то странно.


Наблюдается много советов "как сделать так, чтоб ответы не портились". Желания участвовать в тестировании для воспроизведения точных условий, при которых ответы портятся, почему-то не наблюдается :)

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

Я готов потсестить, поискать проблемы.
Можно ли сделать какую-нибудь тестовую игру-страницу с 2-3 КП чтобы можно было с этим поиграться?

SergeSPb

  • Сэнсей
  • Сообщений: 1 805
    • Просмотр профиля
или даже когда играют с одного, такое может случиться.

Да, случаются. Мы играли с одного зарегистрированного устройства (Huawei Nova 3, Android 9.1, Yandex.browser), не менее двух раз ловили этот эффект.

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
Пока что у нас даже нет однозначного ответа на вопрос, случается ли порча при игре с нескольких устройств, или даже когда играют с одного, такое может случиться. Предлагать решения куда проще, чем анализировать причины багов.
Собственно именно поэтому я и писал про некое логирование истории (В том числе инфомации о юзере, который вызывает апддейт) :) хотя бы просто в файл
« Последнее редактирование: 28.06.2020, 14:20:12 от achekh »

unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
> Можно ли сделать какую-нибудь тестовую игру-страницу с 2-3 КП чтобы можно было с этим поиграться?

С этим к Игрику :) Будет возможность погонять тестовую игру, конечно!

unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
> Да, случаются. Мы играли с одного зарегистрированного устройства (Huawei Nova 3, Android 9.1, Yandex.browser), не менее двух раз ловили этот эффект.

Наконец-то ценный фидбек, спасибо! :)

unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
> логирование истории

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

Malamut

  • Флудер
  • Сообщений: 475
    • Просмотр профиля
Мы с двух. Готов что угодно тестировать, примено понимаю паттерны срабатывания.

unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
SergeSPb а как это выглядело? Пропадали последние введенные знаки? Полностью очищалось поле? Ещё как-то?

achekh

  • Сэнсей
  • Сообщений: 2 969
    • Просмотр профиля
> Да, случаются. Мы играли с одного зарегистрированного устройства (Huawei Nova 3, Android 9.1, Yandex.browser), не менее двух раз ловили этот эффект.

Наконец-то ценный фидбек, спасибо! :)

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

unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
Malamut Игрик соберет спецбригаду общественных тестировщиков, ок! А пока: что там за паттерны, а?

SergeSPb

  • Сэнсей
  • Сообщений: 1 805
    • Просмотр профиля
SergeSPb а как это выглядело? Пропадали последние введенные знаки? Полностью очищалось поле? Ещё как-то?

1. Произвёл ввод
2. Убрал фокус
3. Подождал несколько секунд
4. Переключился на другое окно
5. (В случае 1 и предполагаемом случае 3) Отметил нестабильно работающий инет
6. Через какое-то достаточно большое время обнаружил пустое поле вместо ответа

Между пунктами 5 и 6 неоднократно переходил на/уходил со страницу(в), возможно, что страницу перезагружал.

Maitre

  • Болтун
  • Сообщений: 82
    • Просмотр профиля
Сама по себе идея отличная. Учитывая сжатые сроки перед первым БГ онлайн реализована тоже хорошо. Но что работает дома на компе с большим монитором, стабильным интернетом удобным стулом и кружкой кофе, в полях проявило недочёты
- 1 ответ мы потеряли (отправила апелляцию,  м.б. плохая связь, но это было в цивилизации, я записывала, прямо у КП и это всё вышло странно)
- плохая связь (чем дальше по Коле, тем хуже). Понятно, что это часть игры, поэтому сразу заскриншотили все задания. Была пара точек без связи, где ответы заносили уже когда связь появлялась. Но все-таки пугало, что именно в момент окончания игры может случиться беда.
- Адаптивность интерфейса - КП много, экран небольшой, приходится много скроллить + картинки к заданиям у меня открывались на экране 1 раз из 3
- Автозамена в клавиатуре мобильных устройств может подложить свинью. И слово переписать, и регистр сменить. Нужен глаз да глаз, а экран небольшой.
- Присоединяюсь к пожеланию видеть свои ответы после из отправки. Проверка ответов перед окончанием игры - удобно, но когда КП много, времени осталось 2 минуты, ты стоишь где-то в поле, все сверить не успеваешь. А так хотя бы видно. что отправлял
- Если бы мы все-таки попали в зону без связи в момент окончания времени, зачлись ли бы ответы, отправленные до завершения игры?

unxed

  • Администратор
  • Флудер
  • Сообщений: 283
    • Просмотр профиля
Друзья, правильно ли я понимаю, что проблема с не сохранением ответа (полностью или частично) строго связана с качеством инета?

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