Перейти к содержанию
Asterios

Борьба с рассинхронами.


Wandy

Рекомендуемые сообщения

11 минуту назад, iP0vvERsL1De сказал:

Только что был бой с ТК и получается, когда тыкал под себя убегал от него. Срочно фиксить нужно, это имба нереальная

и кто-то спецом это юзает чтоб выиграть бой, ну да ну да, не надо фиксить оставьте как есть.

Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 814
  • Создана
  • Последний ответ

Топ авторов темы

Расскажу о некоторых причинах рассинхронизации при движении, которые были до всех исправлений:

 

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

Ранее, наш движок полностью игнорировал этот факт, что вносило существенную погрешность в формулу. Т.к. мы эту разницу конечно же заметили, то когда-то давно компенсировали ее, домножив ВСЕ время движения на 1.05 (5%). Итоговый результат на длинных дистанциях получался хорошим, но был небольшой десинк в начале движения. Но если много кликать, или двигаться постоянно меняя цель но не останавливаясь, этот десинк накапливался до больших размеров. Эту проблему мы решали просто периодически корректируя итоговое положение чара (дергания и прыжки, либо ускорение/замедление движения иногда).

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

 

Когда я добавил понятие "разгона", т.е. шага в начале каждого движения (процесс движения делится на две части с разными скоростями), десинк пропал, но появилась другая проблема - очень сложно сдетектить ситуацию, когда персонаж уже разогнался, но вы кликнули бежать еще раз. Получалось, что сервер считал пол секунды такого движения как шаг, а в клиенте персонаж бежал, отсюда новый десинк.

Особенно, это влияло на преследование одним чаром другого, когда идут постоянные начало/конец движения, по несколько раз в секунду. Итоговое различие доходило до 1000 (!!!) единиц на тестах.

Это на самом деле большая проблема, и я прямо сейчас занимаюсь ее решением.

 

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

 

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

 

Так же, отдельно имеется проблема с десинком из за изменившейся во время движения скорости. Для нее уже есть решение, но займусь позже.

Ссылка на комментарий
Поделиться на другие сайты

Спасибо за пояснения) очень подробно и содержательно.

Вопрос только один, а нельзя просто скопировать код клиента в сервер? Может я смолол чушь, но не все шарят, а задаются вопросом многие.

Ссылка на комментарий
Поделиться на другие сайты

почти во всех темах о багах - идет речьо сервере и клиенте. Есть ли возможность все перенести на сервер и не иметь 2 независимые платформы? а в клиенте оставить минимальное необходимое для простой графики?

Ссылка на комментарий
Поделиться на другие сайты

44 минуты назад, ЖивучийХомячок сказал:

Спасибо за пояснения) очень подробно и содержательно.

Вопрос только один, а нельзя просто скопировать код клиента в сервер? Может я смолол чушь, но не все шарят, а задаются вопросом многие.

 

31 минуту назад, iLordSion сказал:

почти во всех темах о багах - идет речьо сервере и клиенте. Есть ли возможность все перенести на сервер и не иметь 2 независимые платформы? а в клиенте оставить минимальное необходимое для простой графики?

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

 

Мы могли бы взять к примеру Enreal Engine 4, и сделать на его базе новый клиент. Это было бы проще, чем изменить старый. Но все равно, заняло бы пару лет работы и много денег.

Ссылка на комментарий
Поделиться на другие сайты

Там определение спина/лицо все норм, а то сегодня 2 боя против ножей. 2 летала в лоб.

Ссылка на комментарий
Поделиться на другие сайты

В 18.02.2018 в 02:38, Admin сказал:

 

Так а нельзя сделать рестарт сейчас чтобы отвязывания чаров устранить на основных серверах а не на тестовом?... Смысл ждать утра..

Ссылка на комментарий
Поделиться на другие сайты

26 минут назад, iP0vvERsL1De сказал:

Там определение спина/лицо все норм, а то сегодня 2 боя против ножей. 2 летала в лоб.

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

Более того, когда он закончит каст, в клиенте он будет развернут в вашу сторону, а на сервере он останется развернутым в сторону, откуда начинал каст. И угол поворота станет правильным только тогда, когда он сделает шаг, или что-то еще скастует, но не поворачиваясь.

 

Этим тоже займусь, давно хочу сделать разворот к цели и на сервере тоже, в реальном времени. Но прошлые опыты правильного результата не дали. Да и спорный это вопрос, ведь если во время каста он будет всегда к вам развернут, то спину будет найти невозможно даже в теории, т.к. он к вам лицом. Зато, появится шанс найти спину, если он кастует в кого-то другого. А так же, отображаемое станет действительным, что важно.

Вероятно, это стоит делать только вместе с исправлением, которое позволит учитывать спину у backstab не в конце его каста, а в начале.


 

18 минут назад, варлордик сказал:

Так а нельзя сделать рестарт сейчас чтобы отвязывания чаров устранить на основных серверах а не на тестовом?... Смысл ждать утра..

Я должен закончить исправления и все протестировать.

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, Admin сказал:

Вероятно, это стоит делать только вместе с исправлением, которое позволит учитывать спину у backstab не в конце его каста, а в начале.

Если учитывать, то у всех сразу блоу и стаб абил потому что ножи режут 30% урона спереди ради абил в спину так-то. Чтоб не получилось, чо урон стаба в спину нормальный, а остальные 4 абилы всегда -30% дамага потому что для них спины никогда не будет)

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

 

 

Изменено пользователем ЖивучийХомячок
Ссылка на комментарий
Поделиться на другие сайты

Может уже кто то и писал... но  полет на грацию Ад.... перс когда уже на  месте , к фонтану добежать полная труба, буто как перс буксуєт , буто как перевес и уд вместе на персе... нада зайти в выбор перса и назад и тогда норм.

Ссылка на комментарий
Поделиться на другие сайты

Итог на сегодня:

- исправлено большинство проблем с движением, различие между серверными и клиентскими координатами сведено к минимуму

- исправлены проблемы с отвязыванием чаров, невозможностью сидеть и прочее

- корректная обработка изменения скорости персонажа во время движения (дебафы на замедление и прочее)

- исправлена скорость шага

- исправлено движение в воде. Некоторые проблемы остались, но стало гораздо лучше.

- как ни странно, дополнительно улучшен поиск пути. Пример - башни в фортах. Ранее, если кликать на лестницу, то чар забегал под нее. Если кликать повыше, то чар мог странным образом оббежать всю башню вокруг, и только потом забежать на нее.

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

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

 

Все протестировано множество раз, надеюсь мы не пропустили никаких новых проблем.

 

PS: Преследование при касте не проверяли, но исправлял там радиусы, должно помочь, проверьте.

Ссылка на комментарий
Поделиться на другие сайты

Я конечно не на всех горах проверял, но похоже, что дополнительно исправилась проблема с проваливанием под землю при падении с гор.

Забавно, ведь у нас не было цели это исправить, а причину этого бага я искал несколько лет, и так и не нашел :)

Ссылка на комментарий
Поделиться на другие сайты

Замечен ещё один момент. С некоторых пор, суммоны (возможно и петы тоже) бегут не за хозяином, а как бы слева от хозяина. В принципе не сильно мешает, но не привычно.

Ссылка на комментарий
Поделиться на другие сайты

7 минут назад, Anykeyshik сказал:

Замечен ещё один момент. С некоторых пор, суммоны (возможно и петы тоже) бегут не за хозяином, а как бы слева от хозяина. В принципе не сильно мешает, но не привычно.

это Админ специально делал, чтобы петы, сумоны не мешали пройти к цели

Изменено пользователем фараоныч
Ссылка на комментарий
Поделиться на другие сайты

6 часов назад, Admin сказал:

Итог на сегодня:

- исправлено большинство проблем с движением, различие между серверными и клиентскими координатами сведено к минимуму

- исправлены проблемы с отвязыванием чаров, невозможностью сидеть и прочее

- корректная обработка изменения скорости персонажа во время движения (дебафы на замедление и прочее)

- исправлена скорость шага

- исправлено движение в воде. Некоторые проблемы остались, но стало гораздо лучше.

- как ни странно, дополнительно улучшен поиск пути. Пример - башни в фортах. Ранее, если кликать на лестницу, то чар забегал под нее. Если кликать повыше, то чар мог странным образом оббежать всю башню вокруг, и только потом забежать на нее.

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

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

 

Все протестировано множество раз, надеюсь мы не пропустили никаких новых проблем.

 

PS: Преследование при касте не проверяли, но исправлял там радиусы, должно помочь, проверьте.

После фиксов заметил, Что на Фринтезе во второй комнате теперь не возможно бить мобов(Dark Choir captain), которые стоят на парапете с нижней площади. Раньше подойдя в плотную к ним, можно было спокойно убивать копьем. Эт так для инфы о последствиях фиксов. 
На персонажах в пвп рендж копья работает нормально
 

Скрытый текст

saUIlxAp8QY.jpg

 

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, фараоныч сказал:

это Админ специально делал, чтобы петы, сумоны не мешали пройти к цели

Воу. Интересно

Ссылка на комментарий
Поделиться на другие сайты

протестил админу прям респект, геодата прям красота. 

на фортах на вышках и кастовалке за 4 форта не заметил не одного зависания, причем два из 4 было пвп перс четко бегает. 

 

на пересеченке залипаний не заметил.

Ссылка на комментарий
Поделиться на другие сайты

Не может быть. Игроки всем довольны? Наверное форум сломался... :)

Ссылка на комментарий
Поделиться на другие сайты

10 минут назад, Admin сказал:

Не может быть. Игроки всем довольны? Наверное форум сломался... :)

Сегодня как никак прощенное воскресение )

Ссылка на комментарий
Поделиться на другие сайты

за сегодня почти все гуд но остался 1 странный баг который чудисами нашли, собственно сам примерный баг ниже: 

 

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

замеченно что если нажать скил, но перс стоит далеко от моба, то он подбежит и тупо остановится. Если отбежать и нажать скил еше раз, то только тогда подбежит и ударит


 

также персонаж пытается вбежать в моба секунды 2-3 перед тем как ударить

 

 

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

кстати пока админ тут спрошу) почему перс который стоит в ГХ, при смене саба появляется не понятно где в ГХ. Лечится если тыкнуть на перса в пати - он летит по воздуху на свое место ) иногда в воде появится - только сое спасает. На остальных чарах таких случаев не было ни разу, а на нем  - при каждом релоге

 

Ссылка на комментарий
Поделиться на другие сайты

Что-то странное на париках. Бьешь визуально весь парик, а не вампиришься и урон не по всем мобам в парике идет. Вероятно - диаметр удара пики и расположение мобов. Т.е. пика теперь "не достает" зачастую до большинства мобов в париках.

ПС петы слева от хозяина.. ну фиг знает, "раньше было лучше" (С)

Изменено пользователем варлордик
Ссылка на комментарий
Поделиться на другие сайты

12 часа назад, Admin сказал:

Не может быть. Игроки всем довольны? Наверное форум сломался... :)

На других проектах админы сказали бы "Работает всё так, как работает. Мы не знаем как исправить", то ли дело "Астериос" :D

P.S. Черт с этими суммонами, пусть слева бегают, главное что бы ничего не сломалось... :lol:

Ссылка на комментарий
Поделиться на другие сайты

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...