Any game C++ разработчик на fastcup

Maxpain

Участник
Сообщения
5
Реакции
10
Всем привет.
Мы ищем C/C++ разработчика с опытом использования DPDK в продакшене.
Фуллтайм. ЗП белая 200-250к. Удаленка, но можно и в офисе работать и/или социализироваться (башня Федерация в Москва Сити).
Сайт компании: onmoon.ru, пилим всякое вокруг да около геймдева)
Сайт проекта: fastcup.net

Немного о проблемах, которые нужно будет решать. У нас есть 30+ kubernetes кластеров, разбросанных по всему миру на которых мы запускаем игровые CS:GO сервера (протокол UDP, stateful (все состояние в памяти)), а наши алгоритмы матчмейкинга подбирают игроков по региону и дают им ip:port игрового сервера, к которому они подключаются из Counter-Strike.
Мы испытываем большие трудности с DDoS'ами, каждый день мы получаем около 20-30 атак 30-60гбит в среднем. Почему ддосят? Вандализм и, самое главное, возможность считерить — НЕ проиграть матч и не получить минус к рейтингу (ведь в случае ддос-атаки сервер падает и матч отменяется).
Нам важно чтобы у игроков был низкий пинг, поэтому мы запускаем игровые сервера в разных точках планеты и далеко не везде есть техническая возможность организовать защиту. Особенно на уровне L7. Особенно для UDP. Особенно для игровых серверов. Да и брать аплинки в каждом регионе и фильтровать атаки самому выйдет ультрадорого. Ну и митигатор стоит космических денег :)
Облачные хостинг-провайдеры использовать не получится — виртуализация и серверное железо не подходит по перфомансу, да и регионов у них немного.
Anycast-гигантов для защиты, по типу CloudFlare использовать не получится по нескольким причинам:
— Сам по себе Anycast очень негативно сказывается на latency у наших пользователей, это подходит только для защиты сайтов, где latency не очень важна.
— UDP защиты почти нигде нет, а если есть, то только L4 (транзит).
— Нет многих регионов, которые нам нужны, такие как дальний восток.
Похожие проблемы имели и Valve, но они пришли к весьма интересному решению (
), сделав сеть из UDP проксей (Steam Datagram Relay, SDR) и скрыв оригинальные IP-адреса игровых серверов. А подключение к игровым серверам происходит не напрямую а через эти самые UDP proxy (SDR). Если подключения до одного SDR нет (кто-то решил заддосить этот прокси), то клиент игры начинает слать UDP пакеты на другой SDR и игрок даже не чувствует этого переключения (нет лагов, переподключений и т.д.). Построив большую сеть из таких проксей мы сможем эффективно защититься от ддос атак, так как будет невозможно положить всё сразу. В самом худшем случае мы будем иметь деградацию сервиса, в таком случае у игроков просто поднимется пинг, так как они переключатся на более удаленные от них прокси-сервера.
Более того это уменьшает пинги во многих случаях, все мы знаем что интернет не идеален и существует огромное множество проблем с маршрутизацией, из-за которых страдают игроки в онлайн-играх. В этом ролике про это также говорится.

Мы хотим построить такую же сеть) Если заинтересовало, пишите в телеграм: maxpain
Сообщения автоматически склеены:

Тот кто приведет мне такого человека, которого в итоге мы возьмем на работу, получит бонус в размере 50 тысяч рублей
 
Последнее редактирование:

Banana

Участник
Сообщения
892
Реакции
113
Как вы заставите клиент игры слать пакеты на другой SDR и как клиент игры на лету (без переподключения) поймет что пакеты с другого SDR это то же соединение.. ип у всех SDR разный..

Чтоб сделать такую схему нужно переписать работу сокета клиента игры или перехватывать ее работу сторонним процессом - а это значит заставлять каждого игрока качать к себе програмку чтоб иметь возможность у вас играть?

Обьясните кто нибудь, может я чет не понимаю=/
 
Последнее редактирование:

Maxpain

Участник
Сообщения
5
Реакции
10
Как вы заставите клиент игры слать пакеты на другой SDR и как клиент игры на лету (без переподключения) поймет что пакеты с другого SDR это то же соединение.. ип у всех SDR разный.. Обьясните кто нибудь, может я чет не понимаю=/

Привет. У нас пользователи устанавливают наш клиент, он просто перехватывает трафик из игры и подменяет там ip:port, ровно тоже самое происходит и на стороне игрового сервера, так что соединение с игровым сервером прозрачно для обеих сторон, и смена SDR никаком образом не влияет на игровой процесс.
 

Danyas

Участник
Сообщения
2,173
Реакции
1,072
Как вы заставите клиент игры слать пакеты на другой SDR и как клиент игры на лету (без переподключения) поймет что пакеты с другого SDR это то же соединение.. ип у всех SDR разный..

Чтоб сделать такую схему нужно переписать работу сокета клиента игры или перехватывать ее работу сторонним процессом - а это значит заставлять каждого игрока качать к себе програмку чтоб иметь возможность у вас играть?

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

@Maxpain, есть один человечек, я ему линк дам.
 

Banana

Участник
Сообщения
892
Реакции
113
Привет. У нас пользователи устанавливают наш клиент, он просто перехватывает трафик из игры и подменяет там ip:port, ровно тоже самое происходит и на стороне игрового сервера, так что соединение с игровым сервером прозрачно для обеих сторон, и смена SDR никаком образом не влияет на игровой процесс.

Позвольте поинтересоваться. А можно ли имея 2 клиента игры полностью скопировать трафик одного клиента игры и передать его с подменой Ip:port другому клиенту, чтоб тот синхронно делал то-же самое что и первый клиент только на другом игровом сервере.? Получится как-бы зазеркаливание трафика, как другой сервер на это отреагирует ?
 
Последнее редактирование:

Maxpain

Участник
Сообщения
5
Реакции
10
Позвольте поинтересоваться. А можно ли имея 2 клиента игры полностью скопировать трафик одного клиента игры и передать его с подменой Ip:port другому клиенту, чтоб тот синхронно делал то-же самое что и первый клиент только на другом игровом сервере.? Получится как-бы зазеркаливание трафика, как другой сервер на это отреагирует ?
Скорее нет, чем да. Но я не уверен
 
Сверху Снизу