Перейти к содержимому



Матан, скука и хитбоксы....


  • Вы не можете ответить в тему
Сообщений в теме: 4

#1 RSS Bot

    Прозаик

  • 365 сообщений
0
Ни рыба, ни мясо
  • Пол:Мужчина
  • Город:RSS

Отправлено 16 Февраль 2011 - 18:23

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

Собственно сам пациент:




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

Рука-лицо.jpg и много матана
Ну поехали разносить правоверного.
Начать чешется почему-то с простого - попридираюсь к словам. Это, маленькие мои, не лаг. =)
Строго говоря лаг увидеть невозможно ибо его нет в графическом мире. Лаг это падение тока на крохотные доли амперов где-то в цифровом мире, это пропавший пакет из миллиона его копий, это что угодно но это не абстрактоное смешение двух картинок.
Когда на экране начинается пошаговая стратегия и прыжки через пол карты, это не лаги. Это их следствия. Как все советские люди называют копиры ксероксами, а липкую ленту скотчем, так и лаги стали лагами. Ну да ладно, это всё придирки.
Вернёмся к сути разговора и обратимся к матану - зачем и почему все борятся за фпс? Даже не так - зачем мы покупаем компьютеры на всю зарплату?
Ответ очевиден - для бесконечной гонки за фпс.
Давайте разберёмся с ними...
60 фпс нам мало, при 75 мы жалуемся на жизнь, от сотни сидим и довольно хрюкаем.
Вопрос из зала - в телевизоре, этих самых ваших фпс, 25 в секунду. У буржуев 30 (изучаем педивикию на вопрос форматов телевещания).
Если кто сомневается - частота смена кадров в телевизоре это тоже самое что и на мониторе. Без подвохов.
И так - на телевизоре мы смотрим нереальный боевик где всё бегает, взрывается и летает на частоте 24 кадра в секунду, а на компьютере мы жалуемся когда на показывают смену кадров с частотой в два раза выше (50 фпс). Нонсенс!
Объяснение простое - от 25 кадров мы перестаём различать различать увиденное нами как отдельную картинку.
Так зачем нам впаривают мониторы с частотой мерцания 90 герц, а великие прогеймеры неугомонно орут что нужны моники на 200? (Герц это величина обратная секунде)
Сейчас я выжру вам мозг *EVIL*
Для начала про телек: телевизор устройство глупое и показывает плоскость. Просто набор меняющихся картинок в одной плоскости. И здесь всё честно- 25 кадров, глаз увидел, мозг самообналуся, попкорн пошёл по организму.
Погнали про компутер графикс.
На первый взгляд монитор являет собой тот же телек. Плоская поверхность, кадры, разврётка, вилка в розетку и всё такое прочее. Значит беда не в мониторе, беда в картинке которую он показывает. И опять таки кажется, что ничего интересного не происходит- комп обсчитывает плоскую картинку и по шнурку отправляет её на монитор. Монитор показал картинку, все довольны.
К сожалению, всё совершенно не так. Изначально, в своём цифровом детстве, картинка которую мы видим на мониторе, являет собой честный трехмерный объект. И как любому объёмному объекту ей присуща главная беда всех трехмерщиков - перспектива. Кто не знает что это такое, могу только посочувствовать и отправить в школьный справочник, остальным скажу что именно эта сволочь сводит рельсы на горизонте в точку ;)
Представим - мы стоим посреди площади. В метре от нас стоит ящик, в ста метрах от нас стоит машина. Договоримся, что фреймрейт необходимый для описания объёкта на удалении неким количеством информации, по сравнению с ближним объёктом, всегда будет больше. Или чуть-чуть более по русски - движение на дальних дистанциях всегда описывается меньшим количеством информации. Само собой в проекции на плоскость
Без пол литры тут не понятно, поэтому нарисуем картинку.
Изображение
В изначальной ситуации ГГ стоит и смотрит на объекты. Вдруг он решает повернуть голову направо т.е. вся картинка на экране должна сместиться относительно центра взгляда налево. Как видно из картинки, при одинаковом пройденном пути в пространстве, в проекции на плоскость монитора (то что увидим мы на экране) объекты прошли совершенно разные расстояния.
Предположим, что ГГ настолько сознателен, что поворачивает свою голову с постоянной скоростью. Для удобства восприятия, согласимся на то что проекция ящика прошла по плоскости монитора 3 пикселя, а машины 9.
Обновим монитор за время прохождения ящиком трех пикслей обновился 3 раза. Для нас ящик будет двигаться плавно и ровно. Но что же будет с машиной? А у машины из движения выпадет 2/3 информации и вместо плавного движения по пикселям она пройдёт путь 1-3-6 т.е. подвинется двумя скачками. Это называется эффект мерцания.
Что же делать, как нам быть? Очевидно, нам надо обновлять картинку на мониторе при каждом сдвиге на пиксель дальнего объекта (машины), и в избыточные (для движения ящика) моменты не менять положение ящика.
Отсюда делаем важный вывод- в компьютерной графике гораздо большее значения для динамики картинки имеют объёкты на удалении. И чем дальше он удалён, тем больше надо просчитать информации и тем чаще надо обновлять картинку на экране.
Поэтому нам нужны большие фпс.
Можете идти выпендриваться познаниями передпервокурсницами =)

Ну я же в голову стрелял....

Разобравшись с картинкой, давайте разберёмся как происходит регистрация попаданий.
Строго говоря движку игры глубоко параллельно всё происходящее на экране. Он оперирует циферками, а картинки рисуют рабы вроде видеокарты.
То что мы видим как модельку игрока, компьютер видит как набор графических примитивов, взаимодействующих между собой. По умному - вступающих в коллизии.
Примитивы эти называются хитбоксы. Любое действие в игре связано с ними: тригеры анимации, счётчики всего на свете, скрипты и всё-всё-всё что вы видете вокруг себя, в шутерах завязано на хитбоксы.
Натуру предлагаю рассматривать на примере Team Fortress 2, по множеству неважных причин. В видео показано наложение игровой модели (то что видим мы) и хитбоксов (то что видит) компьютер.



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




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


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

Сообщение отредактировал flugger: 17 Февраль 2011 - 08:57


  • 0
В окопах атеистов не бывает.

#2 Sukhov

    Отец флуда

  • 12 298 сообщений
1 367
Круче только горы
  • Пол:Мужчина
  • Город:Moscow
  • Игра/Ник:Sukhov__

Отправлено 17 Февраль 2011 - 03:50

мамнь, видосы-то воткни!
Для втычек видео есть в форме ответ кнопочка из 3-х картинок. В нее ссылки на видео.

  • 0
----------------------------------------------------------------------------------------------
@2841254-isel.png

#3 Shazo

    В каждой бочке затычка

  • 769 сообщений
19
Меня заметили!
  • Пол:Мужчина
  • Город:Люберцы
  • Игра/Ник:Shazorus

Отправлено 17 Февраль 2011 - 08:03

Из тупейшего текста всем понятного следует что нафиг целится -решает рандом... Так и не поянл нахрена нам тут рассказывают про гонку за фпс если видео с консолей?

Сообщение отредактировал Shazo: 17 Февраль 2011 - 09:36


  • 0

#4 flugger

    Отец флуда

  • 3 421 сообщений
740
СуперПупс
  • Пол:Мужчина
  • Город:Питер
  • Игра/Ник:LoxmatiyMamont

Отправлено 17 Февраль 2011 - 08:58

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

  • 0

#5 Sukhov

    Отец флуда

  • 12 298 сообщений
1 367
Круче только горы
  • Пол:Мужчина
  • Город:Moscow
  • Игра/Ник:Sukhov__

Отправлено 19 Февраль 2011 - 18:21

Мамань, поправил, можешь докидывать видосы.

  • 0
----------------------------------------------------------------------------------------------
@2841254-isel.png





Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых


Количество пользователей, прочитавших эту тему: 0


Skin designed by Evanescence | Skin updated by Lesovsky
Яндекс.Метрика