Go vs Rust для realtime бэкэнда игры (20 запросов в секунду с каждого клиента)?
Есть задача сделать бэкэнд для realtime игры. А-ля counter-strike, но проще, смысл тот же: есть игроки, которыt в реальном времени стреляются, но всю картинку контролирует сервер, как в World Of Tanks.
Сервер будет каждые 50 мс связываться с каждым клиентом для оповещения о происходящем (т.е. 20 раз за секунду). Так же будет принимать с такой же частотой информацию с устройств ввода (направление движения игрока). Нужно по 250-500 человек на карту. Следовательно. минимально 5000 запросов в секунду с карты(комнаты). Подозреваю, что это будет предел на один сервер.
Проблема: есть онлайн игры которые тормозят, подергиваются, а есть которые работают плавно и четко не смотря на пинг. Так вот это характерно для Valve игр.
Может кто, чем помочь технологиями, либами, документациями, какой язык лучше подойдет?
С++ че-т не хочется рассматривать, писать кода надо много (дублировать функционал игры на сервере)
Руслан Янбердин: почитайте исходный код node.js, попробуйте внесит в него изменения, напишите один два больших и качественных по содержанию проекта на нём и тогда сами поймёте что он прилично кривой.
Это порядка ~ 200-230 карт(комнат) на одном сервере.
Проблема: есть онлайн игры которые тормозят, подергиваются, а есть которые работают плавно и четко не смотря на пинг. Так вот это характерно для Valve игр.
Здесь нужно думать об алгоритмах синхронизации. Есть много статей и обсуждений, затрагивающих эту проблему. Например, тут близко по теме: www.gamedev.ru/code/forum/?id=152443
В windows не силен :)
Спасибо за статью, за ссылку на форум. К сожалению нового ничего там не узнал(
Интересует что-то более внятное, чем размышления тех, кто это еще не делал.
Руслан Янбердин есть Mono под линукс и можно использовать c#, но вообще сам не пробовал. Проекты чисто визуально на "глаз" по скорости сравнивал go и с#. И asp.net c# работает медленнее, да и как-то мне показался он сложнее. Хотя на c#, думаю, можно написать ну почти всё...
Скорее раст
Но у тебя проблема не с рпс, а работа с предсказаниями
Те как бы часто ты не рассылал текущее сотояние на сервере, ты будешь опаздывать на один- два пинга пользователя. Что для шутера не приемлемо