Комментарии 83
Полагаю аимбот легко вычисляется статистически.
Ведь главное, что интересует разработчиков — прибыль. А она зависит от количества активных игроков. А активные игроки расстраиваются и уходят, если их несколько раз подряд выносят хедшотами, пролетая сквозь стены, потому что они так не могут, а читер может.
Если пользователь не сможет понять никак, скилловой игрок или читер, то вреда будет не особо много и разработчики могут спать спокойно.
Я потому онлайн и забросил. Когда после каждого удачного матча доходит чуть ли не до оскорблений, сложно продолжать играть.
И такая ситуация во всех более менее популярных играх с PvP. От покупки той же GTA5 и вовсе отказался из за обилия читеров, действия которых порой приводят к бану игроков попавших в одну с ним сессию.
В большинстве f2p игр активные игроки, не являщиеся донатящими по 50$/сутки Абрамовичами, точно так же расстраиваются и уходят без всяких читов, оставляя отзыв "донатное гуано" в маркете.
Ибо крупный донатор может ровно то же что и читер (а порой даже больше), вот только его даже зарепортить нельзя ибо свой чит он купил не у левого васяна, а у разработчика напрямую. И тут уже на вой обычных игроков никто не смотрит.
И в итоге на равных играют донаторы vs читеры, ибо остальные не способны тягаться ни с первыми ни со вторыми.
А судя по тому как донатные игры (невзирая на отзывы и рейтинги) растут аки грибы после дождя — возникает мысль что на "количество активных игроков" в долгосрочной перспективе разрабам глубоко плевать. Главное на старте толпу создать, чтобы донаторы внесли побольше ради отрыва вперед, а дальше можно забить на всё и плодить сотни новых серверов или сотни копий игры с другим именем и рескином. А что за ад творится на старых и есть ли там кто — пофиг.
Чтобы отрисовать врага, вам придется отправить его координаты на клиент.
Так можно усложнить разработку и использование читов, но полностью избавится от читеров не получится.я может ошибаюсь, но не слышал про читеров на PS4.
P.S.
а в чем хумор читерства? Например, вот ты убиваешь любого игрока одним выстрелом, даже если ты целился условно в 2-3 см от него и что? Что это дает самому читеру? Или это какой то вид болезни
Что это дает самому читеру?
Ощущение превосходства. И нет, это не болезнь, это одна из довольно типовых хотелок человеческой психики, особенно в молодом возрасте и когда есть нехватка такого ощущения.
Ну вот ровно как хотелка принизить тех, кто хочет ощущать превосходство, написав что "это как-то вид болезни".
В киберпортивных играх читеры — неоспоримое зло для игроков.
Но представьте себе не киберспортивную, а типичную ф2п. Например уже мертвую ммо Perfect World. Летаете вы, качаетесь, и тут залетает человек, за месяц вкинувший в игру цену двушки в Москве, и выносит в соло человек 10. В чем его интерес? А в чем интерес играть остальным в игру, где за деньги можно подобное? И какая разница обычному игроку — отдал этот кадр деньги за приватный чит моддоделу или напрямую разрабам занес за такие возможности?
А вот читеру тут как раз возможность тягаться с такими и возможно даже спускать их с небес на землю :)
И тут читер зло во плоти лишь для разрабов ибо посягает на их кормовую базу. А для игроков уже пофиг — они и без читеров страдали ровно от того же благодаря разрабам.
Можно ещё постоянно менять код. Разрабы то ли Warface то ли Crossfire так делали одно время — читеры не успевали адаптироваться. Но почему-то потом отказались от такой защиты. Думают, потому что начало падать количество игроков.
Т.е. если у человека есть клиент, есть свой ssl ключ (или вы ему и локальные ключи генерируете? проверяете? ведёте реестр ключей?), то перехват трафика по которому гоняется json — ну это, возможно, не самая сложная задача. А далее либо свой бот, либо man-in-the-middle и всё в шоколаде. Нет?
Возможно, я путано объяснил. Просто нас был случай (это не геймдев), что инженер из конкурирующей компании зарядил сетевой сниффер и раскопал наш протокол (бинарный!) и даже воспроизвёл ответную часть, которая умудрялась что-то «мычать» в ответ.
От таких проблем защищаетесь? Или неактуально?
Что, если сервер будет запрашивать хеш не всего бинарника клиента, а какой-то случайной его части (среди тех библиотек, которые есть на всех устройствах)? Это исключает подстановку референсного значения «починенным» клиентом, поскольку тот заранее не знает, какой кусок будет выбран. Полученный хеш впоследствии можно использовать, например, для генерации сессионного ключа.
Вот мое:
- С сервера отправлять рандомный токен при при коннекте пользоваться, и использовать его при подсчете хэша всех библиотек
- Считать хэши библиотек и слать обратно на сервер
- На сервере проделывать ту же операцию, т.к. вы токен уже знаете
В таком случае вы и хэш от всего файла считаете, и алгоритм подсчет хэша на свое усмотрение меняете, чтобы усложнить жизнь господам читерам.
А, для еще большего усложнения, можно кипу вариаций придумать (главное чтобы работало быстро):
— отправлять токен и флаг с сервера. Флаг укажет куда добавлять рандомный токен (начало/конец файла) перед подсчетом хэша
— если алгоритм подсчета позволяет, отправлять токен и оффсет с сервера. Оффсет укажет куда добавлять токен перед подсчетом (понятно, что оффсет не должен превышать длину библиотек)
— можно считать хэш от библиотек, добавлять токен и считать хэш от сконкатенированных значений еще раз
— и т.п.
… и это никак не поможет, если в хакнутом приложении в функции пересчета хешей, неважно насколько они хитрые, будут подаваться оригинальные файлы, лежащие в соседней папки :)
Например банально, хранить количество жизней или деньги не в одном месте, а в двух трех, и работать со случайной либо с суммой. В общем несложно написать функцию, которая делает подобную процедуру.
И поиском в Artmoney 99% школьников уже не способны найти подобную уловку.
Сразу скажу, я не имею никакого отношения к разработке игр, поэтому может я что-то упускаю.
Но меня всегда удивляет когда я вижу такие техники в одиночных играх.
Если человек пошел память править чтобы начитерить, он портит удовольствие только себе и никому другому, причем сделает это осознанно. Причем не факт еще что портит, может быть небольшими изменениями он сделает эту игру в разы интереснее для себя.
С другой стороны, в ряде этих игр разработчики делают странное. Например, последний босс первой Ys раз тридцать убил меня уже после того, как я заморозил себе здоровье. А Ittle Dew 2 из головоломки (как первая часть) превратился кривую подделку под «souls-like» с кривым управлением. И пройти это без читов я бы не смог.
Бан в стиме просто за то, что зашёл в какой-то рейтинг, который интересен лишь тем, кто его откроет? Примерно как забанить на олимпиаде всю страну за то, что её команда по гольфу пользуется баллистическими калькуляторами.
Это же всего лишь какой-то рейтинг в каком-то сервисе. Неужели у кого-то есть цель проходить игры лучше всех, а не просто получать удовольствие? Кроме спидранеров.
Вам в игру играть и чсв в рейтинге тешить? Зачем вообще в сингл-игре париться о том, какие результаты у других, и ходить проверять их в рейтинге, который вообще ни на что (кроме чсв) не влияет.
Вы бы еще собранными ачивками мерялись (хотя подозреваю, что уже)
Вам в игру играть и чсв в рейтинге тешить?
Возможно для вас это будет сюрпризом, но рейтинг — это часть игры. Если уж его туда добавили, то и читеров оттуда нужно гонять.
Вы бы еще собранными ачивками мерялись (хотя подозреваю, что уже)
Ну раз уж вы перешли на личности, то можно мне услышать список игр, в которые мне можно играть и правила, которым мне следует подчиняться во время игры?
Ачивки, кстати, в юплее конвертируются во внутреигровые предметы. И иногда заставляют по-новому смотреть на игру. Конечно, есть и 100% тупые, типа «собери все предметы», но именно из-за ачивки «Immortal» я провёл пару дополнительных часов во Freedom Fall и получил от этого огромное удовольствие. Но, как мы недавно выяснили, это я просто неправильно в игры играю, не так, как нравится вам :(
Ачивки которые приносят игровые предметы — часть геймплея. Но опять же, тот факт что кто-то дома за читерские ачивки в сингл-игре исключительно у себя лично получил какие-то предметы — на ваш геймплей вообще никак не влияет т.к вы существуете абсолютно независимо и играете каждый в свою игру.
Так что накрученные рейтинги и ачивки в сингл-играх — даже и близко не рядом с читерами в играх. Они где-то на уровне редактора сейвов для Baldur's Gate.
Ачивки, например. Или лидерборды. И любые иные формы асинхронной соревновательности.
Помню, в ANNO 2070 опенбета-тестировали добавление в игру командных соревнования, где этапы игрались игроками команды поочерёдно как просто сингл сценарии, а победу одной из двух команд присуждали по то-ли сумме этапов, то ли очкам за этапы. И там попросту кто-то через что-то артманиобразное прошёл этап накинув себе безлимитно ресурсов и на них сразу отгрохав требуемый город.
Вроде идею на этом и похоронили.
Но чтобы кто-то полноценно защищал ачивки я не видел, да и ломают их обычно сейвскаммингом, это проще чем память править.
Лидерборды? Ну хз, может быть. Но чтобы полноценно защитить лидерборд нужен комплекс мере побольше чем защита от артмани, нужно всю игру вокруг этого дизайнить. Иначе в лидерборде будут все равно кулхацкеры, только из старшей школы, не из младшей.
Но чтобы кто-то полноценно защищал ачивки я не видел, да и ломают их обычно сейвскаммингом, это проще чем память править.
Тут я не уверен, но мне кажется, что юбисофт таких не любит. Их ачивки вполне себе конвертируются с подобие денег. А в Стиме вот действительно всё плохо и есть спецпрограммы, позволяющие открыть все ачивки за секунду, без всякого сейвскамминга.
Но чтобы полноценно защитить лидерборд нужен комплекс мере побольше чем защита от артмани
Часто в таких лидербордах в топе сидят люди, «прошедшие» игру/трассу/уровень/etc за ноль секунд. Потому что на что-то большее им не хватает знаний. Поэтому там даже никакого алгоритма не нужно — можно просто банить всех, кто показал физически невозможное время.
Только что вот проверил в geoguessr — в сегодняшнем «событии дня» на первых местах уникумы, которые за три минуты на раунд смогли пять раз подряд угадать место с точностью до нескольких сотен метров. Я видел невероятно хороших игроков в эту игру, но даже они не могут так.
Что мешает мне потратить немного ( или много )
Вотименно что много времени. Разлелить инт на сумму 2 чисел можно за пару часов, а мучений читеру это плюс 10 часов. Прибавляем автокраш при попытке отдебажить игру популярным средством и 99% читеров уже не могут ничего сделать.
— Хранение данных — тут я вообще не понял какая проблема?В одной игре запрет админки на стороне клиента делали)
Подсчет хеша всех библиотек самая глупая защита.Зато добавляет +X часов на взлом.
Разлелить инт на сумму 2 чисел можно за пару часов
Ну разве что если прямо на проде всё править. Иначе добавляются все шаги, необходимые для релиза.
Это ж на сколько надо защитить игру, чтобы продажи чита не окупили затрат времени? Особенно для человека, у которого подобные навыки уже развиты почти до автоматизма сотней защищенных подобным образом игр, а весь нужный инструментарий давно взломан/куплен?
Тут разве что дозащищаться до такой степени чтобы игроки с игры уходить начали и чит некому покупать стало :)
А их можно вычислить уже и забанить руками.
Вы же осознаёте, что читы и моды делают эти самые 1-2%, а остальные 80% просто берут готовое за деньги (или бесплатно) и пользуются?
полноценный клиент-сервер и 98% затрат на противоборство с читерами можно пропустить.
Профессиональных читеров останавливает только отсутствие выгоды, в остальном это вечная борьба.
Непрофессиональных — первичная сложность взлома, ибо им надо пересечь некоторый технологический порог в знаниях.
Вы же осознаёте, что читы и моды делают эти самые 1-2%, а остальные 80% просто берут готовое за деньги (или бесплатно) и пользуются?
Как человек продержавший в свое время несколько разных игровых серверов с онлайном от 100 до 100.000 игроков, я могу сказать, что против 1-2% бороться проще, чем против 10-15%.
Вдобавок с этими 1-2% можно даже договориться об определенных ограничениях и возможностях.
Мне кажется, единственный действенный способ бороться с читерами — это облачные технологии, когда на стороне клиента только устройства ввода.
А вообще разницы вообще не будет, если сервер игры будет находится в томже ДЦ, что и сервер стримминга:
Обычно: Игрок жмет кнопку, данные уходят на сервер, приходит ответ (Реакция на действие), компьютер рисует картинку в соответствии с новыми данными.
Стримминг: Игрок жмет кнопку, данные уходят на сервер, приходит готовая картинка, которую остаётся только отобразить…
Тогда пинг будет вообще незаметен.
Нет, будет.
А вообще разницы вообще не будет, если сервер игры будет находится в томже
ДЦ, что и сервер стримминга
Тоже будет.
Во-первых, игры на стороне игрока могут рендериться с очень высоким (и нестабильным) фреймрейтом. Стримингов, которые бы умели в динамический фреймрейт, да ещё и в 140+ кадров, я пока что не видел. Плюс это существенно повышает требования к пропускной способности канала. Во-вторых, они это делают асинхронно от взаимодействия с сервером. В-третьих, чтобы пришла готовая картинка, её сначала надо закодировать, а потом раскодировать — это тоже занимает время. И есть ещё всякие детали синхронизаций буферов вывода/рендера.
А ещё стриминг это большой компромисс в качестве картинки, даже при высоком битрейте.
Тоже будет.
Плюсую. Пинг 50ms до сервера стриминга (и условный 0 между сервером стриминга и сервером игры) и тот же пинг 50ms с клиента до сервера игры — это две большие разницы.
Всё дело в интерполяции на клиенте и сервере, которые очень хорошо компенсируют всю это задержку. И что невозможно сделать при стриминге.
Интересно было прочитать, вот только половина разработчиков (99.97%) вообще не борятся с читерами или пытаются бороться, но они (последние) придумывают новые способы обхода.
Это всё не решает проблему читеров, оф коз, но сама идея-то вроде прикольная.
В point blank долгое время была ситуация когда с читами были все. Вероятность получить в игре хоть одного честного игрока была крайне мала (и он сразу ливал).
На самом деле это был весьма интересный опыт, когда вы с противником видите друг друга еще с респа, и вы прекрасно знаете, что вы видите друг друга, и что у вас нет отдачи и т.д.
Тот еще майдгейм начинался в итоге)
Самым контролируемым способом будет вычисление текущего хеша на клиенте и отправка его на сервер
Получить путь до наших библиотек можно так:
Это первое что бы я начал искать в клиенте чтобы модифицировать.
Должен сказать, расчет корректности клиента на на клиенте совершенно ничего не даст.
Даже переход на фотон, если логика считается с привязкой к юнити, не поможет делать перерасчет на сервере полностью. Для этого ваш игровой код придется переписать скорее всего (даже если это будет API Photon Quantum). Мы с таким столкнулись в War Robots несколько лет назад, пришлось делать кворум из клиентов чтобы с неполной валидацией сервера хоть как то воспроизводить расчет не в атакующем клиенте. Но это весьма сложная конструкция, я бы так не делал. Если есть бюджет, то проще сразу сделать честный авторитарный сервер, изобретённый уже как 20 лет назад.
P.S. После перехода на авторитарный сервер все равно остаются более элегантные возможности для читов, борьбу с которыми я и ожидал увидеть исходя из заголовка. (Например: просмотр сквозь стены, коррекция прицеливания на лету, манипуляции с собственным пингом чтобы дать серверу рассчитать неправильно)
Первые пять шагов для перелома ситуации с читерами в PvP-шутере