Как оценить фпс в мультиплеере?
Как можно узнать или примерно оценить фпс. Сейчас у игрока покадровое видео или все 64?
Чтобы вычислить самого слабого и подстроить нагрузку под него, например, уменьшив масштабность эффектов.

Лучший ответ:
Кароче я придумал:
Берём мемхак, зашиваем портативный фрапс или его аналог, в карту
или же качаем программу из инета, через командную сроку вызываем логирование FPS (вот тут я хз), адаптируем лог файл, чтобы его можно было прочитать прелоадом или же ReadSting
запускаем бенчмарк в варике, реузльтаты синхронизироуем между всеми игроками...
Выдыхаем, смотрим на красные глаза Bergi


Views: 1 268

» Лучшие комментарии


Bergi_Bear #1 - 11 months ago 0
Голосов: +0 / -0
Хмм, хороший вопрос, но мне кажется что только на мемхаке, это возможно, и то я пока не знаю как, но впринципе я же умел получить IP и версию винды, то и фпс тоже можно, Дота Лича вообще всю инфу о железе собирает
quq_CCCP #2 - 11 months ago 0
Голосов: +0 / -0
Vlod, а чем сторонний софт не устраивает?
Bergi_Bear #4 - 11 months ago 4
Голосов: +4 / -0
quq_CCCP, я так понял:
допустим есть аое скилл который максимально красивый при 36 эффектах, игрок его кастует и получает просадку до 15 фпс, игра должна определить, что ему тяжело, и снизить число эффектов до 6 у всех, чтобы снизить общую нагрузку, и не париться с локалплеером, для уменьшения числа отображаемых эффектов
Или же повысить периоды внутренних таймеров скажем с 0,01 до 0,1, пусть будет рвано, но зато с нормальный фпс
Vlod #5 - 11 months ago 0
Голосов: +0 / -0
Все как сказал Bergi_Bear, только планируется в начале сделать нагрузочный тест и выставить коэффициенты.

Подойдет даже косвенный способ
Hate #6 - 11 months ago 0
Голосов: +2 / -2
а может изначально не нужно делать вырвиглазные количества спецэффектов?
NazarPunk #8 - 11 months ago 6
Голосов: +6 / -0
а может изначально не нужно делать вырвиглазные количества спецэффектов?
Как же ты думаешь сделать анеме карту без тонны спецеффектов?
Bergi_Bear #9 - 11 months ago 0
Голосов: +0 / -0
Vlod, можно сделать так: опросить пользователей какие у них компы, на сколько всё плохо, чтобы угодить всем, делаешь под самый плохой комп, можно эмулировать плохой комп через виртуалку, и самому запускать под ней варик, чтобы сделать оптимально красиво и.... быстро
Ну ещё можно даунгрейднуть свой комп для таких тестов
8gabriel8 #10 - 11 months ago 0
Голосов: +0 / -0
Bergi_Bear, не все сообразят, как сообщить нужные данные железа. Например, один скажет четырёхядерный процессор, восемь гигов оперативы, какая-то видюха со сложным названием, но классная - это будет груда самого дешёвого китайского хлама, который еле совместим друг с другом, там даже Блокнот тормозит. Другой скажет, что не знает параметров, лишь оперативы 1 гиг (или 2-4, смысл в том, что меньше первого в разы) - у него iMac или MacBook, на котором всё на максималках летает. Ну и про загруженность системы, её моральный износ тоже надо узнать. Короче, Vlod с одной стороны лучше предложил вариант, но с другой через локалплеера было бы справедливее, ведь может быть ситуация, когда у всех мощные машины, а у одного компьютер от бабушки достался с виндоус икспи, ну и остальные будут страдать из-за него, не видя того, за что они деньги отвалили за мощную машину)
Vlod #11 - 11 months ago (изм. ) 0
Голосов: +0 / -0
Bergi_Bear, отправить тестовые карты друзьям или добавить ручную коррекцию из игры - это хорошо.
Но я спрашиваю то, что не знаю, например - по каким локальным событиям можно определить наличие тормозов (не сетевых)
N1ghtSiren #12 - 11 months ago 0
Голосов: +0 / -0
Как идея - запускать локальный таймер для каждого игрока и смотреть, за сколько времени игрок Х смог уронить поток в какой-нибудь цикл
Hate #13 - 11 months ago 0
Голосов: +0 / -0
N1ghtSiren:
Как идея - запускать локальный таймер для каждого игрока и смотреть, за сколько времени игрок Х смог уронить поток в какой-нибудь цикл
как ты уронишь поток в луа (если в нем делать)?
PT153 #14 - 11 months ago 0
Голосов: +0 / -0
запускать локальный таймер
Таймер варика нельзя ни создать, ни стартовать локально.
NazarPunk #15 - 11 months ago 0
Голосов: +0 / -0
Таймер варика нельзя ни создать, ни стартовать локально.
Зато локально можно создавать текстаги, осталось только придумать как то использовать.
PT153 #16 - 11 months ago 0
Голосов: +0 / -0
NazarPunk, нельзя их локально создавать, насколько знаю, можно локально менять им текст.
N1ghtSiren #17 - 11 months ago 2
Голосов: +2 / -0
имхо, кол-во эффектов должно быть таким, чтобы в замесе понимать хотябы где твой герой и где твой враг
Vlod #18 - 11 months ago (изм. ) 2
Голосов: +2 / -0
Чтобы развеять сомнения, скажу:
1 ) Большая нагрузка на поток может быть не только при работе с эффектами. При работе с картой высот и применением фильтров. Действия кастомного ИИ, работа с группами юнитов. Более того, эффекты бывают разные.
2 ) Сам вопрос в том, как именно это можно сделать.
3 ) У меня из идей - только копаться в интервалах работы с файлами. А это стремно, не факт что взлетит. Надеюсь, идеи будут и у более опытных пользователей.
Hate #19 - 11 months ago (изм. ) 1
Голосов: +3 / -2
4 ) не делать тонну эффектов
NazarPunk #20 - 11 months ago 1
Голосов: +1 / -0
5 ) думать во время написания кода
N1ghtSiren #21 - 11 months ago (изм. ) 3
Голосов: +3 / -0
6 ) оптимизировать модельку эффекта и сам код


бтв Если фпс дёргается, то и камера тоже будет рывками перемещаться. Можете покопать в эту сторону
нужно больше линий1!1!


Bergi_Bear #22 - 11 months ago 3
Голосов: +3 / -0

Кароче я придумал:
Берём мемхак, зашиваем портативный фрапс или его аналог, в карту
или же качаем программу из инета, через командную сроку вызываем логирование FPS (вот тут я хз), адаптируем лог файл, чтобы его можно было прочитать прелоадом или же ReadSting
запускаем бенчмарк в варике, реузльтаты синхронизироуем между всеми игроками...
Выдыхаем, смотрим на красные глаза Bergi
8gabriel8 #23 - 11 months ago 0
Голосов: +0 / -0
А в 1.31 не ввели возможность получить FPS? А то ведь отображение ввели.
Desgul #24 - 11 months ago 1
Голосов: +1 / -0
8gabriel8, отображение есть и на 1.26, команда /fps
Bergi_Bear #25 - 11 months ago 0
Голосов: +0 / -0
8gabriel8, как бы да, отображение это старая фишка вообще, как пинг и апм
Vlod #26 - 11 months ago 0
Голосов: +0 / -0
Хех, Bergi_Bear, благодарю за подробности) Вообще я думал, что quq_CCCP именно это и предложил, говоря про сторонний софт)

N1ghtSiren, камера - хорошая идея, мне нравится
Ev3nt #27 - 11 months ago (изм. ) 0
Голосов: +0 / -0
С помощью того же самого mix перехватить значения отображаемого fps и, используя неполную синхронизацию, записать все в массив. Дальше сравнить и найти наименьший.
Bergi_Bear #28 - 11 months ago 0
Голосов: +0 / -0
Ev3nt, какого конкретного mix, его ещё сделать надо как бы
Ev3nt #29 - 11 months ago 0
Голосов: +0 / -0
Bergi_Bear:
Ev3nt, какого конкретного mix, его ещё сделать надо как бы
Если то, что говорили выше - правда, а именно то, что в варике уже присутствует отображение fps, то можно просто создать новую jass функцию, которая у локального игрока получит значение fps в памяти игры, а дальше будет проходить то, что я писал выше.
Bergi_Bear #30 - 11 months ago 0
Голосов: +0 / -0
Ev3nt, а ты бы смог создать? в теории то всё понятно, что это значение есть и его можно извлечь
Ev3nt #31 - 11 months ago 0
Голосов: +0 / -0
Bergi_Bear:
Ev3nt, а ты бы смог создать? в теории то всё понятно, что это значение есть и его можно извлечь
Могу попробовать mix создать и новую jass функцию, только мне нужно узнать, что нужно сделать для отображения fps, куда и что писать?
Bergi_Bear #32 - 11 months ago 0
Голосов: +0 / -0
Ev3nt, а ну просто в игре напиши /fps /ping /apm
Ev3nt #33 - 11 months ago 0
Голосов: +0 / -0
Bergi_Bear:
Ev3nt, а ну просто в игре напиши /fps /ping /apm
Ok
Bergi_Bear #34 - 11 months ago 0
Голосов: +0 / -0
ну а микс уже можно хоть в карту вшить хоть рядом положить
Ev3nt #35 - 11 months ago 0
Голосов: +0 / -0
Bergi_Bear, ага)
Bergi_Bear #36 - 11 months ago 0
Голосов: +0 / -0
Ev3nt, если для пинга и апм сделаешь, будет вообще круто, правда жаль что только для 126 патча, но это тоже можно будет как-нить использовать
Ev3nt #37 - 11 months ago (изм. ) 0
Голосов: +0 / -0
Bergi_Bear, нашел адреса комманд, записывающих значение FPS. Дальше мне лень :D
Storm.Ordinal501 + 93 - Целая часть
Storm.Ordinal501 + 14C - Десятичная(за точкой)
Bergi_Bear #38 - 11 months ago 0
Голосов: +0 / -0
Ev3nt, спасибо
» но
Ты ленивая жопа
Vlod, а на каком патче то надо?, просто Ev3nt, сможет это сделать на движке вара в 126, (если его чем нить простимулировать, как я понял)
Vlod #39 - 10 months ago 0
Голосов: +0 / -0
Bergi_Bear, 1.26a. Изначально идея заключалась в том, чтобы по данным теста подправить нагрузочные коэффициенты. Сейчас расчет этих коэффициентов сам по себе составляет отдельную проблему, замедляющую любую разработку в 3 раза.
Все упроститься, если будет быстрый доступ к любым объективным данным о текущей нагрузке.
На глаз фпс падает до нуля менее чем за 0.1с. Поэтому для прерывания исполнения нужно будет вызывать Get_stress() значительно чаще.