Перейти к содержанию

Активность

Лента обновляется автоматически

  1. Последний час
  2. Вроде бы нет, но можно указать, сколько у тебя столбцов и строк в спрайтшите при его загрузке, а потом вручную удалить ненужные кадры Ниже пример, если я правильно понял вопрос
  3. нагрузку можно проверить в cpu\gpu meter и simple system (второе в мультискрине работает хорошо). некоторые смартфоны и свои инструменты предоставляют в разделе "для разработчиков" может обновишь статью с использование изменения загруженности гпу? а то все-таки фпс использовать для оценки нагрузки гпу - это немного не то
  4. Специально для теста создал новый проект, добавил два тайлмапа (земля, тень), два тайловых бэкграунда для облаков и объект Player с двумя анимациями по 4 кадра в каждой и поведением Platform. Тестирование проводил на низкопроизводительном мобильном устройстве с очень слабым GPU. Для теста производительности самое то. К сожалению, отследить нагрузку на GPU не получится, т.к. выражение выдаёт "NaN", но зато есть показатель FPS. Если FPS падает — значит GPU не успевает отрисовать кадр за 0.016 (1/60) сек. 1. Начало уровня. FPS 41-42. 2. Прохожу чуть дальше, FPS 54-55. 3. Прыгаю на уступ, FPS 62 Почему так происходит!? Для начала, разберёмся с теорией. Основы Базовый принцип оптимизации нагрузки на GPU — это сокращение площади отображаемой на экране (в области просмотра) графики. Есть определённый физический лимит графики (её фактической площади), которую GPU может отрисовать и уложиться в 0.016 сек (что даёт 60 FPS). Разрешение игры Чем выше разрешение экрана — тем больше площадь отрисовки, и тем выше нагрузка на GPU. Следует понимать, что разрешение игры и размер области просмотра это не одно и тоже. Разрешение игры (в полноэкранном режиме) равно разрешению экрана устройства игрока. Размер области просмотра не влияет на производительность. Например, если размер области просмотра 480x240, а разрешение экрана 1440 x 720, то GPU будет отрисовывать кадр в разрешении 1440 x 720. Как происходит отрисовка кадра GPU отрисовывает кадр по пикселям от нижнего слоя к верхнему, пропуская все невидимые слои и объекты. Даже когда ваши графические объекты перекрыты чем-то сверху, GPU по-прежнему потратит ресурсы на отрисовку и перерисовку всех пикселей. Следовательно, наихудшая с точки зрения нагрузки ситуация - это когда в кадре есть стопка больших, перекрывающих друг друга изображений. Важно: Невидимый слой/объект — это тот, у которого параметр visible установлен на "invisible". Даже если объект имеет opacity = 0, он всё равно будет отрисован. Объекты отрисовываются полностью, включая прозрачные пиксели. С точки зрения нагрузки, решающую роль играет площадь изображения. Не исходная, а фактическая. Спрайт 1x1 пикселей, растянутый на весь экран (например, в вашем проекте это 480x240), превращается в текстуру, которая будет имеет разрешение, равное разрешению экрана устройства. Если у вас пиксель арт игра, вы можете установить параметр "Downscaling quality" на "Low" и тем самым значительно снизить нагрузку на GPU, но об этом как-нибудь в отдельном уроке. Посмотрим ещё раз на кадр из игры Игровая сцена состоит из нескольких слоёв: задний фон, движущиеся облака, тайлмап и спрайт героя. На отрисовку всего, что попало в область просмотра GPU потратит ресурсы. И чем больше в кадре объектов, а точнее, чем больше площадь попавших в кадр объектов — тем выше нагрузка на GPU. Специально для теста добавил на экран кнопки, которые отключают облака и тайлмапы. 4. Попробуем зайти в самую загруженную область на карте. Получаем 41-42 FPS. 5. Теперь отключаем облака. Вы не видите на скрине облаков? Я тоже не вижу, но GPU всё равно тратит ресурсы на их отрисовку. Сделав облака невидимыми программно, получаем FPS 47-50. 6. Теперь отключим тайлмап с тенью. Получаем FPS 53-55. 7. А теперь, попробуем вернуть облака. Получаем FPS 46-48. 8. Отключаем тайлмап земли, получаем максимальные FPS 62. Выводы Надеюсь, вы уловили суть — причина падения FPS заключается в физических ограничениях GPU. У мобильных устройств разрешения экранов высокие, а GPU очень слабые. Если вы делаете игру для мобильных устройств, то вы уже на уровне геймдизайна должны думать о том, чтобы не допускать нахождения в кадре слишком большого количества перекрывающих друг друга объектов (повторюсь, что дело не в количестве, а в их суммарной площади).
  5. Всем привет, сегодня начал изучение Констракта. Сразу вопрос, вот есть такая штука как импорт анимации из полоски. Отлично работает когда все в ряд. А если анимация из несколько рядов в одном изображении? Есть ли какая то возможность их порезать? например указать что нужна только третья полоса и 4 кадра из нее. Спасибо заранее
  6. Сегодня
  7. Вот это интересный момент. Если честно, пока не знаю как такое реализовать. Но думаю, что может пригодиться.
  8. Привет. -Снаряды отскакивают с определённым шансом от обычных врагов. Как если бы в реальном бою снаряд попал в броню под углом и пройдя по касательно не поразил танк. -да шахта после того как в ней побывал игрок майнит автономно, даже с выключенной игрой. Точнее при следующем входе считает сколько отсутствовал игрок. Её уровень отвечает за скорость добычи и размер сундука. -Спасибо. Остальные замечания записал.
  9. Прикольная игрушка! Правда станет еще прикольнее, если сделать поверхность примерно такой же неровной, как это отображено на спрайтах дороги. Еще я не понял, так задумано или надо исправлять? На третьем уровне, очередной враг решил, что мои снаряды будут от него отскакивать. То есть несколько раз отскочило. Хотя визуально этот враг ничем не отличался от предыдущих. Еще прикольно, что есть возможность дать заднюю, чтобы не получать по макушке. Постоянно на задней передаче побеждал и оставался цел) Прикольно выглядит подмога по ремонту и бомбежке! Не ожидал, что это будет выглядеть так. Взрывы рекомендую сделать тише. Потому что при маленькой громкости на телефоне, эти звуки громкие. Пока всё, так как играл 3 уровня. Потом продолжу играть. Пробовал майнить... этот момент не совсем понял... то есть если я выключу игру, он дальше будет считать время и добывать, или телефон нельзя выключать и выходить из майнинга?
  10. А если группа не активна? Вроде бы шпионству конец. Хороший урок, вроде бы лучше понял, чем где либо. Вот только походу, я как обходился только глобальными переменными, так и дальше буду обходиться) Всёш работает и нет путаницы
  11. ну её в каждом проекте зато можно использовать. либо пилить свои кнопки, таблицы и прочее. я смотрел сколько нужно строчек кода для скролинга кнопок.... ну или css урезанный использовать работа с ui в констракте на порядок отстает от юнитивского
  12. @Aventiy А, дорогая штука, для которой я слишком беден? ок
  13. @Aventiy помочь не помогу, но что эта за штука?
  14. Вот тут не понимаю, как реализовать выбор фраз, вроде разобрался как с помощью шагов анимации выводить разные фразы в одном спрайте. Понял что это типа условия нужно писать, как ты изначально написал типа: On персонаж created type = 1 -> choose(фраза1, фраза2, фраза3, ...) type = 2 -> choose(фраза1, фраза2, фраза3, ...) type = 3 -> choose(фраза1, фраза2, фраза3, ...) но тут получается нужно переменную строковую создавать?
  15. можно как-то сделать без использования форича? понятно, что по производительности это не бьет, тем более в меню, но хотелось бы "покрасивше" если вынести из форича, то работать как надо не будет
  16. для вк надо обрабатывать обновление кеша? имею ввиду добавлять на свой сайт событие по проверке обновления или вк сам обновляет? а то я портирую с яндекса, там обновление кеша само происходит
  17. Здравствуйте, нужно создать механику для мини игры на память. Пользователь в несколько раундов повторяет воспроизведенные в определенной последовательности анимации. Целевой c3, но если без плагинов (можно будет без проблем экспортнуть) можно и c2. Заготовка для работы (анимации взяты для примера) https://drive.google.com/file/d/1MRKrBpEOtUXboLFN28FzkOa9GIp7oCM5/view?usp=sharing NinjaДиз.doc Контакты: ЛС или viktor@wi-games.com
  18. Визит считается отказом, если для него одновременно выполнены следующие условия: за время визита зафиксировано не больше одного просмотра страницы; продолжительность визита меньше заданного для расчета отказов времени (по умолчанию 15 секунд); не зафиксировано служебное событие «неотказ». Служебное событие «неотказ» генерируется в браузере через заданное для расчета отказов время от начала посещения. Вследствие разницы во времени на сервере и клиенте, а также из-за задержек отправки, зарегистрированное время события может отличаться от реального. Как следствие, может быть зафиксирован визит, не являющийся отказом, продолжительность которого меньше 15 секунд (или заданного времени) в игре, по большей части, это лишь продолжительность визита
  19. Неплохо было бы ещё понимать, как расценивается отказ. Это сразу закрыл вкладку браузера или же побыл пару - тройку минут на сайте. Как он рассчитывается. Хотя повторюсь, мне этот параметр мало интересен, заинтересовала методика подсчёта.
  20. @multimax я о том же, поэтому странно и непонятно было видеть 90 процентов отказов при запуске думал может игра не загружается, реклама отпугивает, вход через ввод имени и тд и тп отказы я для примера взял, так как на них крайне наглядно
  21. Статистика по отказам за год, для тематического сайта. Я вижу по поисковым запросам и источникам трафика, что туда редко заходят случайные люди.
  22. меня множество параметров интересует, этот параметр просто сильно выделялся среди прочих и не понятно было почему. делал обновы, меня жанры и прочее, чтобы снизить показатель, а оказалось, что инфа неверная ) нормой для сайтов и т.п. (судя по инфе из инета) до 25-30%, так что мое удивление было вполне нормальное соответственно благодаря этому принялся за работу уже над повышением тех показателей, которые соответствует реальности и игре, но время анализа обновлений и т.п. было опущено (
  23. Какой ты чувствительный))) Меня этот параметр мало интересует. Гораздо интереснее количество посетителей, их возраст и типы устройств.
  24. Автоматический счетчик vs свой счетчик на примере отказов (игрок был в игре менее 15 сек) Автомат демотивирует, да? делал игру, делал, а 90% игроков сказали бе-бе-бе ) Свой ну другое дело, можно поработать) п.с. руки наконец дошли (спасибо @ru1000 и @multimax) и задал вопрос в тех поддержку, чтобы узнать куда именно встраивается автоматическая метрика. будет ответ - отпишусь
  25. @multimax скорее всего, это пользователи с блокировщиками, инвизеры. Не получена информация о пользователе
  1. Загрузить ещё активность
×
×
  • Создать...