mrac
Зарегистрирован: 13.08.2006 Сообщения: 3449 Замечания: 5
|
Добавлено: Пн Май 23, 2011 3:04 pm Заголовок сообщения: По поводу непринятия хода. |
|
|
Достаточно хорошо известна проблема непринятия / перехода ходов в боях.
Изучив проблему, мы выделили несколько основных причин данной проблемы:
1) Задержка таймера хода у клиента (вызванная недостаточно быстрым интернетом или "медленным" железом). В данном случае игрок уверен, что у него в запасе ещё есть время, хотя оно уже практически кончилось.
2) Медленный интернет у клиента, длинный маршрут - время передачи пакетов от клиента к серверу и наоборот разнится в зависимости от количества узлов.
3) Как следствие второй проблемы - проблема третья. Пакет хода N от клиента доходит слишком поздно, из-за чего сервер распознает его как пакет хода N+1. Из-за этого и происходит "переход" хода.
К сожалению, полностью решить все проблемы на данный момент не представляется возможным, хотя бы потому, что сигнал из Владивостока всегда будет идти дольше, чем из Москвы - в силу простейших законов физики.
Но большую часть проблем удалось решить:
1) Теперь вместе с пакетом от клиента к серверу передается так же номер хода. Таким образом "переходов хода" больше не будет.
2) Счетчик хода синхронизируется с сервером каждые 20 секунд - теперь вероятность "запаздывания" времени клиента крайне мала.
3) Счетчик хода за 7 секунд до конца краснеет - это означает, что ход может не приняться (но не может перейти!). На самом деле тесты показали, что у подавляющего большинства игроков ход принимается даже за 3-4 секунды до конца, но мы посчитали, что такое предупреждение будет не лишним. В совершенно идеальных условиях ход примется и в последнюю секунду. _________________ оказывается, всё - таки она есть... |
|