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

Принятый ответ

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

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