У меня возникли неожиданные проблемы с производительностью в моей игре haxeflixel при создании цели windows (cpp) со следующими настройками
<window if="cpp" width="480" height="270" fps="60" background="#000000"hardware="false" vsync="true" />
Я замечаю, что когда я изменяю размер окна до больших разрешений или перехожу на полноэкранный режим до 1920x1080p, игра становится медленнее и отстает. Однако, согласно консоли отладки flixel, частота кадров одинакова для всех разрешений.
Что еще более интересно, мой экспорт флэш-памяти работает гораздо более плавно, хотя я ожидал, что цель cpp будет работать быстрее.
Это двухмерная игра с платформой, включающая около 6 карт тайлов (самая большая карта тайлов — 1600×1440) и 32×32 или 16×16 спрайтов. Я не ожидал проблем с производительностью в любой современной системе. Поэтому я обеспокоен тем, что делаю что-то не так, например, пропускаю очевидные настройки.
Это нормально? Есть ли какие-то ключевые факторы эффективности рендеринга, которые я должен проверить? Пожалуйста, не стесняйтесь спрашивать меня о любых деталях, если вы думаете, что это поможет.
используя Haxeflixel 3.3.12
Я думаю, что это может быть общей проблемой среди всех целей C ++. Я испытал это и с родной целью Linux для моей игры. Моим решением было отключить сглаживание с помощью
<window antialiasing="0" />
Конечно, это лучше всего работает с пиксельной графикой, а не с 3D или HD. И еще есть потенциальная проблема снижения производительности при более высоком разрешении (дисплеи сетчатки и все такое). Но этого может быть достаточно в качестве временного решения.
Я тестировал настройки своего приложения с различными конфигурациями, когда, наконец, обнаружил, что отключение vsync
вариант будет иметь наибольшее влияние. Существует некоторое дрожание по вертикали, но игра, наконец, быстро запускается, и цель Windows быстрее, чем вспышка.
Оказывается, мой нынешний ноутбук оснащен графическим процессором IntelHD, а функция vsync, похоже, не работает. Я помню, что на моем предыдущем ПК, оснащенном низкоуровневым графическим процессором AMD, такой проблемы не было.
Я рассмотрю возможность добавления в игру опции для переключения vsync, чтобы пользователи, не являющиеся интеллектуалами, могли воспользоваться преимуществами vsync.
Другие вещи, которые, кажется, помогли:
antialiasing
как предложил @Jon Ohardware
наДля справки, мои текущие настройки
<window if="cpp" width="960" height="540" fps="60" background="#000000" hardware="true" vsync="false" antialiasing="0" />