Jump to content
Sign in to follow this  
Camillus

Вопрос про самую большую проблему игры сегодня

Recommended Posts

Добрый день.

Количество рейдов перевалило хорошо за триста, я немного начал разбираться и обнаружил-таки в конце концов самую большую проблему игры. Её называют по-разному, но наиболее правильно её название звучало бы как-то наподобие "правило первого" "кто первый вышел тот и прав", как-то навроде, острослов бы придумал, я нет.

Суть в чём.

Тот, кто выходит из-за угла на того, кто сидит и ждёт, получает преимущество примерно от 1/5 до 1/4 секунды независимо ни от пинга, географического положения сервера, компьютера или чего-либо ещё. Это полностью исключает возможность на заводе, в общаге на таможне и в прочих подобных энкаунтерах тактически выиграть, выжидая противника на месте и расстреливая его из положения "я жду, он выходит". Выходящий ВСЕГДА имеет преимущество, как я уже сказал, в значительную часть секунды.

Как это происходит?

Проще, наверное, схематично представить это в виде исходных положений и временной шкалы. Исходное положение - и1 сидит в проходе, и2 готовится выходить, пинг у обоих 0.

0 - и2 пошёл, начал появляться из-за угла. На сервер поступила информация о начале движения и2.

0.2 - и2 наполовину высунулся из-за угла, увидев противника у себя в клиенте игры (клиенту игры находящиеся за углами противники известны, доказано наличием вх читов). Для и1 в это время и2 ещё не начал движение. Тут как раз кроется эта самая проблема: или сервер железно недостаточно мощный, или имеет дефект в софтовом проектировании, но движение всё ещё обрабатывается.

0.4 - и2 вышел полностью, управляющий им человек среагировал и готовится стрелять, Сервер обработал информацию, послал её и1 и у того и2 начал выходить из-за угла.

0.5 - и2 открыл огонь по и1, стреляет, попадая, допустим, первой пулей в голову. и1 видит противника у себя в клиенте игры.

0.5х - сервер получает информацию о попаданиях от и2, регистрируя их и расчитывая гибель и1.

0.6  - и1 открывает огонь у себя в клиенте, делая 1+ выстрелов, клиент посылает на сервер информацию о попаданиях

0.8 - сервер посылает и2 информацию о смерти и1, пошла анимация смерти и1. сервер всё ещё обрабатывает информацию о стрельбе и1, сам же и1 продолжает стрелять.

0.9 - сервер обработал информацию от и1, отбросив её, так как и1 по его информации уже мёртв. сервер посылает информацию о смерти и1. И1 в это время, выстрелив 3-5 патронов, умирает, не сделав ни одного попадания.

К сожалению, данная проблема обязывает игрока быть "активной" стороной, всегда первым выходя на противника и насколько бы быстрым тот ни был, шансов нет. Работает, кстати, и на ботах: любого бота всегда можно убить, выйдя на него из-за угла, стрелять начнёшь первым.

Именно из-за этой проблемы люди умирают за углами, думая, что они убежали, когда смерть была зарегистрирована ранее. Никаких "десинков" тут нет. Имеет место долгая обработка сервером информации, поступившей от активного, "первого" клиента. Второй, ожидающий, видит что-либо, реагирует на это, но это не считается, потому что он уже мёртв.

Может быть, каким-либо образом стоило бы сменить в коде разделение на потоки, выделив специальные потоки с высшим приоритетом на расчёт именно движений и стрельбы? Пусть перекладывания в инвентаре у людей чуть медленнее работают, лут чуть хуже ищется, но движения обрабатывались бы с максимальным приоритетом? На чём это написано, не на перле/питоне каком-нибудь, я надеюсь?

Возможно ли починить это? Заранее спасибо за ответ.

Edited by Camillus

Share this post


Link to post
Share on other sites

ну а у меня вот щас оба шотгана просто не стреляли :D думаю, прежде чем разбираться с такой вещью как peeker's advantage, свойственной, увы, многим шутерам, таркову нужно, чтобы в нем хотя бы оружие работало, лол

Edited by see_no_one_zgi

Share this post


Link to post
Share on other sites
В 08.11.2018 в 00:40, Camillus сказал:

Никаких "десинков" тут нет

peeker's advantage, как и все эти смерти-за-стенами - это вид десинка 

Share this post


Link to post
Share on other sites

Всегда, во всех фпс, приемущество у того кто вышел, никак ты это не исправишь. Дело тут даже не в задержке, момент стычки выбирает тот кто выходит, он такой встал возле угла, собрался, вышел, пальнул, убил, а ты играя за крысу сидишь и гадаешь выйдет или нет, и ловишь пулю как правило.

Share this post


Link to post
Share on other sites
3 часа назад, NOLF_rf сказал:

Всегда, во всех фпс, приемущество у того кто вышел, никак ты это не исправишь. Дело тут даже не в задержке, момент стычки выбирает тот кто выходит, он такой встал возле угла, собрался, вышел, пальнул, убил, а ты играя за крысу сидишь и гадаешь выйдет или нет, и ловишь пулю как правило.

по-разному, есть, к примеру, шутер сквад и там не такие проблемы с кодом, чтобы выход из-за угла давал преимущество, и там это не работает; есть овервоч, и хотя это не совсем шутан, все же в нем тоже нормальный сетевой код и пикер не имеет преимущества; а есть шутеры с проблемным кодом, как r6s, и есть тарков, где эти проблемы еще критичнее, и их надо исправлять, а не искать в этом плюсы; как правило тут не в крысе дело, а в том, что один игрок слышит противника, а противник тупо рашит, ничего не соображая, и выбегает за угол, и убивает того, кто его услышал не благодаря своей реакции или скиллочку, а благодаря кривостям игры, и это нужно исправлять, ибо шутан с такими задержками как в таркове - это и вовсе не шутан; о какой арене, к примеру, тут можно будет говорить 

Share this post


Link to post
Share on other sites
1 час назад, see_no_one_zgi сказал:

шутер сквад и там не такие проблемы с кодом, чтобы выход из-за угла давал преимущество, и там это не работает; есть овервоч

даю тебе ещё попытку вспомнить шутер на движке юнити

Share this post


Link to post
Share on other sites
5 минут назад, FlyMan сказал:

даю тебе ещё попытку вспомнить шутер на движке юнити

мне не нужны попытки, я привел примеры шутеров, у которых нет проблем с сетевым кодом; то, что разрабы таркова выбрали двигло, у которого такие проблемы есть, не извиняет игру за эти проблемы  

Share this post


Link to post
Share on other sites
8 hours ago, NOLF_rf said:

Всегда, во всех фпс, приемущество у того кто вышел, никак ты это не исправишь. Дело тут даже не в задержке, момент стычки выбирает тот кто выходит, он такой встал возле угла, собрался, вышел, пальнул, убил, а ты играя за крысу сидишь и гадаешь выйдет или нет, и ловишь пулю как правило.

Совершенно неверно. В контре попробуй выйди на ожидающего за углом. Там вся задержка - пинг1+пинг2. 25мс+25мс = 50мс, человек не заметит даже, 100% смерть. Нет задержки на обработку движения. У нас же 25+25+300, внимательно ОП читайте, там расписано, что именно присутствует в Таркове.

Вообще вместо защиты бага лучше бы спросили у разработчиков: что это, никогда не замечал у нас такого, такое правда есть или товарищи заблуждаются? Никогда не понимал таких, как вы.

Edited by Camillus

Share this post


Link to post
Share on other sites

Играем с товарищем из моей локалки.

Пинг 24 - 25 на мск-1,2, 33 на мск-3.

Стрельбу друг друга слышим спустя около полсекунды +-0.1 (точно уж не считали). Вот оно и есть: человек выходит из-за угла, полсекунды стреляет, а потом ты его видишь и реагируешь, когда сервер уже рассчитал твою смерть и уже полсекунды как поздно.

Ты противника развёл, обманул, тактически разложил и привёл к очевидному смертельному для него финалу, но он выходит не ожидая тебя из-за угла, обнаруживает тебя на полсекунды раньше и вся твоя хитроумная тактика впустую. Я всё думал раньше, что это читеры, ан нет.

Edited by Camillus

Share this post


Link to post
Share on other sites

У меня была такая история:
Предыстория: играю на локации завод, во 2-м зале из бассейна по лестнице поднимается игрок(на обычном шаге) я прицеливаюсь ему в спину и стреляю 2-а раза, из тозика, прямо в тело, он уходит в сторону и я решил ретироваться, через некоторое время меня убивают, в после боевой статистики вижу что меня убил стример, решил посмотреть момент как стример меня убил и зашел на стрим, перемотав на некоторое время назад я понял что мы с ним уже сталкивались и это я ему стрелял в спину, но только он даже не заметил этого, так как в его экране, мои выстрелы прозвучали когда он отошёл от лестницы, на метр или 2-а, а я в него стрелял когда он поднимался по лестницы то есть рассинхрон 4-5секунд!!! Мой пинг на карте завод стабильный 70-80.
Противники постоянно телепортируются и зависают на месте при этом они убивают меня.
+ у меня достаточно хорошая пекарня с несколькими ссд и 1080ти и у меня включено отображение "время построение кадра" графиком, так вот только в таркове этот график постоянно скачет, реагирует на действия сервера.
Собственно после этого случая я стал понимать почему у меня проблема с попаданием, а я гнал на упреждение мол неправильно беру, а как я могу взять правильное упреждение если цель на экране не соответствует серверной!!! только стоячих или двигающихся по прямой относительно меня, и от этого рождается другая проблема: так как в игре смерть = потере лута то в рейд мне выходить с нормальным лутом не получается и игра становится ущербной!!! по этому я с апреля потерял интерес к игре, как говорится разобрался в какое "Г" я вступил, но после каждого крупного обновления я захожу в игру и играю 1-2 дня, увидев отсутствие изменений забрасываю до следующего крупного патча.
PC: игра и концепция мне нравится, но реализация(((
Ещё добавлю дело не в компе и не в сетевом соединении!

  • Upvote 2

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
b38e7c858218a416ef714554dce933a2