Game Maker - создание игр | HellRoom Games
Февраль 09, 2025, 01:06:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Основы оптимизации  (Прочитано 47211 раз)
0 Пользователей и 1 Гость смотрят эту тему.
skypo
GM Pro user
*

Репутация: 63
Offline Offline

Пол: Мужской
Награды:
500 сообщений!За постоянность! [50 дней на форуме]
API: GameMaker Studio Pro
Сообщений: 809


WWW
« Ответ #15 : Январь 17, 2013, 15:03:36 »


Сильно сомневаюсь (практически уверен, что не), что этот движок с примерами по нему вообще пойдет под GMS.
Надо будет посмотреть айдишники в танкисте.
Записан
MusNik
KeeVee Games
GM Pro user
*

Репутация: 733
Offline Offline

Пол: Мужской
Награды:
3000 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+500 репутации]За отличную игру Rock painting story!За помощь в развитии форума!За отличные статьи по Game Maker!...
API: GameMaker Studio 2
Сообщений: 3241



WWW
« Ответ #16 : Январь 17, 2013, 20:29:23 »

GMS очищает айдишники после перезагрузки.
Записан

likstalkera
Участник
****

Репутация: 23
Offline Offline

Пол: Мужской
API: Game Maker 8.0 Pro
Деятельность: Создаю игры жанра RPG
Сообщений: 246

Делаю все так, чтобы было красиво.


« Ответ #17 : Январь 31, 2013, 03:34:51 »

Если записывать код из шага в рисование, то сильно ли это повлияет на производительность?
Записан



Не забываем ставить респект)
Dmi7ry
Гл. Администратор
*

Репутация: 1379
Offline Offline

Пол: Мужской
Награды:
5000 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+1000 репутации]За помощь в развитии форума!Знаток Game Maker!За помощь новичкам!
API: GameMaker Studio Master
Деятельность: Code, design
Сообщений: 6626



WWW
« Ответ #18 : Январь 31, 2013, 06:39:38 »

Если записывать код из шага в рисование, то сильно ли это повлияет на производительность?
От перестановки переменных сумма не меняется. События всего лишь определяют порядок выполнения кода, производительность от этого не поменяется.
Другое дело, что при этом нужно довольно чётко понимать, что мы делаем. Например, изменение координат других объектов в draw может привести к непредсказуемым дёрганиям спрайтов.
Записан

- А какой, собственно, командой процессора колобок ест черта?
- Командой EAT...
Справка и FAQ в правом верхнем углу...
nectarine
Новичок
*

Репутация: 0
Offline Offline

API: GameMaker Studio
Деятельность: noobdev
Сообщений: 5

enjoy


« Ответ #19 : Февраль 15, 2013, 04:42:17 »

Спасибо за статью, очень познавательно :)

В связи с прочитанным, у меня такой вопрос: допустим, нужно нарисовать гуй, в котором довольно много кода получится в событии draw. Что будет быстрее, оставить весь код draw в одном объекте, контролирующем гуй (в котором помимо draw есть и другие события), или же вынести код draw в, скажем, 100500 1-2 дополнительных объекта, в которых кроме draw ничего не будет?
P.S. код из draw иногда обращается к значениям переменных внутри других событий.
Записан

rand(0,3)
skypo
GM Pro user
*

Репутация: 63
Offline Offline

Пол: Мужской
Награды:
500 сообщений!За постоянность! [50 дней на форуме]
API: GameMaker Studio Pro
Сообщений: 809


WWW
« Ответ #20 : Февраль 15, 2013, 09:25:18 »

Спасибо за статью, очень познавательно :)

В связи с прочитанным, у меня такой вопрос: допустим, нужно нарисовать гуй, в котором довольно много кода получится в событии draw. Что будет быстрее, оставить весь код draw в одном объекте, контролирующем гуй (в котором помимо draw есть и другие события), или же вынести код draw в, скажем, 100500 1-2 дополнительных объекта, в которых кроме draw ничего не будет?
P.S. код из draw иногда обращается к значениям переменных внутри других событий.

меньше объектов - лучше.
в draw лучше ничего помимо собсно отрисовки не держать (т.е. все расчеты - в step'ах).
в случае ГУИ можно обойтись без объектов вообще - сделать тайлами и организовать их замену через скрипт
Записан
Briginas
Главный Модератор
*

Репутация: 673
Offline Offline

Пол: Мужской
Награды:
1 место в Дичайшем джеме #82000 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+500 репутации]Настоящий игродел!1 место в конкурсе Адекватные игры #3 [Антиутопия]...
API: GameMaker Studio 2
Деятельность: Game Designer
Сообщений: 2042



« Ответ #21 : Март 14, 2013, 16:48:29 »

Интересует такой вопрос. Какой вариант лучше в плане оптимизации?

Код: (1 Вариант)
if a = b {c += d}

Код: (2 Вариант)
c += d*(a = b)

С виду кажется, что второй вариант более оптимизованный, но:
В первом варианте действие с переменной выполняется только если условие истинно, во втором же выполняется и условие, и действие переменной, не зависимо от условия (к переменной каждый шаг прибавляется 0).


И второй вопрос.
Есть ли разница использования + и * вместо || и && ?
Код: (1 Вариант)
if (a = b) + (c = d) {e += f}

Код: (2 Вариант)
if (a = b) || (c = d) {e += f}
Т.к. любое число выше 0.5 возвращает true, то условие истинно, но есть ли разница со вторым вариантом? Аналогичный вопрос с && и *
Записан
Fantom
I am... All of me
Гл. Администратор
*

Репутация: 1325
Offline Offline

Пол: Мужской
Награды:
5000 сообщений!За постоянность! [500 дней на форуме]За лояльность! [+1000 репутации]За отличные статьи по Game Maker!Тру Админ :DЗнаток Game Maker...
API: GameMaker Studio Master
Сообщений: 5026



« Ответ #22 : Март 14, 2013, 17:25:01 »

1. Первое лучше, и читается удобнее, чем второй вариант. Следуя второму варианту, рано или поздно появятся такие выражения, в которых не будет понятно, где "главное" равно, а где складываемые (или где левая часть выражения, а где правая) errm
Во втором варианте тоже используется сравнение, как и в первом, поэтому у первого меньше нагрузка.
(к переменной каждый шаг прибавляется 0).
Еще и умножение выполняется. Одна-две операции в первом варианте против трех во втором.

2. || - логическое сложение, && - логическое умножение. Разница в слове "логическое"
В приведенных примерах (и с умножением если тоже привести) разницы в результате нет, но практика таких выражений опять же может привести к запутыванию кода (обфускация, с одной стороны плюс, с другой минус) и к привыканию. Одно дело - GML это спокойно принимает, другое дело - другие языки не смогут, разрешая выполнять только логические операции с логическими переменными, и ожидая только логическую переменную после if.
Записан

Briginas
Главный Модератор
*

Репутация: 673
Offline Offline

Пол: Мужской
Награды:
1 место в Дичайшем джеме #82000 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+500 репутации]Настоящий игродел!1 место в конкурсе Адекватные игры #3 [Антиутопия]...
API: GameMaker Studio 2
Деятельность: Game Designer
Сообщений: 2042



« Ответ #23 : Март 14, 2013, 17:46:46 »

Понятно, значит лучше использовать "классические" методы.
Как я понял
Код:
if a = b {c = d} else {c = 0}
Будет так же выполняться быстрее, чем
Код:
c = d*(a = b)
Ведь else не является сравнением, а всего лишь выполняется при ложном значении условия. Я прав?
Записан
AlexBel
Участник
****

Репутация: 24
Offline Offline

Пол: Мужской
API: GameMaker Studio 2
Деятельность: Квест
Сообщений: 220



WWW
« Ответ #24 : Февраль 02, 2016, 14:01:05 »

Привет всем!

Думаю, было бы хорошо включить в эту тему рекомендации по выбору разрешения для игры и масштабирования с точки зрения производительности.
Например, если планируется работа игры на разных разрешениях экрана (например, на Android), то как следует подойти к выбору размера комнат? Если при масштабировании картинка увеличивается, то как это скажется на производительности? Или как скажется уменьшение? В какой-то из тем обсуждение данного вопроса встречал, но сейчас не могу найти.

Не сочтите за некропостинг, думаю, вопрос имеет прямое отношение к теме и создавать новую нет смысла.
Записан

Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.11 секунд. Запросов: 34.