Стрим The Last Guardian
Стрим-центр16 в эфире
[ESL] DuoQ со школьником esl_Luffi стримит Heroes of the Storm
Тестя тест Zloi_Mikki_Mouse стримит Overwatch
[RU/PS4Pro/60fps] Чудесный Паблик! MeSaNei стримит Call of Duty: Infinite Warfare
stream center intro slide 1

«Канобу» и «ВКонтакте» запускают «Стрим-центр» — сервис для тех, кто любит смотреть и проводить прямые трансляции. Наш сервис поможет делиться стримами с «ВКонтакте», Twitch и YouTube и обеспечит новую аудиторию, которой будет интересен именно ваш контент.

«Стрим-центр» доступен на любой странице «Канобу» — достаточно нажать на стрелку в верхнем правом углу и развернуть сетку с активными стримами. Вы также можете открыть чат, кликнув на иконку сообщения в правом углу.

Кнопка «Добавить стрим» позволит поделиться прямой трансляцией. После нажатия вы увидите три активных поля. В первой строке нужно вписать адрес канала, остальные поля заполнит наш сервис.

stream center intro slide 4

Делиться стримами — это просто! Попробуйте сами. Обратите внимание, что после добавления стрима ваша трансляция сначала отправится на рассмотрение модераторов.

2 3 581
6 мин.

Пост в «Паб» от 08.03.2011

Пост в «Паб» от 08.03.2011 - Изображение 1 Youtube
Black Ops "Lag" - Client vs. Host Comparison
Пост в «Паб» от 08.03.2011 - Изображение 2

Скажите честно - играю в мультиплеер некоего абстрактного шутера в ваакуме (батлфилд, контра и т.д.) частенько слышны крики возмущения на вроде таких: "Ну я же первый выстрелил" или "Нe я же на нож нажал" или моё любимое "Тупой сервак, половина пуль не зарегалась". И не только все это слышали, но и сами подвывали и не раз.
Давайте разбираться...

Начнём
Это несчастное слово знают все. Имя ему - лаг. Начать чешется почему-то с простого - попридираюсь к словам. Это, маленькие мои, не лаг. =)
Строго говоря лаг увидеть невозможно ибо его нет в графическом мире. Лаг это падение тока на крохотные доли амперов где-то в цифровом мире, это пропавший пакет из миллиона его копий, это что угодно но это не абстрактоное смешение двух картинок.
Когда на экране начинается пошаговая стратегия и прыжки через пол карты, это не лаги. Это их следствия. Как все советские люди называют копиры ксероксами, а липкую ленту скотчем, так и лаги стали лагами. Ну да ладно, это всё придирки.

Найдём пациента
Для примера возьмём простейший пример нашей современности, который не пнул только ленивый, а именно Call of Duty: Black Ops.
На ютубе есть масса роликов с жалобами на жизнь, но очень мало с доказательной частью. Но они есть и мы возьмём именно такой.
http://youtube.com/watch?v=0HRtdHmXEjs
Суть беды - создатель ролика утверждает, что во всём виноваты треклятые Treyarch.
Молодой буржуй валит всё проблемы на рукозадость программеров треярха, приводя в качестве доказательства снимок с телевизора и снимок с записи, сделанные в один момент времени. На снимках очевидна видна разница в положении как самого игрока, так и вражины.
Значит вывод отсюда - виноваты во всём лаги, баги и чёрт в ступе из треярх.
На этом наш юный друг сложил руки на брюхе, собрал 130 тыщ просмотров за два дня и сидит довольный.

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

Гонка в никуда. Need more...
*ремарочка: фпс в этом тексте, не аббревиатура от First Personal Shooter, а от Frame per Second - количество кадров в секунду, воспроизводимое на мониторе*
Зачем и почему все борятся за фпс? Даже не так - зачем мы покупаем компьютеры на всю зарплату?
Ответ очевиден - для бесконечной гонки за фпс.
Давайте разберёмся с ними...

60 фпс нам мало, при 75 мы жалуемся на жизнь, от сотни сидим и довольно хрюкаем.
Вопрос из зала - в телевизоре, этих самых ваших фпс, 25 в секунду. У буржуев 30 (изучаем википедию на вопрос форматов телевещания).
Если кто сомневается - частота смена кадров в телевизоре это тоже самое что и на мониторе. Без подвохов.
И так - на телевизоре мы смотрим нереальный боевик где всё бегает, взрывается и летает на частоте 24 кадра в секунду, а на компьютере мы жалуемся когда на показывают смену кадров с частотой в два раза выше (50 фпс). Нонсенс! Паника!!!

Объяснение крайне простое - при частоте больше 25 кадров в секунду мы перестаём различать увиденное нами как отдельные картинки, а видим поток изображения.

Зачем же нам тогда впаривают мониторы с частотой мерцания 90 герц, а великие прогеймеры неугомонно орут что нужны мониторы на 200? (Герц это величина обратная секунде, если что).

Для начала про телек: телевизор устройство глупое и показывает плоскость. Плоскость экрана на которую проэцируется плоская картинка. Просто набор меняющихся картинок в одной плоскости. И здесь всё честно- 25 кадров, глаз увидел, мозг самообналуся, попкорн пошёл по организму.

Погнали про компутер графикс
На первый взгляд монитор являет собой тот же телек. Плоская поверхность, кадры, разврётка, вилка в розетку и всё такое прочее. Значит беда не в мониторе, беда в картинке которую он показывает. И опять таки кажется, что ничего интересного не происходит- комп обсчитывает плоскую картинку и по шнурку отправляет её на монитор. Монитор показал картинку, все довольны.

К сожалению, всё совершенно не так. Изначально, в своём цифровом детстве, глубоко в видеокарте, картинка которую мы видим на мониторе, являет собой честный трехмерный объект. И как любому объёмному объекту ей присуща главная беда всех трехмерщиков - перспектива. Кто не знает что это такое, могу только посочувствовать и отправить в школьный справочник, остальным скажу что именно эта сволочь сводит рельсы на горизонте в точку ;)

Представим - мы стоим посреди площади. В метре от нас стоит ящик, в ста метрах от нас стоит машина. Договоримся, что фреймрейт необходимый для описания объёкта на удалении неким количеством информации, по сравнению с ближним объёктом, всегда будет больше. Или чуть-чуть более по русски - движение на дальних дистанциях всегда описывается меньшим количеством информации. Само собой в проекции на плоскость.
Без пол литры тут не понятно, поэтому нарисуем картинку.

В изначальной ситуации ГГ стоит и смотрит на объекты. Вдруг он решает повернуть голову направо т.е. вся картинка на экране должна сместиться относительно центра взгляда налево. Как видно из картинки, при одинаковом пройденном пути в пространстве, в проекции на плоскость монитора (то что увидим мы на экране) объекты прошли совершенно разные расстояния.

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

Обновим монитор за время прохождения ящиком трех пикслей 3 раза. Для нас ящик будет двигаться плавно и ровно. Но что же будет с машиной? А у машины из движения выпадет 2/3 информации и вместо плавного движения по пикселям она пройдёт путь 1-5-9 т.е. подвинется двумя скачками. Это называется эффект мерцания.

Что же делать, как нам быть? Очевидно, нам надо обновлять картинку на мониторе при каждом сдвиге на пиксель дальнего объекта (машины), и в избыточные (для движения ящика) моменты не менять положение ящика.
Отсюда делаем важный вывод- в компьютерной графике гораздо большее значения для динамики картинки имеют объёкты на удалении. И чем дальше он удалён, тем больше надо просчитать информации и тем чаще надо обновлять картинку на экране.

Вспоминаете гордость в голосе разработчиков когда они заявляют, что их новое творение поддерживает большие открытые пространства? Теперь вы знаете почему это круто =)

Ну я же в голову стрелял....
Разобравшись с картинкой, давайте разберёмся как происходит регистрация попаданий.
Строго говоря движку игры глубоко параллельно всё происходящее на экране. Он оперирует циферками, а картинки рисуют рабы вроде видеокарты.

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

Примитивы эти называются хитбоксы. Любое действие в игре связано с ними: тригеры анимации, счётчики всего на свете, скрипты и всё-всё-всё что вы видете вокруг себя, в шутерах завязано на хитбоксы.

Натуру предлагаю рассматривать на примере Team Fortress 2, по множеству неважных причин. В видео показано наложение игровой модели (то что видим мы) и хитбоксов (то что видит) компьютер.

http://youtube.com/watch?v=9TJmiDcsxdA

Вот так-то. Нога вашего любимого персонажа это три коробки из под ботинок =)
Вот мы и пришли ко второй проблеме - хитбоксы никогда не могут быть абсолютно точно совмещены с моделью игрока. Если кто не понимает почему, поясню- компьютер штука дискретная т.е. в конкретный момент времени он или рисует картинку или считает сдвиг хитбокса. Даже самый хитровыкрученный суперкомпьютер будет иметь временной интервал между двумя действиями. Вот хоть ты тресни...
Визуализировать эту проблему очень просто с помощью быстродвижущихся персонажей.

http://youtube.com/watch?v=gK-rYzFC1X0

Делаем вывод - чем дальше находится голова, тем хуже шанс что вы в неё попадёте. И не потому что стрелять не умеете, а потому что сильно возрастают значения всевозможных погрешностей.

Вовзращение джедая...
Нагруженные никчёмными знаниями, опять смотрим на видео буржуя.
Таймштамп 1-30. В игре мы боремся за задержки в тысячные доли секунд(привет пинг), а он нам хвать по секунду и всё тут. В этой игре за секунду можно проскакать пару метров или пролететь два этажа. А у него пасьянс на сантиметр не сошёлся...
Несолидно как-то...

Сравнение живой картинки с записью. А собственно как создаётся запись? Я имею в виду что мы на ней видим? Когда есть просто демка, то всё понятно - мы видим тоже что и видел игрок на своём экране. Но что за усреднение мы видим в полноценной записи - то что увидел сервер или то что увидел игрок, или то что увидел его сосед по парадной у себя на экране? У каждого человека своя картинка со своей задержкой, и сервер как может пытается её синхронизировать, но что попадает в запись? Я думаю что сами треярхи не до конца уверены в том, что за среднее по больнице мы там увидим.
Ну и сложим всё в компот - пинг, время обсчёта и отрисовки, всё это прилетает на сервер который должен ЭТО синхронизировать и разослать обратно. И как так жить?

Надоело
Ну что, остались ещё уверенные в том, что Treyarchвиноваты во всём на свете, включая физику этого мира? Программисты из них, конечно, фиговые, но не совсем же их винить во всём на свете ;)

Совместить в кучу всё на свете и заставить синхронно работать невозможно в принципе, но можно улучшить.

Поэтому моим любимым нытикам совет - идете в компьютерные клубы играть по локалке во вторую кваку. Пинг 2 мс, фпсов хоть задавись, кинуть мышкой в соседа - бесценно =)


Игры в посте

3 комментария