|
[ На главную ] -- [ Список участников ] -- [ Правила форума ] -- [ Зарегистрироваться ] |
On-line: |
Game Maker Форум / Профессиональные Пользователи / Скорость и оптимизация (Пара советов) |
Страницы: 1 2 Next>> |
Автор | Сообщение | ||
CH@$ER Дундук - не беспокоить! Группа: Модераторы Сообщений: 1435 |
Добавлено: 07-01-2007 14:06 | ||
Постим здесь информацию об скорость тех или иных ф-ий, а также об способах оптимизации. Вот пара моих советов (буду добавлять по мере их обнаружения): Обнаружил сегодня - оказывается, логический оператор "<>" работает просто ЖУТКО медленно. Например, у меня есть проверка:
я ее заменил на (ну думаю, abs медленно будет работать)
Так при достаточном кол-ве объектов FPS падает на 50! А вот "!=" работает отлично. - Желательно не использовать своей отрисовки в Draw (типа юзать draw_sprite и еще что-то) - если нет этого события, то FPS увеличивается. - Не использовать массивы в частых вычеслениях, например, в Step или Draw. Это все неоднократно проверялось, поэтому достоверность - 100%. |
|||
CH@$ER Дундук - не беспокоить! Группа: Модераторы Сообщений: 1435 |
Добавлено: 07-01-2007 15:42 | ||
- collision_line, collision_rectangle работают с точно такой же скоростью, как и collision_point. (достаточно быстрой кстати) - не используйте часто sin и cos, особенно для расчета продолжения координат - для этого есть стандартные ф-ии lengthdir_x / y - они быстрее. - не используйте radtodeg и degtorad - для перевода градусов используйте умножение на 180 / pi и pi / 180 соответсвенно. |
|||
splean магистр Группа: Сообщество GM Сообщений: 443 |
Добавлено: 09-01-2007 00:20 | ||
на 5.3а вроде я проверял и был очень удивлен. Рассматривал столкновения я. И просто заменил все колижн эвенты на соотвествующий код в стэпе. Накидал кучу сталкивающихся объектов. Разница была раза в 3-4 в пользу кода в стэпе. Проверьте кого не обламывает. |
|||
DG Soft popww Группа: Администраторы Сообщений: 736 |
Добавлено: 09-01-2007 13:14 | ||
Отдельно бесят любители(99% форумчан) квадратных полов сделайте прямоугольник 3х1024 и это заменит 32 кубика 32х32 соответственно наделайте с разным раскладом типа: 3х500, 3х100, 3х32, аналогично и с вертикальным раскладом и про родителей тогда незабывайте ну исключением являются крутые игры типа пакман ну и желательно деактивировать объект пола в начале игры и активировать его через (активате_регион), а (активате_регион) лучше поместить не в степ а всобытия нажатия(передвижения) клавиш героя, ну чтобы не в каждом шаге работал (активате_регион) а на счет массивов в хелпе написано что списки быстрее |
|||
Ka1miK Тут могла быть ваша реклама Группа: Сообщество GM Сообщений: 1014 |
Добавлено: 10-01-2007 21:11 | ||
Раз уж на то пошло, тогда лучше использовать не объекты вовсе а массивы столкновений, пример был у ДримРаннера. Только тогда лучше использовать не массивы, а списки или сетку |
|||
CH@$ER Дундук - не беспокоить! Группа: Модераторы Сообщений: 1435 |
Добавлено: 10-01-2007 22:49 | ||
Я недавно написал алгоритм, который "склеивает" стены одинаковые, и теперь из 300 стен получается 30 | |||
DG Soft popww Группа: Администраторы Сообщений: 736 |
Добавлено: 11-01-2007 11:58 | ||
это же шутка должны понимать
|
|||
DreamRunner магистр Группа: Сообщество GM Сообщений: 320 |
Добавлено: 11-01-2007 14:17 | ||
списки тормознее массивов при простом обращении к их ячейке (можете даже не спорить) и для хранения карты не удобны.
Один раз это проделывается (склеивается)? |
|||
WertyXBOCT магистр Группа: Сообщество GM Сообщений: 453 |
Добавлено: 11-01-2007 15:00 | ||
Круто. Еще могу добавить чтобы ускорить вычисления с синусом и косинусом, нужно загнать их в массив. На 360 ячеек. Скорость вырастет. Лучше не использовать переменные такого типа 0.00000000000001, а использовать целые значения. Если вы что то вычисляете каждый шаг, хотя известны точный данные то, лучше вычислить в калькуляторе, и написать нормальное число. 180/pi приблизительно равно 57.325 а pi/180 = 0.0175 Еще не стоит вычислять такие вещи как прибавка к чему либо, если, она не изменяется каждый шаг, а например в аларме только(вчера понял только), то есть загоните в переменную. Я вообще не пользуюсь collision_point и прочими, ибо тормозно... пользуюсь массивами. |
|||
CH@$ER Дундук - не беспокоить! Группа: Модераторы Сообщений: 1435 |
Добавлено: 11-01-2007 15:57 | ||
Это она вырастет, если ты сделаешь на Делфи например, а в ГМ я уже делал - подходит только для не частых вычеслений. |
|||
CH@$ER Дундук - не беспокоить! Группа: Модераторы Сообщений: 1435 |
Добавлено: 11-01-2007 15:58 | ||
Позже, когда его сделаю для любых стен.
Да, при загрузке уровня Апдейт: Пример Читаем F1 |
|||
DG Soft popww Группа: Администраторы Сообщений: 736 |
Добавлено: 15-01-2007 13:56 | ||
DreamRunner в уроках и примерах скачал еще раз твой пример, старый потерял, там Jane exe у меня на работе слабый комп и показывает 29-32 фпс я так понял там должно быть 60, вообщем предложение если у тебя остался исходник того примера переделай массивные блоки в обычные и выложи исходник, и посмотрим P.S. Ge Force 2 :D |
|||
DreamRunner магистр Группа: Сообщество GM Сообщений: 320 |
Добавлено: 15-01-2007 18:20 | ||
DG Soft пиши в теме обсуждения примера. тут другое. Тормоза скорее из-за тайлов, т.к. их там тысячи. Переделывать не стану, ибо нет смысла. Будет тормознее, т.к. под каждым тайлом будет объект с которым считается столкновение. |
|||
DG Soft popww Группа: Администраторы Сообщений: 736 |
Добавлено: 23-01-2007 19:11 | ||
а что скажите про fps: 30 || 60 Как на меня 30 с головой хватает и нестоит парится ради 60 |
|||
CH@$ER Дундук - не беспокоить! Группа: Модераторы Сообщений: 1435 |
Добавлено: 23-01-2007 19:20 | ||
Угу, мне 30 то же вполне хватает ;) Не понимаю, почему все 60 ставят. | |||
Lex гроссмейстер Группа: Сообщество GM Сообщений: 189 |
Добавлено: 23-01-2007 21:13 | ||
а я чувствую разницу между 30 и 60, 30 воспринимается как фильм(цифры схожие), а при 60 действительно есть какое-то ощущение, что это видео игра, ну как знаете в фильмах иногда спец эффект выделяется на фоне натуральной съемки из-за плавности движения. | |||
DreamRunner магистр Группа: Сообщество GM Сообщений: 320 |
Добавлено: 23-01-2007 22:09 | ||
ну например у меня в игре скроллинг со скоростью 2пх/шаг при румспиде=60. А при румспиде=30 он должен быть 4пх/сек. Разница ощутима. Это скроллинг. Иногда его нет. Зато чаще есть выстрел и пуля будет пролетать 10пх при 60 и 20пх при 30. Разница в гладкости перемещения. Я бы 30 взял для стратегии, но для динамичных аркад лучше 60. |
|||
Ka1miK Тут могла быть ваша реклама Группа: Сообщество GM Сообщений: 1014 |
Добавлено: 23-01-2007 22:59 | ||
Так же я проверил, что черезчур частое обращение к скриптам уменьшает скорость игры. 1)Напрмер у меня в степе просто ссылка на скрипт, в том скрипте, ещё одна ссылка результат такой: 150объектов -50 фпс.30 фпс- 460объектов. 2)Потом я в скрипт на который обращаюсь степом прямым текстом вставил скрипт на который обращается в этом скрипте(извиняюсь за тофталогию, короче просто в степе сслыка на скрипт и всё). 150объектов-100фпс.30фпс-571 объектов 3)А в конце я просто в степ вставил весь текст вкрипта(т.е. совсем без ссылок) 150об.-124фпс. 30 фпс-700 объектов. Короче разница на лицо. Само собой везде объекты были одинаковые, сами вычисления касались пары косинусов и синусов, ну это не важно. ЗЫ В этой теме старайтесь не много обсуждать, чтобы было просто сборник советов. |
|||
DaMaGeR-69 гроссмейстер Группа: Сообщество GM Сообщений: 173 |
Добавлено: 24-01-2007 16:25 | ||
У меня ссылка на скрипт есть в шаге некоторых объектов. Но так как, то что в шаге, должно выполняться при определенных условиях, то этот скрипт вызывается только иногда, - что игру не замедляет. |
|||
DG Soft popww Группа: Администраторы Сообщений: 736 |
Добавлено: 24-01-2007 16:46 | ||
2DaMaGeR-69 это чисто эксперимент который показывает что скрипты всетаки грузят фпс, а то что у тебя парочка скриптов ничего неизменяет то это ничего незначить |
Страницы: 1 2 Next>> |
Game Maker Форум / Профессиональные Пользователи / Скорость и оптимизация (Пара советов) |