Что нужно знать про FPS?

новичкам читать обязательно!

Сообщение Что нужно знать про FPS?
» 11 сен 2013, 13:49

вопрос: Что нужно знать про FPS и необходимость борьбы с перфекционизмом?
ответ:

Очень часто разработчики приложений меряются FPS (frame per second, "кадров в секунду"). При этом периодически называются значения порядка "1000 и более". В связи с чем есть несколько фактов, которые надо учитывать ))

Факт: человеческому глазу сложно (в принципе, а у большинства людей с "обычным, нетренированным" зрением - и вообще, невозможно) воспринимать графику, меняющюся чаще чем 60 раз в секунду. Соответственно, фпс более 60 - излишний перфекционизм. Силы, потраченные на достижение данного результата лучше потратить на что-то более полезное. Более того, это может стать даже вредным.
Например, в Вашей игре 90 фпс. Следовательно, для большинства игроков каждый третий кадр будет "невидимым" - его просто не заметят. То есть 1/3 игрового процесса пропадает. Подумайте, не попадают ли в эту 1/3 какие-либо действительно важные игровые элементы/действия, например "выстрелы" (и в итоге пули рождаются "в воздухе", в далеке от игрока), или ключевые кадры анимации, или те "гемплейные моменты", в которые игрок должен среагировать (а он их просто не заметил)?

Факт: многие устройства (или браузеры, если говорить не о мобильных, а о десктопных версиях) искуственно (аппаратно или программно) ограничивают фпс. В частности, большинство мобильных устройств в целях экономии энергии ограничивают фактический фпс 30 кадрами в секунду. А, например, Амазон со своими Кинлфаерами пошел еще дальше - оставив разработчикам всего 20 фпс. Соответственно, изучите устройства Вашей целевой аудитории, и адаптируйте Ваше приложение уже с учетом особенностей, не тратя время на излишний перфекционизм и доведение до "совершенства", которое кроме Вас самих никто не заметит и не оценит ))

Факт: использование события "Every tick" очень удобно, однако многие забывают, что частота "Every" напрямую зависит от фпс, и чем фпс ниже - тем реже происходит действие. Если "Every tick" у Вас происходит движение - оно будет замедленно (и создастся впечатление "тормозов", при этом по факт тормозов не будет), если создание какого-либо обьекта (например, дроп монеток из сундучков) - их создастся меньше, если анимация - часть кадров может пропасть, и анимация станет дерганной.

При этом можно использовать событие "Every X second" - которое дает аналогичный эффект, только независящий от фпс. Наприме, при Х = 0.05 - аналогично 20 фпс, при Х = 0.033 - 30 фпс, при Х = 0.017 - 60 фпс. И какой бы фактический фпс не был на конечном устройстве - действие всегда будет одинаковым, таким, каким Вы его и запланировали.

P.S. Небольшая подборка мини-фактов - числу 5 кратны и 20, и 30, и 60. 5 - базовая скорость анимации в Construct2. 0.2 секунды - время, за которое мозг казуального игрока успевает "обхватить" картинку на экране и понять, что на ней происходит (без деталей, разумеется). 0.1 секунда требуется на то же самое хардкорному игроку. Если внимние игрока привлечено к какому-то небольшому участку экрана - на происходящее в других частях он обращает меньше внимания, и действие там может быть менее четким. "мозговой фпс" игрока для "низкоприоритетных" участков экрана может составлять 1-3 кадра в секунду, и этим можно пользоваться. Пример - "бэкграунды гоночек". Проедтесь по НФС с низкой скоростью и посмотрите на пейзажи - будете удивлены. А когда вы поглощены гонкой - Вы этого не замечаете. Да и кто (кроме нескольких фриков, делающих это специально) будет ездить в гоночках медленно? Или многие, наверняка, замечали, что анимация в тавер дэфенсах (даже топовых) - не очень, у монстров 5 "кадров" на 1 анимацию? Но в пылу боя вы видите марширующих коварных противников, так как Ваш мозг воспринимает все с поправкой на свой "внутренний фпс" - и если его устраивает "процесс", то и ощущения от корявой (действительно корявой, ведь 5 кадров из 60 возможных - это коряво и лениво) анимации будут "хорошие", как будто игрок увидел и 55 остальных, ненарисованных кадров. А вот на Главном Герое это будет смотреться хуже - ведь на нем все внимание, и он воспринимается РЕАЛЬНО ))

Фпс - это не бог игростроя, а еще один из инструментов. Пользуйтесь им с умом, и не ищите ложного "совершенства" там, где оно не нужно. Лучше потратьте высвобожденные силы на действительно важные вещи.
Последний раз редактировалось SysDiman 08 ноя 2013, 06:53, всего редактировалось 2 раз(а).
В случае "спасибо, помог" плюс в репутацию приветствуется ) Если сделанное тянет на отдельный "плюс", разумеется ))

Мои игры: SSG (тест, браузерка), Cradle of Flames (Android)
Аватара пользователя

Игродел
Сообщений: 477
Я тут с 03 янв 2013
Откуда: Новосибирск
Лицензия: Personal
Репутация 80 [ ? ]

Сообщение Re: Несколько фактов про FPS...
» 11 сен 2013, 13:56

статья хорошая, но мне кажется она немного не вписывается в раздел F.A.Q. (часто задаваемых вопросов). ее либо перенести в раздел Уроки либо оставить тут но переименовать на Что нужно знать про FPS?
как считаешь?
Аватара пользователя

Администратор
Сообщений: 5820
Я тут с 05 сен 2012
Двиг: Construct2
Лицензия: Personal
Skype: c2community
VK: gabrielsailergray
Репутация 392 [ ? ]

Сообщение Re: Несколько фактов про FPS...
» 11 сен 2013, 14:49

Sailer писал(а):перенести в раздел Уроки либо оставить тут но переименовать на Что нужно знать про FPS?

На мой взгляд, для раздела уроки, она не подходит, лучше переименовать...
Изображение
Изображение
Изображение
Игры: Scrolonoid Покемошки
Исходники: 1, 2
Аватара пользователя

Игродел
Сообщений: 431
Я тут с 15 мар 2013
Откуда: Россия, Хабаровск
Skype: domenik236
Репутация 14 [ ? ]

Сообщение Re: Несколько фактов про FPS...
» 11 сен 2013, 14:56

Sailer писал(а):как считаешь?

Ты прав ) Писал под впечатлением от очередных "писькомерок", так что запросто мог закинуть не туда, куда надо ))
Аватара пользователя

Игродел
Сообщений: 477
Я тут с 03 янв 2013
Откуда: Новосибирск
Лицензия: Personal
Репутация 80 [ ? ]

Сообщение Re: Что нужно знать про FPS?
» 11 сен 2013, 15:38

ок. оставляем тут
Аватара пользователя

Администратор
Сообщений: 5820
Я тут с 05 сен 2012
Двиг: Construct2
Лицензия: Personal
Skype: c2community
VK: gabrielsailergray
Репутация 392 [ ? ]

Сообщение Re: Что нужно знать про FPS?
» 11 сен 2013, 16:12

Не знаю кто там меряется ФПС, впервые слышу, но допустим у себя в проекте я делаю именно 60 потому что на 50 - 40 игра смотрится не красиво, а чтобы она понравилась она не должна тормозить...
Играя в вашу игру если она будет тормозить игрок выкинет ее в мусорку !
Аватара пользователя

Игродел
Сообщений: 3576
Я тут с 30 окт 2012
Двиг: C2\Unity
Лицензия: Personal
Skype: asmatrix116
VK: vk.com/red.gear
Репутация 203 [ ? ]

Сообщение Re: Что нужно знать про FPS?
» 12 сен 2013, 06:12

AHTuCTATuK писал(а):допустим у себя в проекте я делаю именно 60 потому что на 50 - 40 игра смотрится не красиво

Ты, наверное, не совсм понял, про что я.
Когда ты говоришь "я делаю 60 фпс", ты имеешь в виду "средний" (а скорее всего даже "максимальный") фпс проекта. То есть у тебя весь экран целиком обновляется 60 раз за секунду. Но все ли обьекты у тебя обновляются с той же частотой? У тебя, насколько я понял, есть персонаж, у которого есть анимация движения. И что, хочешь сказать, у тебя за секунду проигрывается 60 кадров? Я почему-то подозреваю, что у тебя в принципе нет анимаций длиннее 20 кадров )) А уж тем более идущих со скоростью 60 кадров в секунду? )) И все проверки и действия тебя в игре происходят с частотой 60 раз в секунду (то есть если тебе надо двинуть персонажа на 10 пикселей за секунду, ты делаешь 60 движений по 0.16 пикселя)?

Вот про что я писал - какая разница, какая у тебя частота обновления экрана, если сами события происходят реже? И есть ли смысл заставлять все события подгонять к "60 раз за секунду", если можно подогнать их к кратным значениям, а 60 оставить только для тех мест, которые критически важны?

AHTuCTATuK писал(а):чтобы она понравилась она не должна тормозить
Низкий фпс - это еще не тормоза, он может таким быть специально. Еще раз напомню про Need For Speed - есть трасса длинной 20 километров, например, детальная отрисовка пейзажей займет у художников массу времени и сил (а студии влетит в крупную копеечку к бюджету разработки). Но зачем это делать, если фактический фпс пейзажа (не машины, машину-то прорисовывают максимально детально) - крайне низкий, и игрок все равно видит лишь общую смазанную картинку, а "дорисовывает" ее уже его подсознание (ну да, мы видим "поле", "небоскреб", "фонтан" - но каждый видит слегка по разному, а рельная игровая графика лишь задает ориентиры для мозга - массштабы, пропорции, стиль, цветовую палитру).
Аватара пользователя

Игродел
Сообщений: 477
Я тут с 03 янв 2013
Откуда: Новосибирск
Лицензия: Personal
Репутация 80 [ ? ]

Сообщение Re: Что нужно знать про FPS?
» 12 сен 2013, 07:06

В игре на мобилки делаю анимации с разной частотой кадр/сек.

Для персонажа 2 анимации - 25 кадров(бег+серф) - они действительно постоянно на виду и самые часто проигрываемые.

Анимация покоя и падения - урезал до 15 кадр/сек, выкинув много лишних кадров, хотя в динамике можно обойтись и 1 кадром без анимации вовсе - был баг, когда анимация вовсе не проигрывалась на них 2х - я это даже не сразу заметил, пока на стресс-тесте(доведя игру до 17фпс) не пригляделся...

Мелкие анимации по 7-10 кадров проигрываются 12 кадр/сек - опять же в динамике глазу дискомфорта не составляет.

Пытался урезать по кадрам падающие метеориты - вот тут глаз забунтовал - ибо анимации большие - и меньше 25 кадров/сек глаз видит раскадровку...

В целом при тестировании на смартфоне в режиме энергосбережения(ограничивает приложения до 40 фпс) - игра идет вполне плавно, физика работает корректно по большей части - неприхотливому пользователю с незамыленным глазом от постоянного сравнения с 60фпс будет и вовсе незаметна разница, как по мне.
Изображение
Аватара пользователя

Модератор
Сообщений: 2962
Я тут с 19 дек 2012
Откуда: Новый Уренгой
Репутация 302 [ ? ]

Сообщение Re: Что нужно знать про FPS?
» 12 сен 2013, 09:05

SysDiman писал(а):Я почему-то подозреваю, что у тебя в принципе нет анимаций длиннее 20 кадров

поверь есть и даже 84 кадра =)))) так что еще раз говорю, если у меня ФПС падает ниже 50 смотрится все это ужасно, рассчитывай не рассчитывай там, но глазу не приятно !

SysDiman писал(а):Низкий фпс - это еще не тормоза, он может таким быть специально. Еще раз напомню про Need For Speed - есть трасса длинной 20 километров, например, детальная отрисовка пейзажей займет у художников массу времени и сил (а студии влетит в крупную копеечку к бюджету разработки). Но зачем это делать, если фактический фпс пейзажа (не машины, машину-то прорисовывают максимально детально) - крайне низкий, и игрок все равно видит лишь общую смазанную картинку, а "дорисовывает" ее уже его подсознание (ну да, мы видим "поле", "небоскреб", "фонтан" - но каждый видит слегка по разному, а рельная игровая графика лишь задает ориентиры для мозга - массштабы, пропорции, стиль, цветовую палитру).

Сделай на С2 специально низкий ФПС... я посмотрю... тут дело не в студиях не в игровых движках не в мега 3Д играх... у нас конструктор, тем более, создай игру где ты задний фон смажешь ( и толку будет 0 ), стилистика будет не ахти у тебя, допустим я видеть такое не могу, и играть тем более !

а то про что ты говоришь да есть... но у меня не NFS Underground и не FIFA !
Аватара пользователя

Игродел
Сообщений: 3576
Я тут с 30 окт 2012
Двиг: C2\Unity
Лицензия: Personal
Skype: asmatrix116
VK: vk.com/red.gear
Репутация 203 [ ? ]

Сообщение Re: Что нужно знать про FPS?
» 12 сен 2013, 12:23

AHTuCTATuK писал(а):поверь есть и даже 84 кадра

И показываются за 1 кекунду? То есть скорость анимации тоже 84? )) Ну нет же? )) Я не про то, что у тебя плохая игра, или еще что - ты просто не до конца понимаешь смысл понятия "фпс"... Я, откровенно, вообще не для того, что бы задеть тебя или твой проект статью писал - просто, очень часто люди стремятся к "высокому фпс", не понимая - зачм он им нужен..

Возвращаясь к анимации в 84 кадра - если они действительно показываются за 1 секунду - ты не поверишь, но часть кадров ты просто не видишь, на самом деле. Плавность анимации в большОй степени придает обработка картинки человеческим мозгом. Если при уменьшении фпс страдает качество - посмотри, может дело не в количестве кадров, а в том, что "ключевые" кадры стоят не в тех местах? То есть смотри, например - есть, например, анимация "поворот к противнику и выстрел из ружья", длится она 1 секунду (например, опять же) - вроде вполне достаточно для нормального восприятия. И провернуться можно успеть, и ружье поднять, и выстрел (с облоком пороховых газов и вспышкой пламени) показать, и вылет пули. Но если "ключевые" кадры отстоят друг от друга меньше чем на 0.2 (или 0.1 для хардкорщиков) секунды (при 60 пфс - 12 кадров) - то какая бы между ними плавная интерполяция не происходила, анимация будет смотреться "дерганной" и некачественной... Даже при 280 фпс... То есть надо просто понимать, что тот технический фпс, про который чаще всего говорят - не есть показатель качества картинки. Это просто один из параметров изображения, такой же как разрешение, цветность и прочие. Нельзя же всеръез утверждать что "картинка 1024 на 1024 лучше чем аналогичная 64 на 64" - ну да, в ней больше пикселей.. Но если это картинка Главного Героя, стоящего на дороге 128 пикселей шириной - то плывет весь стиль, и скорее всего, и геймплей.

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

Ну то есть смотри - ты наткнулся на проблему, что
AHTuCTATuK писал(а):если у меня ФПС падает ниже 50 смотрится все это ужасно, рассчитывай не рассчитывай там, но глазу не приятно !
, но решение принял "поднять фпс". А почему это начинает смотреться ужасно? То есть ты "лечишь" симптом, а не болезнь. Это все равно, что в примере про героя с излишним разрешением придти к выводу что "он смотрится ужасно", но вместо того, что бы разобраться в чем проблема и решить ее - начать повышать разрешение графики. Да, в итоге методом "научного тыка" будет найдено правильное (или близкое к правильному) соотношение - но уже будет потрачено много сил и ресурсов, и к сожалению, они будут зря потрачены.

Еще раз, про "меньше 60 фпс и смотрится ужасно" - ты на мобильные устройства расчитываешь? А на них твой фпс будет ниже, и это от тебя не зависит - ну не заставишь ты самсунг переделать все свои устройства (и уже проданные в том числе, хе-хе), что бы они не ограничивали фпс... И что делать? Заранее смириться с тем, что на конечном устройстве твоя игра будет "смотреться ужасно", ее "никто не купит", и так далее? )) Или все-таки понять, в чем проблема, и решить ее не "увеличением фсп"?
 
(чуть не написал "члена", что было бы недалеко от истины)

Ну то есть ты можешь, конечно, строить свою игру под 60 фпс, и это правильно, но оптимизировать игру надо под 20-30 фпс...
AHTuCTATuK писал(а):задний фон смажешь ( и толку будет 0 ), стилистика будет не ахти у тебя, допустим я видеть такое не могу, и играть тем более
во многих местах ты этого просто и не увидишь и не узнаешь )) У меня, например, на игре под айпад (экран 768 на 1024) бэкграунд размером 400 на 226 растянут до размеров 1152 на 1408, но смазанности никакой не видно - 1) это бэкграунд, на него особо внимания не обращают и2) я на него повесил очень-очень легкий эффект "water", и он слегка колышется - и все, никто и не видит никакой размытости, создается впечатление, что так и задумано ))

P.S.
 внимание, тут "наболевшее", читать с опаской
Вообще, раздражает (и на мой взгляд именно это и ведет к падению качества игр из года в год) стремление достичь идеальной графики, при этом зачастую в ущерб геймплею. Тот же Кризис - это просто эталонный пример, но этой болезнью страдают очень и очень многие игры. Тот же "Fes" (инди игра) - геймплей и графика были готовы через 1 год после разработки, но еще 4 (!!!!! долбанных 4 года!!!!!) вылизывалась графика, хотя игру можно было запустить в продажу еще тогда, а на полученные деньги привести ее в порядок и выпустить обновление. Те же "Cut the rope" так и поступили - сравните скриншоты первой версии первой игры и теперешние ее же - улучшение налицо. однако, игра добравшись до "достаточного" уровня уже попала к своим игрокам, добыла денег на хлеб с маслом своим разработчикам, и уж потом, для массового пользователя была причесана и прилизана. Но не за 4-е долбанных года (а обьем работы вполне сравнимый с Фес), а за 2 месяца - и (в отличие от того же Фес) игра не устарела за время своей разработки. Ничего личного, ни к кому конкретно не обращаюсь, никого не хотел обидеть ))
Аватара пользователя

Игродел
Сообщений: 477
Я тут с 03 янв 2013
Откуда: Новосибирск
Лицензия: Personal
Репутация 80 [ ? ]



Вернуться в F.A.Q. по Construct 2

Сейчас эту тему просматривают

Зарегистрированные пользователи: нет зарегистрированных пользователей

Наверх