@nodejs_ru

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

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

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
Просто та игра была написана на actionscript. А тут js. Все открыто и видно
Именно поэтому на клиенте я делаю минимум логики

Таймураз
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
Да
смотри, каждый раз когда я проигрываю, я буду менять у себя время на минуту вперед

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

Vladimir
29.01.2017
11:35:26
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
Ну то есть есть, один глобальный таймер

Alexey
29.01.2017
11:36:58
Google
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
Ну он переводит стрелкт, игра обрывает соедтнение, результат не засчитывается
Тот, у кого траблы со временем возникли- его проблемы

Это проблема, да, пока думаем как бы поизящнее ее решить
Смотри. Ты же проверяешь обоих игроков каждые 10 секунд в момент времени +/- 1 секунду?

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
Вчера так же говорили про синхронизацию)

Что только на серверном таймере

Страница 542 из 2748