Если коротко: в рамках реализации кастомного импелейла(Impale, пронзание - первый скилл героя-жука нежити) лучше реализовывать изменение высоты каждые 0.02 сек с третьим параметром для SetUnitFlyHeight равным нулю(мгновенное перемещение) или же реализовывать изменение высоты c динамической скоростью каждые 0.1 сек?
С одной стороны - в 5 раз более редкое вычисление переменных высоты, скорости и т.д. и т.п.
С другой - используется внутренний механизм изменения высоты, период которого наверняка выше, пусть и нативный.
Если правда неизвестна наверняка, но есть реализованый на низком периоде импэйл - могу проделать сравнение с реализованным 0.1 сек аналогом(планирую реализовать мелкопериодный импэйл сам, но, потратив пару дней на кастомный импэйл с периодом 0.1 - не горю желанием делать это в ближайшие несколько дней).

Если движок делает 200 вычислений когда я делаю 10, то 50 моих + 50 от движка выглядят симпотичнее.
Работа движка производится на машинном языке. Код же на Jass интерпретируется виртуальной машиной со множеством проверок. 10 твоих вычислений, в действительности, могут интерпретироваться в более 200 машинных команд движка.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
20
все перемещают сами юнита по высоте, не юзая стандарт
Стандарт? Речь о SetUnitFlyHeight функции. Просто при 50 фпс явно юзают третий параметр равный нулю(скорость изменения высоты), а при 10 фпс я юзал динамическую скорость падения, которая высчитывается при каждом звонке.
паузится
Ну мне в помощь использование рун.
quq_CCCP:
получится ли сделать нужную плавность
Все плавно. Интересует тупо вопрос производительности. Нужно ли это? Вероятно как и сам вц3 - нет. Но перфекционизм можно считать моим вторым хобби. Тем более я впервые полез в дебри изменения высоты юнита.
ах да высота броска высчитывается исходя из маштаба юнитов, громадные юниты подлетают выше чем мелкие
При кастомном изменении высоты все ок.
32
Кстати насчет производительности, было же подбрасывание вовсе без кода, помню была тема...
Эх щяс бы найти её..
20
quq_CCCP:
Кстати насчет производительности, было же подбрасывание вовсе без кода, помню была тема...
Эх щяс бы найти её..
Ну там, наверняка, какие-то навороты с анимацией и взаимодействием с моделькой. А тут у меня полная свобода действия. Замутил подбрасывание, потом добавил в любой момент скорости заклинанием телекинеза - в зависимости от момента каста меняется итоговая скорость падения и, как следствие, урон. Имхо - это фан.
32
Diaboliko:
quq_CCCP:
Кстати насчет производительности, было же подбрасывание вовсе без кода, помню была тема...
Эх щяс бы найти её..
Ну там, наверняка, какие-то навороты с анимацией и взаимодействием с моделькой. А тут у меня полная свобода действия. Замутил подбрасывание, потом добавил в любой момент скорости заклинанием телекинеза - в зависимосте от момента каста меняется итоговая скорость падения и, как следствие, урон. Имхо - это фан.
Ну скорее всего с анимацией, про шипы незнаю но точно знаю что ветра не подбрасывают юнита на самом деле, они его просто стунят, обесцвечивают и делают неуязвимым, а крутится в воздухе модель героя приаттаченая к модели смерча... Но динамически определить модель юнита не так уж и просто.
15
Интересует тупо вопрос производительности.
Ответ на этот вопрос всегда один:
  • Функция нативная - производительность выше
  • Функция пользовательская - производительность ниже
Для изменения высоты юнита с указанием скорости в SetUnitFlyHeight, ты используешь только эту функцию.
Рассчитывая высоту самостоятельно, ты используешь и функцию SetUnitFlyHeight, и пользовательский код Jass для расчетов.
Очевидно, во втором случае операций больше.
Нужно ли это? Вероятно как и сам вц3 - нет. Но перфекционизм можно считать моим вторым хобби.
С практической точки зрения вопрос оптимизации не актуален. В наши дни следует думать о качестве кода и простоте его поддержки.
20
С практической точки зрения вопрос оптимизации не актуален. В наши дни следует думать о качестве кода и простоте его поддержки.
А я хочу мясо, грабить корованы и делать карту (двадцать) джва года.
А касательно нативности - опять же встает вопрос о периодичности вычислений, производимых движком. Если движок делает 200 вычислений когда я делаю 10, то 50 моих + 50 от движка выглядят симпотичнее.
32
Diaboliko:
С практической точки зрения вопрос оптимизации не актуален. В наши дни следует думать о качестве кода и простоте его поддержки.
А я хочу мясо, грабить корованы и делать карту (двадцать) джва года.
А касательно нативности - опять же встает вопрос о периодичности вычислений, производимых движком. Если движок делает 200 вычислений когда я делаю 10, то 50 моих + 50 от движка выглядят симпотичнее.
Действия в движке происходят быстрее чем в Jass машине, увы.
20
Действия в движке происходят быстрее чем в Jass машине, увы.
Достаточно ли быстрее чтобы окупить их предположительно огромное количество?
15
Если движок делает 200 вычислений когда я делаю 10, то 50 моих + 50 от движка выглядят симпотичнее.
Работа движка производится на машинном языке. Код же на Jass интерпретируется виртуальной машиной со множеством проверок. 10 твоих вычислений, в действительности, могут интерпретироваться в более 200 машинных команд движка.
Принятый ответ
32
Diaboliko:
Действия в движке происходят быстрее чем в Jass машине, увы.
Достаточно ли быстрее чтобы окупить их предположительно огромное количество?
Хрен знает, близарды те еще редиски... Код писали разные люди в разное время, и что там и как там хз, стомпы лагают - ну криворукие программисты, и так 1000 И 1 пример того, что близзарды сделали не идеально. Хз даже какие там различия, некоторые нативные спеллы настолько убоги что от них лучше отказатся в сторону пользовательского кода.
16
ЛЮБАЯ нативка быстрее ЛЮБОГО твоего велосипеда на жасс. без исключений
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.