Таймураз
У тебя состояние игры от и до хранится на сервере. Клиенты сообщают только об изменениях, которые хотят в нее внести
Alex
Еще раз - 10 секунд только сверка таймера и все
Alex
Все остальное время клиенты по сокету общаются с серваком
Alex
И там тоже проверка синхронизации и тд
Alex
Логика игры на сервере вся
Таймураз
Тот, у кого первым проверка таймера не прошла положительно- проиграл
Alex
Нет
Alex
Игра сбрасывается
Alex
Для обоих
Таймураз
Твое дело- по максимуму обеспечить стабильность соединения. Если кто-то вдул из-за твоей реализации- к тебе вопросы. Но не должно быть так, чтобы игра сбрасывалась
Таймураз
Всмысле. Один потел, выигрывал, а тут у другого проблема возникла, ии з-за этого он зря потел
Alex
Кто то вдул из за того что читерит
Таймураз
Именно
Alex
Но да, он ведь про это и написал
Alex
И я сказал что мы это решаем
Таймураз
Ну это решается засчитыванием поражения игроку с плохим инетом
Таймураз
Есть несколько вариантов, когда таймер отрицательный результат покажет игроку
Alex
Я не могу определить чье время правильное
Таймураз
1. Проблемы соединения, задержка неебическая 2. Он читерит 3. Ты как разраб накосячил
Alex
Без таймера на сервере
Alex
И я написал что видимо будем так делать, если не придумаем получше чего
Таймураз
Ну так если нет таймера на сервере- ты не симулируешь игру как надо
Таймураз
Тут нужно установить, какая погрешность времени приемлема для тебя и от этого отталкиваться
Alex
Вчера так же говорили про синхронизацию)
Alex
Что только на серверном таймере
Alex
Причем по таймеру на каждую сессию
Таймураз
Именно
Alex
Так нам осталось придумать как понимать кто не читерит
Alex
И все будет работать без таймеров
Таймураз
отправляешь пинг запрос на клиенты
Таймураз
Отправляешь им время начала + разницу во времени
Таймураз
Хранишь свое время и их время у себя
Таймураз
Сравниваешь каждые 10 секунд
Alex
Это с таймером
Таймураз
Да
O.
О чем речь? Какие таймеры у клиента? У клиент таймер от сервера приходит, и все. То, что он лагает - его проблемы. И так везде, в любой реал тайм игре.
Alex
Я думаю можно как то изьебнутся и передожить на клиента и чтоб это было секьюрно
Таймураз
У тебя абсолютно все должно симулироваться на сервере Сервер- источник знаний для клиента. Не должно быть так, чтобы у клиента было знание, а у сервера нет
O.
Залагал - луз. Твои проблемы.
O.
Сервер емитит таймер клиенту.
O.
Таймер на сервере.
O.
Таск Delayed
Alex
Залагал - луз. Твои проблемы.
Это означает таймер для каждой сессии
Таймураз
Сервер емитит таймер клиенту.
При чем эмитит он их с разницей во времени
O.
По окончанию результат
O.
Это означает таймер для каждой сессии
А как ещё? Таймер для всех сессий? 😄
Alex
А иначе никак
Ну... я пока пробую)
Alex
А как ещё? Таймер для всех сессий? 😄
Ну это рабочее решение, один таймер
Alex
Глобальный
Alex
Но хочется вообще без
O.
Не надо так делать)
O.
Что мешает для каждой комнаты задачу запускать?
O.
Воркер какой нить
O.
С таймером обратного отсчета
I am
Привяжись к вемни на компе, где крутится сервер. Это и будет твой таймер
O.
Так или иначе как глобальный таймер то будет? Мне это вообще не понятно
Nikita
а какая задача-то?
Таймураз
Перформанс
Если ты жадничаешь ресурсы для реал-тайм файта, то у тебя явно где-то звездец наступит
Alex
Так или иначе как глобальный таймер то будет? Мне это вообще не понятно
Когда рум создается он берет текущее значение таймера
Таймураз
И тебе придется переписывать все
Alex
Ну и все
Таймураз
Я жадничаю ресурсы везде
Это нерационально
Alex
Это нерационально
Это уже вопрос холивара
Alex
Вопрос не в этом
Таймураз
Я жадничаю ресурсы везде
Сервера не должны быть впритык загружены, ибо если возникнет нагрузка- серверу хана в том или ином виде
Alex
...именно поэтому я и жадничаю с производительностью кода?..
Alex
Ну как )
Таймураз
Реально интересно, что это за файтинг такой, в котором нельзя хранить одну интовую переменную времени и еще 2 переменные разницы во времени с клиентами
Alex
Экономить производительность, следить за памятью, вот это все
Таймураз
Если тебе жалко 96 (192) б памяти..
Таймураз
Или сколько нода жрет, когда хранишь число
O.
Тут можно просто взять и расписать события и ответить на вопросы.