Комментарии 11
Мы инжектимся в игровой процесс без задержки, без синхронизации игры и рендеринга. Когда игра зарендерила видеокадр, то мы инджектнемся в этот момент, захватываем картинку и сразу отправляем на энкодер.
1) аппаратный энкодер ?
2) или вы энкодите кадры прямо в видеокарте ?
Вопрос автору. А как насчет карт AMD ? Они не взлетели ? И на сколько мне известно, консьюмерские карточки nvidia нельзя использовать в серверах, прямое нарушение.
Мы используем карты обоих вендоров, AMD не так многочисленны по историческим причинам. Но стратегические масштабироваться будем с теми, где будет лучшее соотношение цена/качество.
По поводу нарушения, лицензионное ограничение немного другое и касается драйверов. Мы не нарушаем его.
А как можно не использовать драйвера? Мне кажется, драйвера сложно установить от серверных видеокарт. Вы используете в серверах консьюмерские версии windows, что тоже под запретом, нужны DC , у вас windows 10. Скажите, пожалуйста, для вас это осознанный риск или MS разрешает VK group так делать?
Расскажите, пожалуйста, насчет аппаратных энкодеров карт AMD , хорошо работают или плохо? Вы используете Nvidia карты, серверные Вам не подошли? На сколько знаю, у серверных производительность будет хуже чем у обычных, особенно в операция связанные с энкодированием.
Какой на Ваш взгляд оптимальный серверный CPU (AMD/Intel), какая минимальная частота?
На Ваш взгляд , сколько надо VM (vCPU/ram/сеть 10gbit на сервер) ?
А как игры подключаются ? У вас файловая система + iscsi и это все как диск подрубается к VM ? Не грузит ли это кластер из ssd дисков , когда куча людей стучится в кластер?
Какова плотность одного сервера?
И зачем вы используете сишные либы webrtc ? Имхо, это не самый удачный протокол для cloud gaming
Драйвера конечно же используем лицензионные как и лицензионную Windows. В рамках договоров это всё закрывается.
Енкодеры AMD работают достойно, но есть есть свои нюансы по сравнению с Nvidia. Для пользователей Cloud Gaming можно считать, что уровень одинаковый.
Мы используем различные видекокарты Nvidia, в большей массе это серверные карты, либо специализированное решени Nvidia для Облачного гейминга, аналогичное, что используется в их собственном сервисе. По производительность енкодер одинаковые, в рамках погрешности. Всё-таки основную нагрузку несёт графический модуль, а не енкодер.
Про оптимальность нельзя говорить, так как разные игры требуют разных ресурсов, поэтому ответ тут не дам. Кроме производительность есть и другие ограничение, так как наличие, поддержка, ну и цена.
Дальше много вопросов, про которые возможно будет ответ тут: https://habr.com/ru/company/oleg-bunin/blog/480622/
WebRTC используем, чтобы играть в браузере без клиента.
Спасибо большое за ответы! Алексей, скажите, пожалуйста, а с quic не игрались в качестве транспорта? Интересно, дает ли стабильность по сравнению с udp.
Подскажите, пожалуйста, а сколько кадров в пакет кладете, чтобы это быстро долетало и стабильно работало. Кадры перезапрашиваете, если они потерялись?
Не игрались, не видим смысла. У нас свой протокол поверх UDP, с многолетними доработками под узкую задачу.
Остальные вопросы требуют глубокого ответа. Если есть желание, то можем созвониться и я расскажу, в любых соц.сетях я @lykovaleksey
Как оптимизировать Latency в Cloud Gaming