
Dreamerinnoise
29.01.2017
11:30:12

Таймураз
29.01.2017
11:30:18
Я честно не знаю?
Сервер в играх должен оповещать об изменениях и по возможности- симулировать игру для оценки поведения клиента. Как только появляются несостыковки- реагировать. Где подсказать клиенту, что он отстает от событий игры (не получил пакет или получил, но не вовремя (UDP)), где клиент охренел и пытается считерить (кто-то подгружает свои скрипты на страницу, вмешиваясь в логику игры)

Dreamerinnoise
29.01.2017
11:30:22
регистрация хитов уж точно

Alexander
29.01.2017
11:30:24

Google

Таймураз
29.01.2017
11:30:42
И да, UDP в контексте браузерных игр неактуален, он запрещен
Но во всяких CS-ах, дотах и так далее используется он, если соединение хорошее

Alexey
29.01.2017
11:32:05
Ну вообще да зависит от реализации
Но общее правило для меня такое что чем меньше логики будеь на клиенте тем лучш

Alexander
29.01.2017
11:32:42
Просто та игра была написана на actionscript. А тут js. Все открыто и видно

Alexey
29.01.2017
11:33:06

Таймураз
29.01.2017
11:33:09

Vladimir
29.01.2017
11:33:34

Alexey
29.01.2017
11:33:48
Выливается в больший гемор при разработке
Но на длинной дистанции дает свои плоды

Таймураз
29.01.2017
11:34:08

Google

Vladimir
29.01.2017
11:34:36
Да
смотри, каждый раз когда я проигрываю, я буду менять у себя время на минуту вперед

Alexey
29.01.2017
11:34:42

Таймураз
29.01.2017
11:35:04

Vladimir
29.01.2017
11:35:26

Alexey
29.01.2017
11:35:28

Vladimir
29.01.2017
11:35:39
в середине матча понимаю, что скорее всего проиграю
перевожу стрелки

Таймураз
29.01.2017
11:35:50

Alexey
29.01.2017
11:35:53

Vladimir
29.01.2017
11:35:54
матч заканчивается обрывом

Alexey
29.01.2017
11:35:59
Дошло

Vladimir
29.01.2017
11:36:08
делаю так со всеми неудачными матчами
с удачными не делаю

Alexey
29.01.2017
11:36:15
Да, здесь мы пишем дополнительно проверку кто считерил в итоге
Пока решения нет

Таймураз
29.01.2017
11:36:45

Alexey
29.01.2017
11:36:45
Ну то есть есть, один глобальный таймер

Alexander
29.01.2017
11:36:51

Alexey
29.01.2017
11:36:58

Google

Vladimir
29.01.2017
11:37:20

Alexey
29.01.2017
11:37:24
Но хочется что то такое тоже, чтобы клиенты сами разруливали

Vladimir
29.01.2017
11:37:36
будет чувак которого нельзя будет победить

Alexey
29.01.2017
11:37:47
Ага

Таймураз
29.01.2017
11:37:52
Если ты вылетел и не подключился- тебе проигрыш

Vladimir
29.01.2017
11:38:10
в середине матча понимаю, что скорее всего проиграю
перевожу стрелки

Alexey
29.01.2017
11:38:14
Ну он переводит стрелкт, игра обрывает соедтнение, результат не засчитывается
Это проблема, да, пока думаем как бы поизящнее ее решить

Таймураз
29.01.2017
11:39:03

Alexey
29.01.2017
11:41:30
Не понял
Каждые 10 секунд они стукаются на сервак для сверки таймеров
В остальное время обмениваются инфой другой

Таймураз
29.01.2017
11:42:16
Не понял
Совпадает ли их таймер с серверным
дельта времени совпадения от серверной- 1 секунда

Alexey
29.01.2017
11:42:29
Не так было
Но сейчас видимо все таки будет нужен хотя бы один глобальный таймер
Было так что : эй сервак у меня таймер 83 секунды
Сервак грит ок, жду второго сорерника

Google

Alexey
29.01.2017
11:43:28
Соперник говорит : эй у меня таймер 83
Плюс минус одна
Сервак грит : ок вот вам след локация
Но тут да, возникает проблема
Сервер не знает чье время правильное
Что такое?)
Звучит дичавенько да

Таймураз
29.01.2017
11:45:48
На деле еще хуже, определенно

Alexey
29.01.2017
11:45:52
Но работает, причем на прям уж костыль не похоже

Admin
ERROR: S client not available

Таймураз
29.01.2017
11:46:12
Ну решения из говна и палок тоже работают (пойми меня правильно)
Блин, были крутые и почти доступные статьи о геймдеве

Alexey
29.01.2017
11:46:40
Ну эт ж не говно и палки

Таймураз
29.01.2017
11:46:55
Ну как сказать...

Alexey
29.01.2017
11:47:04
Конкретно минусы серьезные в чем?)

Таймураз
29.01.2017
11:47:09
Я уже раз 50 сказал о том, что симуляция игры должна на сервере проходить

Alexey
29.01.2017
11:47:35
Так она там и происходит

Таймураз
29.01.2017
11:47:38
У тебя состояние игры от и до хранится на сервере. Клиенты сообщают только об изменениях, которые хотят в нее внести

Alexey
29.01.2017
11:47:56
Еще раз - 10 секунд только сверка таймера и все
Все остальное время клиенты по сокету общаются с серваком

Google

Alexey
29.01.2017
11:48:14
И там тоже проверка синхронизации и тд
Логика игры на сервере вся

Таймураз
29.01.2017
11:49:12
Тот, у кого первым проверка таймера не прошла положительно- проиграл

Alexey
29.01.2017
11:49:39
Нет
Игра сбрасывается
Для обоих

Таймураз
29.01.2017
11:49:57
Твое дело- по максимуму обеспечить стабильность соединения. Если кто-то вдул из-за твоей реализации- к тебе вопросы. Но не должно быть так, чтобы игра сбрасывалась
Всмысле. Один потел, выигрывал, а тут у другого проблема возникла, ии з-за этого он зря потел

Alexey
29.01.2017
11:50:49
Кто то вдул из за того что читерит

Таймураз
29.01.2017
11:50:59
Именно

Alexey
29.01.2017
11:51:00
Но да, он ведь про это и написал
И я сказал что мы это решаем

Таймураз
29.01.2017
11:51:27
Ну это решается засчитыванием поражения игроку с плохим инетом
Есть несколько вариантов, когда таймер отрицательный результат покажет игроку

Alexey
29.01.2017
11:51:58
Я не могу определить чье время правильное

Таймураз
29.01.2017
11:52:20
1. Проблемы соединения, задержка неебическая
2. Он читерит
3. Ты как разраб накосячил

Alexey
29.01.2017
11:52:21
Без таймера на сервере
И я написал что видимо будем так делать, если не придумаем получше чего

Таймураз
29.01.2017
11:52:45
Ну так если нет таймера на сервере- ты не симулируешь игру как надо
Тут нужно установить, какая погрешность времени приемлема для тебя и от этого отталкиваться

Alexey
29.01.2017
11:53:43
Вчера так же говорили про синхронизацию)
Что только на серверном таймере