Alexander
То есть так
Alexander
Клиент: я прыгаю. Как это сделать?
Сервер: тебе нужно прыгнуть
Клиент: ок
Alexander
Alexander
Я честно не знаю😅
Alexander
Dreamerinnoise
Таймураз
Я честно не знаю😅
Сервер в играх должен оповещать об изменениях и по возможности- симулировать игру для оценки поведения клиента. Как только появляются несостыковки- реагировать. Где подсказать клиенту, что он отстает от событий игры (не получил пакет или получил, но не вовремя (UDP)), где клиент охренел и пытается считерить (кто-то подгружает свои скрипты на страницу, вмешиваясь в логику игры)
Dreamerinnoise
регистрация хитов уж точно
Alexander
Таймураз
Таймураз
И да, UDP в контексте браузерных игр неактуален, он запрещен
Таймураз
Но во всяких CS-ах, дотах и так далее используется он, если соединение хорошее
Alex
Ну вообще да зависит от реализации
Alex
Но общее правило для меня такое что чем меньше логики будеь на клиенте тем лучш
Alexander
Просто та игра была написана на actionscript. А тут js. Все открыто и видно
Alex
Vlad
Alex
Alex
Выливается в больший гемор при разработке
Alex
Но на длинной дистанции дает свои плоды
Таймураз
Vlad
Да
смотри, каждый раз когда я проигрываю, я буду менять у себя время на минуту вперед
Alex
Alex
Vlad
Alex
Vlad
в середине матча понимаю, что скорее всего проиграю
Vlad
перевожу стрелки
Alex
Vlad
матч заканчивается обрывом
Alex
Дошло
Vlad
делаю так со всеми неудачными матчами
Vlad
с удачными не делаю
Alex
Да, здесь мы пишем дополнительно проверку кто считерил в итоге
Alex
Пока решения нет
Alex
Ну то есть есть, один глобальный таймер
Alexander
Alex
Vlad
Alex
Но хочется что то такое тоже, чтобы клиенты сами разруливали
Vlad
будет чувак которого нельзя будет победить
Alex
Ага
Таймураз
Таймураз
Если ты вылетел и не подключился- тебе проигрыш
Vlad
в середине матча понимаю, что скорее всего проиграю
Vlad
перевожу стрелки
Alex
Ну он переводит стрелкт, игра обрывает соедтнение, результат не засчитывается
Alex
Это проблема, да, пока думаем как бы поизящнее ее решить
Таймураз
Alex
Не понял
Alex
Каждые 10 секунд они стукаются на сервак для сверки таймеров
Alex
В остальное время обмениваются инфой другой
Таймураз
Не понял
Совпадает ли их таймер с серверным
дельта времени совпадения от серверной- 1 секунда
Alex
Не так было
Alex
Но сейчас видимо все таки будет нужен хотя бы один глобальный таймер
Alex
Было так что : эй сервак у меня таймер 83 секунды
Alex
Сервак грит ок, жду второго сорерника
Alex
Соперник говорит : эй у меня таймер 83
Alex
Плюс минус одна
Alex
Сервак грит : ок вот вам след локация
Alex
Но тут да, возникает проблема
Alex
Сервер не знает чье время правильное
Alex
Что такое?)
Alex
Звучит дичавенько да
Таймураз
На деле еще хуже, определенно
Alex
Но работает, причем на прям уж костыль не похоже
Таймураз
Ну решения из говна и палок тоже работают (пойми меня правильно)
Таймураз
Блин, были крутые и почти доступные статьи о геймдеве
Alex
Ну эт ж не говно и палки
Таймураз
Ну как сказать...
Alex
Конкретно минусы серьезные в чем?)
Таймураз
Я уже раз 50 сказал о том, что симуляция игры должна на сервере проходить
Alex
Так она там и происходит