@ProLua

Страница 151 из 307
Snusmumriken
06.09.2017
14:13:21
Хуйня

Читаки повсюду

Один удар - и хедшот всем на сервере

fgntfg
06.09.2017
14:14:00
Если все хосты читеры, то они играют в мод

Google
fgntfg
06.09.2017
14:14:04
всё просто

Philipp
06.09.2017
14:14:06
Запили игру, суть которой - стать самым крутым читером))

Saphire
06.09.2017
14:14:16
Эм

Snusmumriken
06.09.2017
14:15:28
Если все хосты читеры, то они играют в мод
А если только один - то всем скучно )))

Saphire
06.09.2017
14:15:33
В случае с локстепом можно читерить сколько хочешь... Проблема в том, что другие игроки (точнее не они, а их игры) заметят, что случился рассинхрон, и просто кикнут читера из-за большого рассинхрона

Вот и всё

Snusmumriken
06.09.2017
14:15:59
Блин, слишком много умных слов. Дай определение нормальное, чтобы никаких недомолвок. Я не понимаю о чём ты говоришь.

fgntfg
06.09.2017
14:16:15
А если только один - то всем скучно )))
Если все хосты одновременно общитывают данные и результат общёта для одного хоста отличается - то результат отбрасывается.

Snusmumriken
06.09.2017
14:16:43
Тратить ресурсы на сравнение? Как определять, кто прав а кто нет?

Saphire
06.09.2017
14:17:08
Блин, слишком много умных слов. Дай определение нормальное, чтобы никаких недомолвок. Я не понимаю о чём ты говоришь.
Если кто-то нелегально пытается модифицировать игру - он это легко сделает. Но при игре с людьми на модифицированных клиентах его просто будет выкидывать игра сама

fgntfg
06.09.2017
14:17:10
У тебя 2 ядра и 2 гига.

Google
Saphire
06.09.2017
14:17:53
Если кто-то от него отличается - вылетает

fgntfg
06.09.2017
14:18:06
О, даже не так

Snusmumriken
06.09.2017
14:18:07
кого больше, тот и прав
Незначительные различия будут везде из-за ошибок округления.

fgntfg
06.09.2017
14:18:10
можно проще.

Saphire
06.09.2017
14:18:28
Даже если это просто баг или не одинаковые вычисления на разных клиентах

fgntfg
06.09.2017
14:18:41
Можно перед началом раунда провести синхронизацию. Тоесть по каким-то формулам провести тесты и сравнить результаты.

fgntfg
06.09.2017
14:19:00
А потом всё считать локально

Snusmumriken
06.09.2017
14:19:10
Ах да, ребят, вы в курсе, что в сетевых играх, миры каждого игрока различаются? Каждый живёт в "своём" времени, их вообще невозможно синхронизировать.

fgntfg
06.09.2017
14:19:26
МЫ - БРАТЬЯ

Snusmumriken
06.09.2017
14:19:32
Не а ))) На это уйдёт куча времени.

Пинг - 5мс в локалке. Уже не получится.

Saphire
06.09.2017
14:19:55
Snusmumriken
06.09.2017
14:20:34
Так, на секунду, все серверы останавливаются для синхронизации

Каждые десять секунд )))

Очень интересно

Saphire
06.09.2017
14:21:18
Блин, дай мне найти эту ссылку

Там все идеально показано, именно по этому дизайну сети в игре

Google
Snusmumriken
06.09.2017
14:21:40
Я уже дал

fgntfg
06.09.2017
14:21:48
Так, на секунду, все серверы останавливаются для синхронизации
Можно сделать через оверхед над сетевым протоколом. И не останавливаться

Saphire
06.09.2017
14:22:43
Можно сделать через оверхед над сетевым протоколом. И не останавливаться
Так и делают. Просто синхронизируют пару тройку параметров, а на стороне клиента стараются предугадать состояние

Snusmumriken
06.09.2017
14:22:48
Там все идеально показано, именно по этому дизайну сети в игре
Для медленной игры. Не для быстрой. Предугадывание состояния - это норма.

Saphire
06.09.2017
14:23:04
FFS

Именно про ЭТО и говорится

fgntfg
06.09.2017
14:23:25
А для быстрой - выделенный сервер. Или сервер выбирается в лобби голосованием или на рандом.

fgntfg
06.09.2017
14:24:04
Можно, но это слишком. Лучше изобрести свой велосипед

Кстати о велосипедах. Хочу купить один

Snusmumriken
06.09.2017
14:24:36
Карочи, там - нормальные срезы и синхронизация с учётом среднего пинга и прочих прелестей.

Saphire
06.09.2017
14:24:51
https://gafferongames.com/post/introduction_to_networked_physics/

ВОт

Карочи, там - нормальные срезы и синхронизация с учётом среднего пинга и прочих прелестей.
https://en.wikipedia.org/wiki/Lockstep_(computing) >Lockstep systems are fault-tolerant computer systems that run the same set of operations at the same time in parallel. "локстеп" системы - ошибкоустойчивые системы, которые выполняют одинаковый набор операций в одно и тоже время параллельно друг от друга Т.е. с минимальным взаимодействием.

Там в статье сначала делают простенькую физическую игру. В следующей - добавляют сеть. Именно тот самый lockstep

Сначала у игроков либо одинаковое состояние, либо они их синхронизируют

(Зависит от игры)

Snusmumriken
06.09.2017
14:29:16
Там в статье сначала делают простенькую физическую игру. В следующей - добавляют сеть. Именно тот самый lockstep
Карочи, типа когда и клиент и сервер делают вычисления в одном направлении. Шоб при лаге - противники не падали сквозь стены на стороне клиента. Это всё очевидно. Но вот смотри. Один игрок нанёс другому урон. На какой стороне убавлять ХП или убивать игрока?

Google
Snusmumriken
06.09.2017
14:29:50
На какой стороне убивать?

Saphire
06.09.2017
14:29:51
В ИДЕАЛЕ, так нафиг не должно быть "нанес урон"

Snusmumriken
06.09.2017
14:30:13
У меня - игроки мочат друг друга. Там есть нанесение урона.

Saphire
06.09.2017
14:30:16
Должно быть максимум "соприкоснулся", а вообще, "нажал клавишу"

У меня - игроки мочат друг друга. Там есть нанесение урона.
Если у тебя протокол основан на "Х нанес урон У в А единиц" - в жопу такое, ибо хакается на раз два.

fgntfg
06.09.2017
14:30:53
в идеале ты пишешь что есть пуля по вектору, или по координатам

Snusmumriken
06.09.2017
14:31:15
Ноуп.
Хех, прочитай статью, которую я дал ))

Saphire
06.09.2017
14:31:19
Это когда уже подтвердили, что пуля ВООБЩЕ должна быть.

Snusmumriken
06.09.2017
14:31:51
Прочитай, блин.

Admin
ERROR: S client not available

Saphire
06.09.2017
14:31:56
Сначала один посылает другому - вот я клавишу нажал. Они подтверждают это (у клиента это может уже дальше симулироваться, но в сети оно пока так)

Snusmumriken
06.09.2017
14:32:05
Читать кто будет?

Saphire
06.09.2017
14:32:29
Читать кто будет?
Где? Я только свою ссылку вижу

Saphire
06.09.2017
14:33:10
.
А, это тонкий клиент с предикцией, и всё.

У меня - игроки мочат друг друга. Там есть нанесение урона.
Так же нельзя верить игроку, когда он сообщает о его позиции в мире. Если вы доверитесь, взломанный клиент может сообщить серверу: — Я на (10, 10) А секундой позже: — Я на (20, 10)

Это, из той статьи, которые ты скинул.

Snusmumriken
06.09.2017
14:34:17
Вот я про то и говорю. Как твоя фигня будет на это реагировать?

Google
Saphire
06.09.2017
14:34:48
Вот я про то и говорю. Как твоя фигня будет на это реагировать?
Тем, что НАФИГ такого не будет? Там будет только ввод синхронизироваться.

Snusmumriken
06.09.2017
14:35:04
Это от клиентов )) А что синкается от сервера?

Saphire
06.09.2017
14:36:21
Это от клиентов )) А что синкается от сервера?
...в локстепе "сервера" как такого нет. Есть клиент, которого назначили "сервером", т.е. по сути он заведует авторизацией и выдает копию своего состояния всем, кто подключается

fgntfg
06.09.2017
14:36:21
Надо не координаты посылать. А вектора. Через каждые n тактов - координаты, для сверки. Мало ли.

Snusmumriken
06.09.2017
14:36:35
Бля, сапфир, ты упорот?

Saphire
06.09.2017
14:36:38
Бля, сапфир, ты упорот?
...а вы? Сервер есть, в виде клиента который соединяет других клиентов с собой и друг с другом.

Точнее, даже не так

fgntfg
06.09.2017
14:37:37
Нужно валидировать всё

любопытный таск.

Saphire
06.09.2017
14:37:55
Есть куча клиентов, и у одного из них (или где-то вне) - есть ретранслятор комманд от всех клиентов всем другим

Snusmumriken
06.09.2017
14:38:00
...а вы? Сервер есть, в виде клиента который соединяет других клиентов с собой и друг с другом.
У меня просто такое впечатление, что ты компенсируешь умными словами отсутствие реального понимания происходящего.

Snusmumriken
06.09.2017
14:38:43
Или я просто очень хочу конкретики

Желательно, расписанный по шагам процесс убийства игрока несколькими пулями, с обеих сторон (клиенты и сервер).

fgntfg
06.09.2017
14:39:13
@Snusmumriken на самом деле - если "сервер" убивет всех суперхедшотом, то все с этого сервера уходят.

Saphire
06.09.2017
14:40:45
Желательно, расписанный по шагам процесс убийства игрока несколькими пулями, с обеих сторон (клиенты и сервер).
Так, начем с самого начала: Протокол состоит из однотипных сообщений о состоянии абсолютно всех требуемых клавиш Т.е. по сути {button.state("w"), button.state("a"), ...}

Snusmumriken
06.09.2017
14:41:39
Допустим. Ну, там не клавиши а команды: shoot(vec), jump(press), jump(release)

fgntfg
06.09.2017
14:41:43
но продолжай

Saphire
06.09.2017
14:41:51
Вектор можно легко модифицировать, а проверить - никак

Страница 151 из 307