Скорость и оптимизация (вопросы) - Страница 4 - Форум Game Maker. Разработка игр.
Здравствуй Гость | Перейти на сайт

Главная | Форум | Регистрация | Войти
gmaker.net ;) [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 4 из 5«12345»
Форум Game Maker. Разработка игр. » Разработка игр на Game Maker (Simple Mode) » Проблема - решение. GML и прочее. » Скорость и оптимизация (вопросы) (Здесь вам ответят какой способ решения оптимален)
Скорость и оптимизация (вопросы)
DanielC Дата: Четверг, 16.06.2011, 12:16 | Сообщение # 61
Хрен заткнешь
Группа: Пользователь
Сообщений: 291
Статус: Offline
Созрел такой вопрос, что быстрее вызов скрипта или считывание кода непосредственно из объекта?
p.s. room_instance_clear(ind) страшный скрипт.


Музыка
 
Йакуд Дата: Четверг, 16.06.2011, 13:43 | Сообщение # 62
Хоть палкой гони
Группа: Проверенные
Сообщений: 503
Статус: Offline
DanielC, room_instance_clear ты вызываешь из одного объекта в одном месте, то лучше сделай
Quote (DanielC)
непосредственно из объекта

А если не только в этом объекте или в разных местах объекта, то делаешь функцию и вызываешь ее.
Разница не особо большая.. Если по сабжу то вызов функции, будет немного медленнее


Второе рождение .blanco

Сообщение отредактировал Йакуд - Четверг, 16.06.2011, 13:44
 
DanielC Дата: Пятница, 29.07.2011, 13:18 | Сообщение # 63
Хрен заткнешь
Группа: Пользователь
Сообщений: 291
Статус: Offline
Появилась такая проблема: На уровне создаются объекты в неопределенном количестве каждые 2-3 секунды занимаемая память увеличивается на 4 кб, чем чаще происходит спам тем быстрее заполняется память. При этом уничтожение объектов не дает обратного эффекта так же как и переход в другую комнату, занятая память не освобождается. С чем это может быть связано?


Музыка
 
Ang3L Дата: Пятница, 29.07.2011, 15:15 | Сообщение # 64
Каждый 5й пост мой
Группа: Админы
Сообщений: 2741
Статус: Offline
Quote (DanielC)
С чем это может быть связано?

Открой дебаг режим и мониторь кол-во образцов. Если оно находится на одном уровне или возвращаются к нему, то дело не в них. Возможно в образцах создаются какие-то структуры, которые ты не удаляешь: объекты, поверхности, спрайты, динамические структуры и т.д. Их как и образцы, тоже необходимо удалять, а зачастую про это забывают (и не только в ГМ, но и в остальных языках это тоже проблема).


Blogpost
 
DanielC Дата: Воскресенье, 07.08.2011, 00:06 | Сообщение # 65
Хрен заткнешь
Группа: Пользователь
Сообщений: 291
Статус: Offline
Даст ли прирост в скорости отключение рисования объекта за пределами вида? Да и вообще "невидимые" объекты, давно уже понял что Гм практические не взаимодействует с видеопамятью, поэтому возникают сомнения.


Музыка
 
WertyXBOCT Дата: Воскресенье, 07.08.2011, 00:52 | Сообщение # 66
Каждый 5й пост мой
Группа: Страж
Сообщений: 2472
Статус: Offline
DanielC, даст. Если их много.


Blog:www.WeslomPo.ru
mailto: i@weslompo.ru
 
DanielC Дата: Среда, 02.11.2011, 18:54 | Сообщение # 67
Хрен заткнешь
Группа: Пользователь
Сообщений: 291
Статус: Offline
Кто-нибудь тестировал встроенные генераторы частиц?
Хотелось бы узнать как их можно оптимизировать.
В частности:
1. Размер текстур, встроенные текстуры - пропорциональная зависимость производительности.
2. Количество, допустимые пределы (формула производительности) к примеру какой потолок будет на 900 сильном камне.
3. Коллизия (Магниты, Уничтожители, Отражатели, Преобразователи) - возможные подводные камни.
4. Анимация - частицы с анимированными текстурами.
Сейчас стараюсь использовать текстуры не превышающие размера в 64px, количество частиц может доходить до 1500 в среднем 100-300 при этом почти не используются магниты уничтожители и др...
Надеюсь тема будет интересна не только мне wink


Музыка
 
vitaly5000 Дата: Четверг, 03.11.2011, 00:02 | Сообщение # 68
Разговорчивый
Группа: Пользователь
Сообщений: 146
Статус: Offline
Quote (DanielC)
Надеюсь тема будет интересна не только мне

Да. не только тебе happy
 
Dva_Kota Дата: Понедельник, 05.12.2011, 11:46 | Сообщение # 69
Молчун
Группа: Пользователь
Сообщений: 29
Статус: Offline


 
DanielC Дата: Вторник, 14.02.2012, 14:57 | Сообщение # 70
Хрен заткнешь
Группа: Пользователь
Сообщений: 291
Статус: Offline
Перебираю старый код, с целью возможной оптимизации и нашел код показавшийся подозрительным. Связан с ини файлами:
Code
ini_open("config.ini");
money = ini_read_real("GAME","money","");
ini_close();

Подозрителен тем, что находится в степе, и по идее, каждый шаг дергает ини. Вот и хотел узнать не смертельно ли это?
P.s. На всякий случай, конечно ограничил его условиями, но всё-таки стало интересно, не повлияет ли на производительность.


Музыка
 
SRes Дата: Вторник, 14.02.2012, 16:50 | Сообщение # 71
Каждый 5й пост мой
Группа: Страж
Сообщений: 2526
Статус: Offline
Обращаться к жесткому диску 30 раз в секунду без надобности - это неправильно.


Velociped Inc.
 
DanielC Дата: Среда, 15.02.2012, 10:56 | Сообщение # 72
Хрен заткнешь
Группа: Пользователь
Сообщений: 291
Статус: Offline
Что будет быстрее? Один спрайт 800x600, двух кадровый спрайт 400x600 или 4 кадровый 400x300?

Добавлено (15.02.2012, 10:56)
---------------------------------------------
P.s. Как можно догадаться, вес у всех одинаковый.



Музыка
 
Dva_Kota Дата: Среда, 15.02.2012, 11:18 | Сообщение # 73
Молчун
Группа: Пользователь
Сообщений: 29
Статус: Offline
Я думаю что 4-х кадровый, т.к. в этом случае будет рисоваться изображение в 4 раза меньше по площади.


 
Nikich_mega Дата: Понедельник, 05.03.2012, 15:13 | Сообщение # 74
Разговорчивый
Группа: Пользователь
Сообщений: 123
Статус: Offline
Что быстрее обрабатываются в GM? Модели или примитивы?
Я ещё прочитал в справке: "Использование моделей может значительно ускорить графику в ваших 3D играх, и Вы должны использовать их всякий раз, когда имеется возможность."
Честно говоря я не совсем понял это предложение. Ускорить графику - это как?




Сообщение отредактировал Nikich_mega - Понедельник, 05.03.2012, 15:13
 
sun Дата: Понедельник, 05.03.2012, 15:15 | Сообщение # 75
Хрен заткнешь
Группа: Пользователь
Сообщений: 256
Статус: Offline
наверно ускорить отрисовку графики.


xxxyyyzzzed
Ed Gorod
 
Nikich_mega Дата: Понедельник, 05.03.2012, 20:57 | Сообщение # 76
Разговорчивый
Группа: Пользователь
Сообщений: 123
Статус: Offline
Так значит что. - Модели лучше?


 
Ang3L Дата: Вторник, 06.03.2012, 13:18 | Сообщение # 77
Каждый 5й пост мой
Группа: Админы
Сообщений: 2741
Статус: Offline
Quote (Nikich_mega)
Что быстрее обрабатываются в GM? Модели или примитивы?

Это предложения не имеет смысла. Модели - 3-мерные, примитивы - 2-мерные. Это как измерение расстояния в 2д и 3д. В 2д быстрее (т.к. нет расчётов по Z), но нужно ли оно тебе в 3-мерном пространстве?

Quote (Nikich_mega)
Так значит что. - Модели лучше?

Однозначно! Особенно с длинными ногами...

Quote (Nikich_mega)
Ускорить графику - это как?

Есть функция draw_point(x, y); - рисует точку в текущем цвете. Вот если ей рисовать спрайт, то будет всё очеееень долго. А чтобы ускорить этот процесс используется draw_sprite();. Ясно?
Разница между ними в идеи минимальная, но технологически они разные. draw_sprite() - выводит сразу целый блок, а не 1 пиксель. За счёт этого получается значительно ускориться. Грубо говоря, для того чтобы нарисовать с помощью спрайт draw_sprite, нужно 1 раз зайти в память, скопировать массив и выйти из памяти. Если рисовать по пиксельно, то мы заходим и выходим из памяти столько сколько пикселей нам надо скопировать в массив памяти (это увеличивает работу на пустом месте).

Аналогично с примитивами. Это просто отрисовка фигур в батче (порций). Мы не пихаем отдельно по фигурке, чтобы отрисовать 1 целую. Мы формируем целую и отсылаем её на отрисовку.
И аналогично с моделями. Мы не пихаем каждый треугольник отдельно, а запихиваем всю модель, а дальше видюха разберётся.

И последняя аналогия, аналогия из жизни. Сидишь ты в классе и тебя учитель просит принести книгу из школьной библиотеки. Ты принес, а тебя просят ещё книгу принести. Потом ещё, и ещё, и ещё. И всё по 1. И так раз 10. Допустим до библиотеки - 100м. Т.е. ты сходил 2км (100м туда, 100м обратно == 200м и умноженное на 10 раз ходьбы). Что не мало. А если бы тебе дали список этих 10 книг, то ты 1 раз туда пришёл, всё взял и отнёс за 1 раз. И сходил бы вместо 2км, всего 200м. Эффективность возрастает в 10 раз на почти пустом месте!
Узкое место здесь - это сколько книг ты можешь унести за раз. А это всегда определённое число и оно самое эффективное. Если ты несёшь меньше этого числа, то тебе становится легче, но ходок больше - эффективность падает. Если больше, то не факт что ты донесёшь или устанешь раньше чем донесёшь - эффективность падает.
Эта технология используется везде - в принтерах, в интернете (число MTU), в отрисовке графики и в любой другой передаче данных от одного другому.


Blogpost
 
Nikich_mega Дата: Вторник, 06.03.2012, 15:23 | Сообщение # 78
Разговорчивый
Группа: Пользователь
Сообщений: 123
Статус: Offline
Quote
Это предложения не имеет смысла. Модели - 3-мерные, примитивы - 2-мерные. Это как измерение расстояния в 2д и 3д. В 2д быстрее (т.к. нет расчётов по Z), но нужно ли оно тебе в 3-мерном пространстве?

Дану? Box aka Коробка aka Блок aka параллелепипед - примитив.
Призма - примитив. Пирамида - примитив. Цилиндр - примитив. И Эллипсоид и Сфера тоже примитивы...
Модель состоит из множества примитивов и форм.
В 3D's Maxe есть меню Create -> Primitives и там есть то что я перечислил.
Последние аналогии были не обязательны, достаточно было про draw_point(x,y);
А так большое спасибо! smile Буду использовать модели.




Сообщение отредактировал Nikich_mega - Вторник, 06.03.2012, 15:26
 
Ang3L Дата: Вторник, 06.03.2012, 15:37 | Сообщение # 79
Каждый 5й пост мой
Группа: Админы
Сообщений: 2741
Статус: Offline
Quote (Nikich_mega)
В 3D's Maxe есть меню Create -> Primitives и там есть то что я перечислил.

Ты 3d max'ом занимаешься или гамакером? С++ объект это тоже нечто другое чем в гамаке и что?


Blogpost
 
vitaly5000 Дата: Пятница, 09.03.2012, 01:14 | Сообщение # 80
Разговорчивый
Группа: Пользователь
Сообщений: 146
Статус: Offline
Такой вопрос
Visible=false
или
просто запретить прорисовку спрайта условием (в draw)

Результат одинаковый.
Есть ли разница ?
 
Форум Game Maker. Разработка игр. » Разработка игр на Game Maker (Simple Mode) » Проблема - решение. GML и прочее. » Скорость и оптимизация (вопросы) (Здесь вам ответят какой способ решения оптимален)
Страница 4 из 5«12345»
Поиск:



Сообщество Gmaker.SU 2005-2012
Используются технологии uCoz
Простой вход