Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Неправильные тайминги #43

Open
ud1 opened this issue Dec 1, 2019 · 6 comments
Open

Неправильные тайминги #43

ud1 opened this issue Dec 1, 2019 · 6 comments

Comments

@ud1
Copy link

ud1 commented Dec 1, 2019

Assault rifle должно стрелять раз в 600 микротиков, а на деле 601. Вызвано ошибками округления в таймерах, в конце, когда должен получаться 0, на деле получается малое число большее 0, и оно сжирает лишний микротик. Стоит вычитать у всех таймеров EPS (или перейти на целые времена измеряемые в микротиках, но это изменение сетевого протокола, вероятно нежелательно)

@MrSmile
Copy link

MrSmile commented Dec 1, 2019

Да, сейчас для прыжков приходится тоже +1 добавлять.
Вообще, уж платформер стоило бы сделать на целых числах целиком, чтобы раз и навсегда избавиться от ошибок округления.

@tyamgin
Copy link

tyamgin commented Dec 1, 2019

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

@ud1
Copy link
Author

ud1 commented Dec 1, 2019

Движение игрока я вчера вроде как точно восстановил, вроде явных огрехов не помню.
А эпсилоны это пылинки так учитываются (хотя на деле скорей всего, чтоб батут не срабатывал, когда не надо), в принципе норм подход.

@kuviman
Copy link
Collaborator

kuviman commented Dec 2, 2019

Кажется чем меньше использований EPS, тем лучше. Сейчас только там где иначе были бы явные косяки

@ud1
Copy link
Author

ud1 commented Dec 4, 2019

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

@mortido
Copy link

mortido commented Dec 5, 2019

Сейчас еще скажут, что у них и математики нет)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants