Войти на сайт

Авторизация, ждите ...
×
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.

ТЕМА: Оптимизация систем на ивентах

Оптимизация систем на ивентах 8 года 3 мес. назад #89450

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1704
  • Спасибо получено: 2729
  • Организатор конкурсовОратор1 место в ГотвУчитель2 место Композитор3 место ГотвПобедитель конкурса
Делаю активную боёвку на ивентах, очень много событий, поэтому встают задротские вопросы об оптимизации и уменьшении пожирания фпс всеми способами. Если ответы на вопросы разные в зависимости от мейкера то хотелось бы это тоже знать.

Что оптимальнее с точки зрения фпс:

1. Карта тайлами или паралаксами?
2. Присвоить переменным значения координат события а затем сравнивать эти переменные или сразу написать скриптом "$game_map.events[3].y"
3. Ветвление условий друг за другом или ветвление условий внутри друг друга?
4. Общее событие или событие на карте?
5. Использования "меток" или переключателей?
6. Параллельное событие в котором несколько проверок нажатия кнопки или отдельное параллельное событие для каждой из кнопок?
7. Одна картинка площадью 100 на 30 пикселей с двумя худбарами или две картинки площадью 100 на 15 по одному худбару на каждой?
8. Чем меньше площадь картинки тем меньше будет просадка фпс?

Надеюсь кто-нибудь разбирается в таких тонкостях :mad:
Администратор запретил публиковать записи гостям.

Оптимизация систем на ивентах 8 года 3 мес. назад #89452

  • Демий
  • Демий аватар
  • Вне сайта
  • Модератор
  • Здесь могла быть ваша реклама
  • Сообщений: 1597
  • Спасибо получено: 1520
  • Учитель3 место ГотвРазработчик3 местоВетеранПисатель 2 местоТестер1 место в Готв
2 - как минимум "$game_map.events[3].y" куда более компактно и не требует лишних переменных.
3 - конструкция case, которую я описал в академии ---> тут
4 - никакой разницы.
6 - чем меньше параллелок тем лучше.

На остальное наверно кто-то и ответит, ибо я примерно знаю ответ, но могу ошибаться.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: yuryol, Imaginatium

Оптимизация систем на ивентах 8 года 3 мес. назад #89458

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1704
  • Спасибо получено: 2729
  • Организатор конкурсовОратор1 место в ГотвУчитель2 место Композитор3 место ГотвПобедитель конкурса
Демий пишет:
3 - конструкция case, которую я описал в академии ---> тут

А в случае с МВ?

Демий пишет:
6 - чем меньше параллелок тем лучше.

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

2016-01-2623-18-24.png


Надеюсь понятно изъяснился :mad:
Администратор запретил публиковать записи гостям.

Оптимизация систем на ивентах 8 года 3 мес. назад #89460

  • Демий
  • Демий аватар
  • Вне сайта
  • Модератор
  • Здесь могла быть ваша реклама
  • Сообщений: 1597
  • Спасибо получено: 1520
  • Учитель3 место ГотвРазработчик3 местоВетеранПисатель 2 местоТестер1 место в Готв
yuryol пишет:
А в случае с МВ?
Читать.

yuryol пишет:
То есть при возможности лучше всего пихать все действия в одно события и это будет лучше чем например создать параллельное с кнопками которое при нажатии кнопки будет посылать на другое параллельное событие?
По возможности лучше избегать использования параллельных событий и всюду искать альтернативу их использованию.

yuryol пишет:
Ведь например получится что при нажатии кнопки которая в событии указана последней, программа будет проверять кучу условий пока доберется до обработки ветвления нажатия этой кнопки?
Ничуть. Только если они будут внутри друг - друга, но как этого избежать читай выше.
Последнее редактирование: 8 года 3 мес. назад от Демий.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: yuryol

Оптимизация систем на ивентах 8 года 3 мес. назад #89461

  • DeadElf79
  • DeadElf79 аватар
  • Вне сайта
  • Звездный Страж
  • Сообщений: 3147
  • Спасибо получено: 2650
  • Проект месяца 1 местоПисатель 3 местоОрганизатор конкурсов3 местоУчительПрограммист Ruby1 место в ГотвПроект месяца 2 местоВетеран
1. В мв - легче тайлами, их хоть как-то пожать и оптимизировать можно (а то и удалить из тайлсетов ненужные тайлы). На фпс не влияет, но уменьшит время загрузки, что важно.
2. Не влияет
3. Не влияет
4. Между ними разница только в том, что с общего ты не можешь управлять событиями на текущей карте. На фпс не влияет.
5. При грамотном использовании любой из подходов работает одинаково быстро.
6. Одно параллельное событие должно происходить одновременно с игрой. Не несколько по разным мелочам, а одно, максимум - два (и то, два - это уже много). Это будет хорошим тоном по отношению к тем, у кого слабоват комп. В случае с мв - к тем. у кого слабовато ведро/яблоко.
7. Зависит не от картинки, а от того, как производится отрисовка. Тут много тонкостей, так что если за это отвечает плагин и он не твой, то и забей.
8. На фпс не влияет. Влияет на время загрузки этой картинки. В случае с мв - это критично.

Подробнее о работе проверок if, case и прочих: в процессор уже встроены наиболее быстрые механизмы проверки, руби (да и любой другой яп) просто посылают процессор нужные команды, передавая прямо перед этим значения (переводя переменные в значение переменных). Все эти проверки выполняются настолько быстро, что ты можешь не беспокоиться об этом вообще.

В итоге в любом из указанных тобой случае почти ни одного критически важного нет, ты пытаешься оптимизировать не то и не там ^_^
Последнее редактирование: 8 года 3 мес. назад от DeadElf79.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Демий, RastaManGames, yuryol

Оптимизация систем на ивентах 8 года 3 мес. назад #89462

  • Cerberus
  • Cerberus аватар
  • Вне сайта
  • Модератор
  • Собака злая
  • Сообщений: 2269
  • Спасибо получено: 1182
  • Писатель 3 местоПобедитель Сбитой кодировкиПроект месяца 1 место3 местоОрганизатор конкурсов2 место Проект месяца 2 местоПроект месяца 3 местоПрограммист JavaScript 2 место Сбитая кодировка
DeadElf79 пишет:
4. Между ними разница только в том, что с общего ты не можешь управлять событиями на текущей карте.
Не знаю, как это реализовано в MV, но в Эйсе - можно. Если в общем событии встречается команда типа "показать анимацию" или "изменить маршрут", она применяется к событию с заданным номером на текущей карте. А задать их можно, просто открыв нужную карту во время настройки общего события.
Жуть болотная, на лапках, в тапках и с пулемётом...
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: yuryol

Оптимизация систем на ивентах 8 года 3 мес. назад #89463

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1704
  • Спасибо получено: 2729
  • Организатор конкурсовОратор1 место в ГотвУчитель2 место Композитор3 место ГотвПобедитель конкурса
Отличная статья,Демий, спасибо за ответы :blush:
DeadElf79 пишет:
7. Зависит не от картинки, а от того, как производится отрисовка. Тут много тонкостей, так что если за это отвечает плагин и он не твой, то и забей.

Тут я имел в виду худбары на ивентах на картинках :mad:

4 пункт тоже не понял на счет управления, там скорее эльф наоборот имел в виду что общее может упарвлять событиями на любой карте, а обычное только на своей.
Остальное ясно, особенно за ответ про тайлы спасибо)
Последнее редактирование: 8 года 3 мес. назад от yuryol.
Администратор запретил публиковать записи гостям.

Оптимизация систем на ивентах 8 года 3 мес. назад #89464

  • Демий
  • Демий аватар
  • Вне сайта
  • Модератор
  • Здесь могла быть ваша реклама
  • Сообщений: 1597
  • Спасибо получено: 1520
  • Учитель3 место ГотвРазработчик3 местоВетеранПисатель 2 местоТестер1 место в Готв
Cerberus пишет:
Не знаю, как это реализовано в MV, но в Эйсе - можно. Если в общем событии встречается команда типа "показать анимацию" или "изменить маршрут", она применяется к событию с заданным номером на текущей карте. А задать их можно, просто открыв нужную карту во время настройки общего события.

Так же через вызов скрипта можно задать маршрут событию по номеру айди.
Администратор запретил публиковать записи гостям.
Время создания страницы: 0.195 секунд