GSClient | Новый клиент игры - глоток свежего воздуха

Ознакомление с клиентом


Создание своего протокола общения клиента с сервером.

Передача информации происходит по отдельному (не игровому) зашифрованному протоколу. Позволяет скрыть информацию от несанкционированного доступа стороннего программного обеспечения.

Например, от инжекторов, при помощи которых читы внедряются в процесс игры.

Защита клиента от внедрения стороннего ПО и изменения процесса игры.

По сути, это клиент-серверный античит. 100% гарантии защиты от читеров нет, т.к. даже античит MyAC этого не может гарантировать, но снизится число нечестных игроков в разы.

Всё можно сломать, при наличии времени и желания, в том числе и клиентскую часть, однако она будет постоянно обновляться, что осложнит создание вредоносного ПО, способного обходить защиту.


Удаленное обновление клиента.

Будет поддержка на постоянной основе с учётом автоматического сбора отчетов, что позволит вести дальнейшую разработку на основе реального состояния клиента.

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

Например, можно узнать разрешение экрана игрока, чтобы точно позиционировать положения HUD'a.

Создание уникального защищенного протокола идентификации клиента на сервере (UID).

Игрок с новым клиентом будет иметь уникальный ID, схожий со SteamID в Steam, в связи с чем будет осложнен обход бана и будет надежная идентификация игрока. На данный момент мониторинги используют устаревший эмулятор SteamID под названием RevEMU. Он формирует некий пиратский SteamID на основе серийного номера жёсткого диска, подменить который — не составляет труда. В то время, как генерация UID будет происходить на основе совокупных характеристик ПК. Одно дело сменить серийный номер диска, а другое - сменить ПК для обхода или получения привилегий на сервере. Типичные советы: «переустановить винду», «поставь протектор» и т.п. — перестанут работать.

Благодаря этому, отпадает надобность в бане подсетей, что весьма вредно, ибо блокируя подсети, автоматом банится огромная масса игроков с заблокированных ip-адресов.

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


Защита от коллизий.

RevEMU несовершенен и вполне допускает игру на одном сервере разных игроков с одинаковыми SteamID. К чему это может привести? Да к тому, что, допустим, ветеран сервера долго и упорно копит какой-то опыт, лут, бонусы и т.д., а тут заходит какой-то новичок с таким же SteamID и получает всё бесплатно. Пишет в чат разную чушь, тратит накопленное, портит статистику или получает бан. Новый уникальный UID подобного не позволит!


Ограничение доступа на сервер устаревшим клиентам.

Владелец сервера будет иметь выбор: пускать игроков со старыми клиентами (эмуляторами) от мониторингов или нет.

Жулик, берегись! :)

Добавление возможности проверки через сервер значений кваров в памяти и целостности файлов клиента.

На сегодняшний день ответ клиента на запрос сервера могут подменять протекторы, что делает серверные античиты всё менее эффективными.

Новый клиент будет защищен от отправки фейковой информации, что даст возможность проверки переменных, настроек и файлов.


Добавление возможности ограничения кваров клиента на сервере.

Особенно важно для модовых серверов, однако и для классических будет нелишним. Например, FPS не более 102, cmdrate не менее 60.

Некоторые игроки поставят себе cl_cmdrate 20 и бегают вроде как пинг понизили, а по факту — их модель у остальных лагает, движется рывками.

Добавление в клиент защиты от вредоносных команд со стороны сервера.

Плагины, наподобие amx_destroy или amx_sysbizz - нонсенс в игростроении.

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


Защита от подмены дыма.

Сейчас достаточно провести небольшие действия над файлом particleman.dll или gaspuff.spr - и дыма нет. Обмануть серверный античит — не составляет труда. Аналогично с NoFlash.


Удаление видеорежимов 16 бит и Software.


Исправление просветов (видимость сквозь текстуры после смерти при переключении камеры от 3 лица).

Проблемный баг (особенно на CW).


Блокировка ряда скриптов.

Например, Bunnyhop, Silent Run, Double Duck.

Проверка запущенных процессов на ПК игрока при желании админа (скайп, торрент).

Можно будет, при заходе на сервер, требовать закрыть торрент-клиент или проверить, нет ли потенциальной передачи игровой информации через стороннее ПО.


Алиасы на клиенте.

Админ сможет отправить себе список загруженных в память алиасов игрока.


Современный браузер в MOTD - окне.

В настоящее время стим-клиент использует новый браузер в MOTD на основе Chrome, в то время, как клиенты мониторингов, до сих пор вставляют IE 5. Как следствие - информация выглядит у всех по-разному. Кроме того, на старом браузере нормально не реализовать многие интересные идеи.

Например, игрока убили, он нажмет Esc (откроет MOTD) и будет сидеть Вконтакте пока не начнется новый раунд. Это для многих игроков плюс, далеко не всем интересно просто смотреть в монитор.

Шифрация ресурсов: карт, моделей, спрайтов.

Интересно маперам, моделлерам, заказчикам. Какова нынче ситуация в сфере заказов?!

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

Борьба с такими вещами будет происходить следующим образом: требующие защиты ресурсы — зашифруются, клиент с сервера будет скачивать их в зашифрованном виде. Шифрация будет работать в связке клиент-сервер, и если ресурс перенесли на другой сервер — работать он не будет.

Более подробная информация для заинтересованных лиц и владельцев серверов: https://dev-cs.ru/forums/113/


Авторы: «ReHLDS Team» и «Dev-MS Team»