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

Оптимизация систем на ивентах

Оратор 1 место в Готв 3 место Готв 2 место Учитель Композитор Победитель конкурса Организатор конкурсов
Больше
10 года 3 мес. назад #89450 от yuryol
Делаю активную боёвку на ивентах, очень много событий, поэтому встают задротские вопросы об оптимизации и уменьшении пожирания фпс всеми способами. Если ответы на вопросы разные в зависимости от мейкера то хотелось бы это тоже знать.

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

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

Надеюсь кто-нибудь разбирается в таких тонкостях :mad:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

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

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Оратор 1 место в Готв 3 место Готв 2 место Учитель Композитор Победитель конкурса Организатор конкурсов
Больше
10 года 3 мес. назад #89458 от yuryol

Демий пишет: 3 - конструкция case, которую я описал в академии ---> тут


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

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


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



Надеюсь понятно изъяснился :mad:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

1 место в Готв 3 место Учитель Разработчик 3 место Готв Ветеран Писатель 2 место Тестер
Больше
10 года 3 мес. назад - 10 года 3 мес. назад #89460 от Демий

yuryol пишет: А в случае с МВ?

Читать.

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

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

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

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

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

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

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место 3 место Готв Победитель Сбитой кодировки Программист JavaScript 2 место Сбитая кодировка Писатель 3 место 2 место 3 место Организатор конкурсов
Больше
10 года 3 мес. назад #89462 от Cerberus

DeadElf79 пишет: 4. Между ними разница только в том, что с общего ты не можешь управлять событиями на текущей карте.

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

Жуть болотная, на лапках, в тапках и с пулемётом...
Спасибо сказали: yuryol

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Оратор 1 место в Готв 3 место Готв 2 место Учитель Композитор Победитель конкурса Организатор конкурсов
Больше
10 года 3 мес. назад - 10 года 3 мес. назад #89463 от yuryol
Отличная статья,Демий, спасибо за ответы :blush:

DeadElf79 пишет: 7. Зависит не от картинки, а от того, как производится отрисовка. Тут много тонкостей, так что если за это отвечает плагин и он не твой, то и забей.


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

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

1 место в Готв 3 место Учитель Разработчик 3 место Готв Ветеран Писатель 2 место Тестер
Больше
10 года 3 мес. назад #89464 от Демий

Cerberus пишет: Не знаю, как это реализовано в MV, но в Эйсе - можно. Если в общем событии встречается команда типа "показать анимацию" или "изменить маршрут", она применяется к событию с заданным номером на текущей карте. А задать их можно, просто открыв нужную карту во время настройки общего события.


Так же через вызов скрипта можно задать маршрут событию по номеру айди.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.109 секунд
Работает на Kunena форум