Half-Life и Adrenaline Gamer форум

Всё об игре в Халф-Лайф и АГ
Текущее время: 28 мар 2024, 18:29

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Как железо влияет на игру?
СообщениеДобавлено: 26 янв 2013, 19:59 
Не в сети
Зарегистрирован:
01 июн 2010, 21:54
Последнее посещение:
08 янв 2024, 22:48
Сообщения: 1269
Откуда: Новосибирск
Сабж: игра совершенно по разному ведет себя на разных компьютерах:

1) Разница в работе многих фиксированных объектов, таких как trigger_hurt или trigger_push.
Например, на карте есть кислота с установленным уроном в 32. В локалке, падая в нее, я теряю по 32 хела в секунду, на сервере - 48 или 64, а на втором просто моментально умираю даже с 100\100.
Другой пример: вентилятор отталкивает с силой в 4096 юнитов в секунду. В локалке, я от него едва отлетаю, на сервере не отлетаю вообще, а на другом сервере он меня впечатывает в стену с титаническим усилием.

2) Критичное различие поведения мышки на разных компьютерах.
У меня есть ноутбук и стационарный системник, и я не могу добиться одинакового управления. Проблема в ХЛ, ХЛ2 и еще нескольких играх.
В винде, мышь с выключенным сенсом и одинаковыми настройками чувствительности ведет себя совершенно одинаково. В ХЛ - бардак. Один и тот же клиент, с одинаковыми настройками, на обоих компах, но одна и та же мышь ведет себя по разному. Отличается даже не сенс, а микроконтроль в поворотах и их плавности, на ноутбуке мышка словно с усилием ползает, с меньшим ускорением и с заносами.

3) Тотальная разница в распрыге вне зависимости от фпс.
И собственно разница во всей физике игры. При одинаковом, стабильном фпс (допустим 250) в игре все происходит по разному. У кого-то резче, у кого-то плавнее, у кого-то на серфе от поверхности титаническое ускорение, а кто-то камнем вниз летит, длинна и скорость прыжка с места, вообщем отличается все, в зависимости от того где играть. Я обошел кучу игроков в НСК и СПб, и посидел у каждого за игровым местом - у всех игра разная, и с разной физикой, при одинаковых фпс и настройках (я, разумеется, вкатывал свой конфиг).

Подвожу к вопросу всей темы: как железо влияет на игру? Какие зависимости известны?

Сразу поделюсь своими результатами наблюдений:
>Линейное "чем мощнее комп, тем быстрее" - ложь. Можно получить игрока-черепаху на топовых конфигурациях, и ускорятся с места до ненормальных скоростей на третьем пне (случаи из практики)
>Есть зависимость в видеокарте ATI \ NVIDIA. Переставлял мощную топовую ATI на не уступающую ей NVIDIA - фпс осталось 250, а физика в игре разительно изменилась.
>Ноутбуки как правило проигрывают стационарникам, даже старым, в резкости распрыга. На них он как правило плавный и постепенный (разумеется если сравнивать на одинаковых 250 фпс)
>Сервер очень влияет. Прыгая как бог на одном, можно беспросветно залипать в пол на другом, даже если у них нет разницы в пинге и настройке.
>На ХЛ очень влияет установлен ли стим, даже если это сборка с ревему. С включенным и выключенным стимом - две разных игры. Так же отличаются по сути ревему и лицензионная сборка со стима.

_________________
ワイルド、クール&スウィンギン'


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Как железо влияет на игру?
СообщениеДобавлено: 26 янв 2013, 21:50 
Не в сети
Аватара пользователя
Зарегистрирован:
24 янв 2012, 05:43
Последнее посещение:
14 авг 2015, 03:49
Сообщения: 45
Да,всякое бывает.У меня например на разрешении 720x576 игра шустро идёт,а на 800x600 вата...


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Как железо влияет на игру?
СообщениеДобавлено: 27 янв 2013, 02:38 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
26 мар 2024, 21:42
Сообщения: 6864
Да ладно, опять эта тема?
Kimi Tsunagi Five M писал(а):
как железо влияет на игру? Какие зависимости известны?
Почитай на вике, ладно?

Я как бы не против конструктивного обсуждения, мне тоже интересно, но то как ты всё перечислил - просто салат.
И везде 250 фпс... А может нет?

Про первый пункт - это хотя бы можно проверить. А про мышь - там нвсё на уровне "мне показалось".
Worldspawn говорил что в стиме мышь не такая, причем как в ХЛ, так и в АГ. Я ему до какой-то степени верю, но сам такой разницы именно в мышке не улавливаю. И что делать?
Разница в распрыге - она от фпс легко появляется. А ты пишешь что одинаковый...

Kimi Tsunagi Five M писал(а):
можно беспросветно залипать в пол на другом
Эпитеты, эпитеты... А на деле на всех серверах одинаково от пола отпрыгивает.

Kimi Tsunagi Five M писал(а):
На ХЛ очень влияет установлен ли стим, даже если это сборка с ревему. С включенным и выключенным стимом - две разных игры.
А я вот не ощущаю разницы. Но у меня не с ревему.


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Как железо влияет на игру?
СообщениеДобавлено: 27 янв 2013, 11:45 
Не в сети
Зарегистрирован:
01 июн 2010, 21:54
Последнее посещение:
08 янв 2024, 22:48
Сообщения: 1269
Откуда: Новосибирск
Я считаю, что Лев предвзято рассуждает. Еще мнения будут?

_________________
ワイルド、クール&スウィンギン'


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Как железо влияет на игру?
СообщениеДобавлено: 27 янв 2013, 13:01 
Не в сети
Зарегистрирован:
12 дек 2010, 17:01
Последнее посещение:
08 янв 2017, 23:01
Сообщения: 135
Зависимости?
Да как и почти у всех игр наверно: HDD,процессор,память, видеокарта))))))
По 1 пункту если честно мистика, я такое даже не разу не встречал такого, хотя в свое время на многих пабликах побывал.
2 пункт, пишешь усилие, трение великая вещь) Фактор который очень влияет на восприятие. Если докапаться то не все одинаково, в ноуте и стационнарном компе отличается внутренности, и ноут направлен больше в сторону тачпада, так что подвонные камни типа тех когда пишут на коробках Производитель оставляет за собой право изменять...... И поверь они меняют) А ты потом тока из инета узнаешь посмотри ривизию и проч.
3 пункт Всегда интересно, было узнать плавность и проч, как так человек физически тока 24 кадра видит. Каким макаром он может 100 отлечить от 250?)))) При брилижение проблемы становится понятно, что имеют ввиду, мне кажется математика, ведь можно на прямой поставить 10 точек, а можно 5, растояние между точками в ХЛ это ex_interp(кста в соурсе от этой переменной избавились) , естественно когда модель движется на основание 10 точек, результат лучше, чем на 5. Но привязать это к железу сложно.(и кста больше 100 точек в ХЛ не подерживается по краней их сетевой код на это не расчитан, так что 250 это использование не задокументированных воможностей, которые зачастую приводят к "багам")

Ярко выраженной зависимость сложно найти, можно обсудить плюшки, что мешает в игре(хронические/систематические/''у всех"), и как это исправить.


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Как железо влияет на игру?
СообщениеДобавлено: 27 янв 2013, 15:25 
Не в сети
Аватара пользователя
Зарегистрирован:
02 окт 2010, 12:50
Последнее посещение:
06 фев 2016, 01:24
Сообщения: 101
Kimi Tsunagi Five M писал(а):
1) Разница в работе многих фиксированных объектов, таких как trigger_hurt или trigger_push.
Например, на карте есть кислота с установленным уроном в 32. В локалке, падая в нее, я теряю по 32 хела в секунду, на сервере - 48 или 64, а на втором просто моментально умираю даже с 100\100.
Я замечал такую зависимость с разными фпс и пингом.

_________________
^)


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Как железо влияет на игру?
СообщениеДобавлено: 27 янв 2013, 15:32 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
26 мар 2024, 21:42
Сообщения: 6864
cubeer писал(а):
так человек физически тока 24 кадра видит
Это заблуждение. При ~25 кадрах в сек, движение начинает казаться непрерывным. А частоты глаз может различать намного большие (до нескольких сотен).

cubeer писал(а):
растояние между точками в ХЛ это ex_interp
cubeer писал(а):
и кста больше 100 точек в ХЛ не подерживается по краней их сетевой код на это не расчитан, так что 250 это использование не задокументированных воможностей, которые зачастую приводят к "багам"
Это всё выдумки. Ну или можешь попробовать привести пруфлинк.

Вот правильное описание интерполяции и экстарполяции: http://forums.steampowered.com/forums/s ... stcount=11
Цитата:
The netcode is a complex mess that and difficult to explain. I'll try anyhow. Things to understand:

*** There are two different types of interpolation. Both forms of interpolation have to do with smoothing discrete movement, because discrete movement feels jerky and unnatural.

First, the type I describe in the video, which is interpolating your own position. This type of interpolation has to do with the "prediction" mechanism in source. Your computer simply predicts how the server will move you based on your movement+shooting commands, and simply smooths your movement based on those predictions. I.e. "Since in 15ms (on the next tick), I will have moved 3 units forward, in 5ms (on the next frame) I will have moved 1 unit forward".

The second type of interpolation is entity interpolation. Entities are all enemy players, objects like weapons etc. Interpolating their position is more difficult since your computer can't guess where they are going (or it does, this is called extrapolation, but it has problems greater than those of interpolation). Instead, your computer doesn't draw the position of entities immediately. Imagine your cl_interp value was 1second (this is a huge value). Obviously your computer has knowledge exactly where the clients were 1 second ago, but also where they were 990 ms ago. In this case objects would move smoothly on your screen, because your computer can simply interpolate the position of all entities if the frame happens at -995ms (its halfway where they were at 1000ms ago and 990ms ago). However, they would be behind their actual position by the same amount (1000ms). This can be accounted for by remembering how much your interp is serverside, and reconstructing all players positions to calculate each hit when you shoot. This leads inevitably to the dying behind walls effect, but also allows the game to flow smoothly and naturally. There is simply no way around this other than playing on lan and tick 1000+ servers, which is obviously impossible.

*** cl_updaterate controls how often the server attempts to send the client an update package, and cl_cmdrate how often the client attempts to send the server a command package. All networking is done only on tick frames, both on the client and on the server.

*** rate caps momentary bandwith. Rate works by delaying sending packages (choking the package) that are larger than rate/updaterate to the next tick. It is easy to monitor this by looking at net_graph 1 while on a server, since large packages are labeled by the package size. When a package is choked, sending of the package is delayed until the next tick frame after (package size)/(time from last package in seconds) equals rate.

Because of these facts, you want to have as high possible cl_updaterate and cl_cmdrate, so that you get an update package from the server every server tick and so that you send a command package to the server every client tick. Also you want to raise rate above values that might cause choke, since choke is basically always unnecessary. If you experience channel congestion it manifests as loss, not choke. Under the assumption that you get an update packet every tick (15ms in orange box), 15ms is the natural value to choose for interpolation (smallest possible). This will, however, lead to entity position extrapolation each time you choke, so if you expect choke often, then 30ms is the natural value. So yes, tweaking those values is meaningful, the default value of 0.1 is huge.
Т.е. рисование всех объектов откладывается на ex_interp секунд, и вследствие этого рисуется плавно, потому что движок знает куда ентити должны подвинуться.
Всё это происходит если в течение ex_interp секунд приходят обновления о новых смещениях ентити. Если у вас случается лосс, или choke, и время ex_interp истекает, то движок продолжает движение ентити в том направлении в каком она двигалось до. Это называется экстраполяцией. Происходит это в течение ex_extrapmax секунд. После чего ентитя просто замирает (или исчезает - фз точно).


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Как железо влияет на игру?
СообщениеДобавлено: 28 янв 2013, 12:11 
Не в сети
Зарегистрирован:
01 июн 2010, 21:54
Последнее посещение:
08 янв 2024, 22:48
Сообщения: 1269
Откуда: Новосибирск
Дополню тему: речь не только о железе, а также о сборке игры.

Я скачал "багфиксед релиз" с агхл и получил просто читерский распрыг и скорость, игра стала плавной и стабильной.

_________________
ワイルド、クール&スウィンギン'


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Как железо влияет на игру?
СообщениеДобавлено: 28 янв 2013, 17:36 
Не в сети
Зарегистрирован:
12 дек 2010, 17:01
Последнее посещение:
08 янв 2017, 23:01
Сообщения: 135
Цитата:
Вот правильное описание интерполяции и экстарполяции: http://forums.steampowered.com/forums/s ... stcount=11
Спорно, мне это показалось "мое видение".

Материал из вики, что такое интерполяция:
Интерполя́ция, интерполи́рование — в вычислительной математике способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений.

В нашем случае это игра, надо определить значения.

rate - максимальный размер пакета, или скорость передачи данных. Максимально 25000 не понятно чего тока, пишут вроде байтах 25000 байт. Сразу вопрос как модем со скоростью 56 кбит может передать такой пакет?
Т.е. из 25000 наш модем может передать тока:
25000х8=200 000 бит Максимальный рамзмер пакета в битах
модем 56 000 бит, 56000/8 = 7000 байт

Вспоминая 90ые и конфиги с рате 7000 кажется правдаподобным.
Способ передачи cl_updaterate берем пока тока ее как способ получения значений необходимых нам для ex_interp. Максимально может достигать 100.

Способ передачи протокол UDP (т.е. послал с ип заголовком, и не привета не ответа). Сам по себе этот способ не надежен, так как не гарантирует доставку. Есть вариант, что не всегда расчет идет из 100 если cl_updaterate задан как 100, потери.

Имеем канал для нашего соедениния 25 кбайт/сек делим на 100 число cl_updaterate число запросов(или можно еще сказать как просто фрейм UDP), получаем 250 байт максимальный размер фрейма(т.е. 1 запрос 1 фрейм будем называть так).

Получились некие данные которая ex_interp уже предполагает/располагает как данные полученные из сети, преобразуются с позиционированием на экране.

В интеренете ходит ролик как в кс стреляет из AWP и попадает не в модель а в пустоту, но оттуда идет кровь, для себя уловил тока 1 вывод мы знаем реальное расположение мишени но ex_interp нам показывает ее в другом месте логичный вопрос почему?

Так же поиске в инете нам приводят на многих ресурсах, некий скриншот с разным расположением модели и с разными ex_interp. Наталкивает на мысль каким образом ex_interp, отвечает за расположение модели если служит тока для "плавности"? Так же эти скрины попахивают, немного фейком, так значение ex_interp не может меняться на лету для этого требутеся рекконект(это остаточные воспоминания могу ошибаться).

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

Формулировка Интерполяция нам оставляет мало вариантов для варьирования, но она измеряется, встает вопрос в чем от 0.01 до 0.1 она может измерятся? Предположим время т.е. секунда. В удобном формате 1000 милисекунд. Т.е. от 10 милисекунд до 100 милисекнд. Что происходит на этом интервале, или это задает именно этот интервал. Из цифр становится тока очевидным, что 10 лучше, в нашем случае чем меньше, тем лучше, и сразу вспоминается кфг под лан с переменнной 0.01.

Остается связать наши фреймы(cl_updaterate), наши кадры(реальный фпс видный на мониторе), и наше время (ex_interp).

Так по большему счету, все данные зависят от секунды, то напрашивается общая зависимость, все это в секунду 100 кадров на 100 фреймов с интервалом 10 милисек.(все по максимуму чтоб лучше воспринимать).

Отсюда напрашивается такая формулировка .

ex_interp - это некая временная переменная, которая пытается связать информацию которую мы получаем с сервера, с графическим отображением на нашем дисплее, на определенном отрезке времени.

На лане он 10 милисек, а при большом пинге ее повышают, так как скорость соедениня не позволяет обрабатывать полученные данные.

Добавлено спустя 59 секунд:
Сорри за большой и нуднаватый пост, но тут мелочей не бывает.


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Как железо влияет на игру?
СообщениеДобавлено: 28 янв 2013, 18:36 
Не в сети
Аватара пользователя
Зарегистрирован:
24 янв 2012, 05:43
Последнее посещение:
14 авг 2015, 03:49
Сообщения: 45
cubeer,а то что кровь в другом месте чем модель,это разве не от хитбоксов зависит?
Потому что для всех моделей в игре используются хитбоксы серверной Player.mdl
Заменив её на модель с большими хитбоксами,рег на сервере будет збс)) Можно на метр выше головы стрелять,и спрайт крови тоже по идее должен отрисовывать там где хитбокс (но я не пробовал)


Вернуться к началу
 Профиль 
  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB